diff --git a/packages/control/algorithm/algorithm.py b/packages/control/algorithm/algorithm.py index 4c4ed46aa5..f507ab0817 100644 --- a/packages/control/algorithm/algorithm.py +++ b/packages/control/algorithm/algorithm.py @@ -60,7 +60,7 @@ def _check_auto_phase_switch_delay(self) -> None: if cp.data.set.charging_ev != -1: charging_ev = cp.data.set.charging_ev_data control_parameter = cp.data.control_parameter - if cp.cp_ev_chargemode_support_phase_switch(): + if cp.cp_state_hw_support_phase_switch() and control_parameter.template_phases == 0: # Gibt die Stromstärke und Phasen zurück, mit denen nach der Umschaltung geladen werden # soll. Falls keine Umschaltung erforderlich ist, werden Strom und Phasen, die übergeben # wurden, wieder zurückgegeben. diff --git a/packages/control/algorithm/integration_test/pv_charging_test.py b/packages/control/algorithm/integration_test/pv_charging_test.py index c21eae69dc..aa7c6e25fd 100644 --- a/packages/control/algorithm/integration_test/pv_charging_test.py +++ b/packages/control/algorithm/integration_test/pv_charging_test.py @@ -223,9 +223,9 @@ def test_surplus(params: ParamsSurplus, all_cp_pv_charging_3p, all_cp_charging_3 data.data.counter_data["counter6"].data.set.raw_currents_left = params.raw_currents_left_counter6 mock_get_component_name_by_id = Mock(return_value="Garage") monkeypatch.setattr(loadmanagement, "get_component_name_by_id", mock_get_component_name_by_id) - data.data.cp_data["cp3"].data.set.charge_template.data.chargemode.pv_charging.phases_to_use = 1 - data.data.cp_data["cp4"].data.set.charge_template.data.chargemode.pv_charging.phases_to_use = 1 - data.data.cp_data["cp5"].data.set.charge_template.data.chargemode.pv_charging.phases_to_use = 1 + for i in range(3, 6): + data.data.cp_data[f"cp{i}"].data.set.charge_template.data.chargemode.pv_charging.phases_to_use = 1 + data.data.cp_data[f"cp{i}"].data.control_parameter.template_phases = 1 # execution Algorithm().calc_current() @@ -276,6 +276,8 @@ def test_phase_switch(all_cp_pv_charging_3p, all_cp_charging_3p, monkeypatch): "cp3"].data.control_parameter.state = ChargepointState.CHARGING_ALLOWED data.data.cp_data[ "cp3"].data.control_parameter.timestamp_last_phase_switch = 1652682252 + for i in range(3, 6): + data.data.cp_data[f"cp{i}"].data.control_parameter.template_phases = 0 # execution Algorithm().calc_current() @@ -298,6 +300,8 @@ def test_phase_switch_1p_3p(all_cp_pv_charging_1p, monkeypatch): data.data.cp_data["cp3"].data.control_parameter.timestamp_last_phase_switch = 1652682252 data.data.cp_data["cp4"].data.get.currents = [0, 0, 0] data.data.cp_data["cp5"].data.get.currents = [0, 0, 0] + for i in range(3, 6): + data.data.cp_data[f"cp{i}"].data.control_parameter.template_phases = 0 # execution Algorithm().calc_current() diff --git a/packages/control/algorithm/surplus_controlled.py b/packages/control/algorithm/surplus_controlled.py index d4ceadca27..cca250528d 100644 --- a/packages/control/algorithm/surplus_controlled.py +++ b/packages/control/algorithm/surplus_controlled.py @@ -127,10 +127,12 @@ def check_submode_pv_charging(self) -> None: for cp in get_chargepoints_by_chargemodes(CONSIDERED_CHARGE_MODES_PV_ONLY): try: def phase_switch_necessary() -> bool: - return cp.cp_ev_chargemode_support_phase_switch() and cp.data.get.phases_in_use != 1 + return (cp.cp_state_hw_support_phase_switch() and + cp.data.get.phases_in_use != 1 and + cp.data.control_parameter.template_phases == 0) control_parameter = cp.data.control_parameter if cp.chargemode_changed or cp.submode_changed: - if control_parameter.state == ChargepointState.CHARGING_ALLOWED: + if (control_parameter.state in CHARGING_STATES): if cp.data.set.charging_ev_data.ev_template.data.prevent_charge_stop is False: threshold = evu_counter.calc_switch_off_threshold(cp)[0] if evu_counter.calc_raw_surplus() - cp.data.set.required_power < threshold: diff --git a/packages/control/chargepoint/chargepoint.py b/packages/control/chargepoint/chargepoint.py index 2b7a4d8c61..f06e68960a 100644 --- a/packages/control/chargepoint/chargepoint.py +++ b/packages/control/chargepoint/chargepoint.py @@ -440,7 +440,7 @@ def check_phase_switch_completed(self): if self.data.control_parameter.state == ChargepointState.WAIT_FOR_USING_PHASES: if check_timestamp(self.data.control_parameter.timestamp_charge_start, charging_ev.ev_template.data.keep_charge_active_duration) is False: - if self.cp_ev_support_phase_switch() and self.failed_phase_switches_reached(): + if self.hw_supports_phase_switch() and self.failed_phase_switches_reached(): if phase_switch.phase_switch_thread_alive(self.num) is False: self.data.control_parameter.state = ChargepointState.PHASE_SWITCH_AWAITED if self._is_phase_switch_required() is False: @@ -467,7 +467,7 @@ def initiate_phase_switch(self): Pub().pub("openWB/set/chargepoint/"+str(self.num)+"/set/phases_to_use", self.data.control_parameter.phases) self.data.set.phases_to_use = self.data.control_parameter.phases - if self.cp_ev_support_phase_switch(): + if self.hw_supports_phase_switch(): if self._is_phase_switch_required(): # Wenn die Umschaltverzögerung aktiv ist, darf nicht umgeschaltet werden. if (self.data.control_parameter.state != ChargepointState.PERFORMING_PHASE_SWITCH and @@ -569,7 +569,7 @@ def hw_bidi_capable(self) -> BidiState: else: return BidiState.BIDI_CAPABLE - def set_phases(self, phases: int) -> int: + def set_phases(self, phases: int, template_phases: int) -> int: charging_ev = self.data.set.charging_ev_data phases = min(phases, self.get_max_phase_hw()) @@ -584,12 +584,13 @@ def set_phases(self, phases: int) -> int: phases = self.data.get.phases_in_use else: phases = self.data.control_parameter.phases - elif self.cp_ev_support_phase_switch() is False: + elif self.hw_supports_phase_switch() is False: # sonst passt die Phasenzahl nicht bei Autos, die eine Phase weg schalten. log.info(f"Phasenumschaltung an Ladepunkt {self.num} wird durch die Hardware nicht unterstützt.") phases = phases if phases != self.data.control_parameter.phases: self.data.control_parameter.phases = phases + self.data.control_parameter.template_phases = template_phases return phases def check_cp_max_current(self, required_current: float, phases: int) -> float: @@ -698,18 +699,18 @@ def update(self, ev_list: Dict[str, Ev]) -> None: if charging_possible: try: charging_ev = self._get_charging_ev(vehicle, ev_list) - state, message_ev, submode, required_current, phases = charging_ev.get_required_current( + state, message_ev, submode, required_current, template_phases = charging_ev.get_required_current( self.data.set.charge_template, self.data.control_parameter, self.get_max_phase_hw(), - self.cp_ev_support_phase_switch(), + self.hw_supports_phase_switch(), self.template.data.charging_type, self.data.control_parameter.timestamp_chargemode_changed or create_timestamp(), self.data.set.log.imported_since_plugged, self.hw_bidi_capable(), self.data.get.phases_in_use) - phases = self.get_phases_by_selected_chargemode(phases) - phases = self.set_phases(phases) + required_phases = self.get_phases_by_selected_chargemode(template_phases) + required_phases = self.set_phases(required_phases, template_phases) self._pub_connected_vehicle(charging_ev) required_current = self.chargepoint_module.add_conversion_loss_to_current(required_current) self.set_chargemode_changed(submode) @@ -778,7 +779,9 @@ def update(self, ev_list: Dict[str, Ev]) -> None: try: # check für charging stop or charging interruption, if so force a soc query for the ev if self.data.set.charge_state_prev and self.data.get.charge_state is False: - Pub().pub(f"openWB/set/vehicle/{self.data.config.ev}/get/force_soc_update", True) + Pub().pub( + f"openWB/set/vehicle/{vehicle if vehicle != -1 else self.data.config.ev}/get/force_soc_update", + True) log.info(f"SoC-Abfrage nach Ladeunterbrechung, cp{self.num}, ev{self.data.config.ev}") except Exception: log.exception(f"Fehler bei Ladestop,cp{self.num}") @@ -801,7 +804,9 @@ def update(self, ev_list: Dict[str, Ev]) -> None: (self.data.get.plug_state is False and self.data.set.plug_state_prev) or (self.data.get.soc_timestamp and self.data.set.charging_ev_data.data.get.soc_timestamp and self.data.get.soc_timestamp > self.data.set.charging_ev_data.data.get.soc_timestamp)): - Pub().pub(f"openWB/set/vehicle/{self.data.config.ev}/get/force_soc_update", True) + Pub().pub( + f"openWB/set/vehicle/{vehicle if vehicle != -1 else self.data.config.ev}/get/force_soc_update", + True) log.debug("SoC nach Anstecken") self.set_state_and_log(message) except Exception: @@ -900,41 +905,21 @@ def _pub_connected_vehicle(self, vehicle: Ev): except Exception: log.exception("Fehler im Prepare-Modul") - def cp_ev_chargemode_support_phase_switch(self) -> bool: - if (self.cp_ev_support_phase_switch() and + def cp_state_hw_support_phase_switch(self) -> bool: + if (self.hw_supports_phase_switch() and self.data.get.charge_state and - self.chargemode_support_phase_switch() and (self.data.control_parameter.state == ChargepointState.CHARGING_ALLOWED or self.data.control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY)): return self.failed_phase_switches_reached() else: return False - def cp_ev_support_phase_switch(self) -> bool: + def hw_supports_phase_switch(self) -> bool: return (self.data.config.auto_phase_switch_hw and self.data.get.evse_signaling != EvseSignaling.HLC and (self.data.set.charging_ev_data.ev_template.data.prevent_phase_switch is False or self.data.set.log.imported_since_plugged == 0)) - def chargemode_support_phase_switch(self) -> bool: - control_parameter = self.data.control_parameter - pv_auto_switch = ((control_parameter.chargemode == Chargemode.PV_CHARGING or - control_parameter.chargemode == Chargemode.ECO_CHARGING) and - (control_parameter.submode == Chargemode.PV_CHARGING or - control_parameter.submode == Chargemode.INSTANT_CHARGING) and - self.data.set.charge_template.data.chargemode.pv_charging.phases_to_use == 0) - for p in self.data.set.charge_template.data.chargemode.scheduled_charging.plans: - if p.id == self.data.control_parameter.current_plan: - phases_to_use_pv = p.phases_to_use_pv - break - else: - phases_to_use_pv = 1 - scheduled_auto_switch = ( - control_parameter.chargemode == Chargemode.SCHEDULED_CHARGING and - control_parameter.submode == Chargemode.PV_CHARGING and - phases_to_use_pv == 0) - return (pv_auto_switch or scheduled_auto_switch) - def failed_phase_switches_reached(self) -> bool: if ((data.data.general_data.data.chargemode_config.retry_failed_phase_switches and self.data.control_parameter.failed_phase_switches > self.MAX_FAILED_PHASE_SWITCHES) or diff --git a/packages/control/chargepoint/control_parameter.py b/packages/control/chargepoint/control_parameter.py index e1bbe8c4a5..ee671f705b 100644 --- a/packages/control/chargepoint/control_parameter.py +++ b/packages/control/chargepoint/control_parameter.py @@ -23,6 +23,7 @@ class ControlParameter: state: ChargepointState = field(default=ChargepointState.NO_CHARGING_ALLOWED, metadata={"topic": "control_parameter/state"}) submode: Chargemode_enum = field(default=Chargemode_enum.STOP, metadata={"topic": "control_parameter/submode"}) + template_phases: int = field(default=None, metadata={"topic": "control_parameter/template_phases"}) timestamp_charge_start: Optional[float] = field( default=None, metadata={"topic": "control_parameter/timestamp_charge_start"}) timestamp_chargemode_changed: Optional[float] = field( diff --git a/packages/control/chargepoint/get_phases_test.py b/packages/control/chargepoint/get_phases_test.py index 555a0529bd..41d32943e2 100644 --- a/packages/control/chargepoint/get_phases_test.py +++ b/packages/control/chargepoint/get_phases_test.py @@ -160,7 +160,7 @@ def __init__(self, def test_set_phases(monkeypatch, cp: Chargepoint, params: SetPhasesParams): # setup mock_phase_switch_supported = Mock(name="phase_switch_supported", return_value=params.phase_switch_supported) - monkeypatch.setattr(Chargepoint, "cp_ev_support_phase_switch", mock_phase_switch_supported) + monkeypatch.setattr(Chargepoint, "hw_supports_phase_switch", mock_phase_switch_supported) cp.data.get.phases_in_use = params.phases_in_use cp.data.set.log.imported_since_plugged = params.imported_since_plugged charging_ev_data = cp.data.set.charging_ev_data @@ -168,7 +168,7 @@ def test_set_phases(monkeypatch, cp: Chargepoint, params: SetPhasesParams): cp.data.control_parameter.phases = params.phases_in_use # execution - phases = cp.set_phases(params.phases) + phases = cp.set_phases(params.phases, 3) # evaluation assert phases == params.expected_phases diff --git a/packages/control/counter.py b/packages/control/counter.py index d82b106be1..b00b0f79a1 100644 --- a/packages/control/counter.py +++ b/packages/control/counter.py @@ -349,7 +349,7 @@ def switch_on_timer_expired(self, chargepoint: Chargepoint) -> None: max_phases_power = ev_template.data.min_current * ev_template.data.max_phases * 230 if (control_parameter.submode == Chargemode.PV_CHARGING and chargepoint.data.set.charge_template.data.chargemode.pv_charging.phases_to_use == 0 and - chargepoint.cp_ev_support_phase_switch() and + chargepoint.hw_supports_phase_switch() and self.get_usable_surplus(feed_in_yield) > max_phases_power): control_parameter.phases = ev_template.data.max_phases msg += self.SWITCH_ON_MAX_PHASES.format(ev_template.data.max_phases) diff --git a/packages/control/optional_data.py b/packages/control/optional_data.py index 8b9a76aea4..5f4b861cba 100644 --- a/packages/control/optional_data.py +++ b/packages/control/optional_data.py @@ -62,9 +62,20 @@ def rfid_factory() -> Rfid: class Ocpp: active: bool = False boot_notification_sent: bool = False - url: Optional[str] = None + _url: Optional[str] = None version: str = "ocpp1.6" + @property + def url(self) -> Optional[str]: + return self._url + + @url.setter + def url(self, value: Optional[str]): + if value is not None and not value.endswith("/"): + self._url = value + "/" + else: + self._url = value + def ocpp_factory() -> Ocpp: return Ocpp() diff --git a/packages/helpermodules/command.py b/packages/helpermodules/command.py index 41067b8c1f..3db8dac1b7 100644 --- a/packages/helpermodules/command.py +++ b/packages/helpermodules/command.py @@ -819,6 +819,16 @@ def systemUpdate(self, connection_id: str, payload: dict) -> None: Pub().pub("openWB/system/update_in_progress", False) return parent_file = Path(__file__).resolve().parents[2] + if not SubData.general_data.data.extern and SubData.system_data["system"].data["secondary_auto_update"]: + for cp in SubData.cp_data.values(): + # if chargepoint is external_openwb and not the second CP of duo and version is Release + if ( + cp.chargepoint.chargepoint_module.config.type == 'external_openwb' and + cp.chargepoint.chargepoint_module.config.configuration.duo_num == 0 and + cp.chargepoint.data.get.current_branch == "Release" + ): + time.sleep(2) + self.secondaryChargepointUpdate({"data": {"chargepoint": f"cp{cp.chargepoint.num}"}}) if "branch" in payload["data"] and "tag" in payload["data"]: pub_user_message( payload, connection_id, @@ -833,16 +843,6 @@ def systemUpdate(self, connection_id: str, payload: dict) -> None: run_command([ str(parent_file / "runs" / "update_self.sh"), SubData.system_data["system"].data["current_branch"]]) - if not SubData.general_data.data.extern and SubData.system_data["system"].data["secondary_auto_update"]: - for cp in SubData.cp_data.values(): - # if chargepoint is external_openwb and not the second CP of duo and version is Release - if ( - cp.chargepoint.chargepoint_module.config.type == 'external_openwb' and - cp.chargepoint.chargepoint_module.config.configuration.duo_num == 0 and - cp.chargepoint.data.get.current_branch == "Release" - ): - time.sleep(2) - self.secondaryChargepointUpdate({"data": {"chargepoint": f"cp{cp.chargepoint.num}"}}) def systemFetchVersions(self, connection_id: str, payload: dict) -> None: log.info("Fetch versions requested") diff --git a/packages/helpermodules/logger.py b/packages/helpermodules/logger.py index 2f5258dba4..436b8a6cc5 100644 --- a/packages/helpermodules/logger.py +++ b/packages/helpermodules/logger.py @@ -1,9 +1,7 @@ import functools import logging -import logging.handlers from logging.handlers import RotatingFileHandler from pathlib import Path -import queue import sys import threading import typing_extensions @@ -210,99 +208,84 @@ def mb_to_bytes(megabytes: int) -> int: # to do: add smarthome and soc to in_memory_log_handlers, needs updates in individual thread calls # Main logger - log_queue = queue.Queue() - queue_handler = logging.handlers.QueueHandler(log_queue) - main_file_handler = RotatingFileHandler(RAMDISK_PATH + 'main.log', maxBytes=mb_to_bytes(5.5), backupCount=4) + main_file_handler = RotatingFileHandler(RAMDISK_PATH + 'main.log', maxBytes=mb_to_bytes(5), backupCount=4) main_file_handler.setFormatter(logging.Formatter(FORMAT_STR_DETAILED)) main_file_handler.addFilter(RedactingFilter()) in_memory_log_handlers["main"] = InMemoryLogHandler(main_file_handler) in_memory_log_handlers["main"].setFormatter(logging.Formatter(FORMAT_STR_DETAILED)) - logging.basicConfig(level=logging.DEBUG, handlers=[queue_handler, in_memory_log_handlers["main"]]) + logging.basicConfig(level=logging.DEBUG, handlers=[main_file_handler, in_memory_log_handlers["main"]]) logging.getLogger().handlers[0].addFilter(functools.partial(filter_neg, "soc")) logging.getLogger().handlers[0].addFilter(functools.partial(filter_neg, "Internal Chargepoint")) logging.getLogger().handlers[0].addFilter(functools.partial(filter_neg, "smarthome")) - main_listener = logging.handlers.QueueListener(log_queue, main_file_handler) - main_listener.start() # Chargelog logger - chargelog_queue = queue.Queue() - chargelog_queue_handler = logging.handlers.QueueHandler(chargelog_queue) chargelog_log = logging.getLogger("chargelog") chargelog_log.propagate = False chargelog_file_handler = RotatingFileHandler( RAMDISK_PATH + 'chargelog.log', maxBytes=mb_to_bytes(2), backupCount=1) chargelog_file_handler.setFormatter(logging.Formatter(FORMAT_STR_SHORT)) chargelog_file_handler.addFilter(RedactingFilter()) - chargelog_log.addHandler(chargelog_queue_handler) - chargelog_listener = logging.handlers.QueueListener(chargelog_queue, chargelog_file_handler) - chargelog_listener.start() + chargelog_log.addHandler(chargelog_file_handler) # Data migration logger - data_migration_queue = queue.Queue() - data_migration_queue_handler = logging.handlers.QueueHandler(data_migration_queue) data_migration_log = logging.getLogger("data_migration") data_migration_log.propagate = False data_migration_file_handler = RotatingFileHandler( PERSISTENT_LOG_PATH + 'data_migration.log', maxBytes=mb_to_bytes(1), backupCount=1) data_migration_file_handler.setFormatter(logging.Formatter(FORMAT_STR_SHORT)) data_migration_file_handler.addFilter(RedactingFilter()) - data_migration_log.addHandler(data_migration_queue_handler) - data_migration_listener = logging.handlers.QueueListener(data_migration_queue, data_migration_file_handler) - data_migration_listener.start() + data_migration_log.addHandler(data_migration_file_handler) # MQTT logger - mqtt_queue = queue.Queue() - mqtt_queue_handler = logging.handlers.QueueHandler(mqtt_queue) mqtt_log = logging.getLogger("mqtt") mqtt_log.propagate = False mqtt_file_handler = RotatingFileHandler(RAMDISK_PATH + 'mqtt.log', maxBytes=mb_to_bytes(3), backupCount=1) mqtt_file_handler.setFormatter(logging.Formatter(FORMAT_STR_SHORT)) mqtt_file_handler.addFilter(RedactingFilter()) - mqtt_log.addHandler(mqtt_queue_handler) - mqtt_listener = logging.handlers.QueueListener(mqtt_queue, mqtt_file_handler) - mqtt_listener.start() + mqtt_log.addHandler(mqtt_file_handler) # Steuve control command logger - steuve_control_command_queue = queue.Queue() - steuve_control_command_queue_handler = logging.handlers.QueueHandler(steuve_control_command_queue) steuve_control_command_log = logging.getLogger("steuve_control_command") steuve_control_command_log.propagate = False steuve_control_command_file_handler = RotatingFileHandler( PERSISTENT_LOG_PATH + 'steuve_control_command.log', maxBytes=mb_to_bytes(80), backupCount=1) steuve_control_command_file_handler.setFormatter(logging.Formatter(FORMAT_STR_SHORT)) - steuve_control_command_log.addHandler(steuve_control_command_queue_handler) - steuve_control_command_listener = logging.handlers.QueueListener(steuve_control_command_queue, - steuve_control_command_file_handler) - steuve_control_command_listener.start() + steuve_control_command_log.addHandler(steuve_control_command_file_handler) + + # Garbage collector logger + garbage_collector_log = logging.getLogger("garbage_collector") + garbage_collector_log.propagate = False + garbage_collector_file_handler = RotatingFileHandler( + RAMDISK_PATH + 'garbage_collector.log', maxBytes=mb_to_bytes(0.5), backupCount=1) + garbage_collector_file_handler.setFormatter(logging.Formatter(FORMAT_STR_SHORT)) + garbage_collector_log.addHandler(garbage_collector_file_handler) + + # tracemalloc logger + tracemalloc_log = logging.getLogger("tracemalloc") + tracemalloc_log.propagate = False + tracemalloc_file_handler = RotatingFileHandler( + RAMDISK_PATH + 'tracemalloc.log', maxBytes=mb_to_bytes(0.5), backupCount=1) + tracemalloc_file_handler.setFormatter(logging.Formatter(FORMAT_STR_SHORT)) + tracemalloc_log.addHandler(tracemalloc_file_handler) # Smarthome logger - smarthome_queue = queue.Queue() - smarthome_queue_handler = logging.handlers.QueueHandler(smarthome_queue) smarthome_log_handler = RotatingFileHandler(RAMDISK_PATH + 'smarthome.log', maxBytes=mb_to_bytes(1), backupCount=1) smarthome_log_handler.setFormatter(logging.Formatter(FORMAT_STR_SHORT)) smarthome_log_handler.addFilter(functools.partial(filter_pos, "smarthome")) smarthome_log_handler.addFilter(RedactingFilter()) - logging.getLogger().addHandler(smarthome_queue_handler) - smarthome_listener = logging.handlers.QueueListener(smarthome_queue, smarthome_log_handler) - smarthome_listener.start() + logging.getLogger().addHandler(smarthome_log_handler) # SoC logger - soc_queue = queue.Queue() - soc_queue_handler = logging.handlers.QueueHandler(soc_queue) soc_log_handler = RotatingFileHandler(RAMDISK_PATH + 'soc.log', maxBytes=mb_to_bytes(2), backupCount=1) soc_log_handler.setFormatter(logging.Formatter(FORMAT_STR_DETAILED)) soc_log_handler.addFilter(functools.partial(filter_pos, "soc")) soc_log_handler.addFilter(RedactingFilter()) in_memory_log_handlers["soc"] = InMemoryLogHandler(soc_log_handler) in_memory_log_handlers["soc"].setFormatter(logging.Formatter(FORMAT_STR_DETAILED)) - logging.getLogger().addHandler(soc_queue_handler) + logging.getLogger().addHandler(soc_log_handler) logging.getLogger().addHandler(in_memory_log_handlers["soc"]) - soc_listener = logging.handlers.QueueListener(soc_queue, soc_log_handler) - soc_listener.start() # Internal chargepoint logger - internal_chargepoint_queue = queue.Queue() - internal_chargepoint_queue_handler = logging.handlers.QueueHandler(internal_chargepoint_queue) internal_chargepoint_log_handler = RotatingFileHandler(RAMDISK_PATH + 'internal_chargepoint.log', maxBytes=mb_to_bytes(1), backupCount=1) @@ -311,24 +294,17 @@ def mb_to_bytes(megabytes: int) -> int: internal_chargepoint_log_handler.addFilter(RedactingFilter()) in_memory_log_handlers["internal_chargepoint"] = InMemoryLogHandler(internal_chargepoint_log_handler) in_memory_log_handlers["internal_chargepoint"].setFormatter(logging.Formatter(FORMAT_STR_DETAILED)) - logging.getLogger().addHandler(internal_chargepoint_queue_handler) + logging.getLogger().addHandler(internal_chargepoint_log_handler) logging.getLogger().addHandler(in_memory_log_handlers["internal_chargepoint"]) - internal_chargepoint_listener = logging.handlers.QueueListener(internal_chargepoint_queue, - internal_chargepoint_log_handler) - internal_chargepoint_listener.start() # urllib3 logger - urllib3_queue = queue.Queue() - urllib3_queue_handler = logging.handlers.QueueHandler(urllib3_queue) urllib3_log = logging.getLogger("urllib3.connectionpool") urllib3_log.propagate = True urllib3_file_handler = RotatingFileHandler(RAMDISK_PATH + 'soc.log', maxBytes=mb_to_bytes(2), backupCount=1) urllib3_file_handler.setFormatter(logging.Formatter(FORMAT_STR_DETAILED)) urllib3_file_handler.addFilter(RedactingFilter()) urllib3_file_handler.addFilter(functools.partial(filter_pos, "soc")) - urllib3_log.addHandler(urllib3_queue_handler) - urllib3_listener = logging.handlers.QueueListener(urllib3_queue, urllib3_file_handler) - urllib3_listener.start() + urllib3_log.addHandler(urllib3_file_handler) logging.getLogger("pymodbus").setLevel(logging.WARNING) logging.getLogger("uModbus").setLevel(logging.WARNING) diff --git a/packages/helpermodules/setdata.py b/packages/helpermodules/setdata.py index 2846b1db46..a18eaebb9d 100644 --- a/packages/helpermodules/setdata.py +++ b/packages/helpermodules/setdata.py @@ -485,7 +485,8 @@ def process_chargepoint_topic(self, msg: mqtt.MQTTMessage): self._validate_value(msg, float, [(0, 0), (6, 32), (0, 450)]) else: self._validate_value(msg, float, [(6, 32), (0, 0)]) - elif "/control_parameter/phases" in msg.topic: + elif ("/control_parameter/phases" in msg.topic or + "/control_parameter/template_phases" in msg.topic): self._validate_value(msg, int, [(0, 3)]) elif "/control_parameter/failed_phase_switches" in msg.topic: self._validate_value(msg, int, [(0, 4)]) diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 094067adcd..deca0711f7 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -106,6 +106,7 @@ class UpdateConfig: "^openWB/chargepoint/[0-9]+/control_parameter/required_currents$", "^openWB/chargepoint/[0-9]+/control_parameter/state$", "^openWB/chargepoint/[0-9]+/control_parameter/submode$", + "^openWB/chargepoint/[0-9]+/control_parameter/template_phases$", "^openWB/chargepoint/[0-9]+/control_parameter/timestamp_charge_start$", "^openWB/chargepoint/[0-9]+/control_parameter/timestamp_chargemode_changed$", "^openWB/chargepoint/[0-9]+/control_parameter/timestamp_last_phase_switch$", diff --git a/packages/main.py b/packages/main.py index 2fbd15b490..2fb8b4038b 100755 --- a/packages/main.py +++ b/packages/main.py @@ -252,6 +252,7 @@ def handler_hour(self): for cp in data.data.cp_data.values(): calculate_charge_cost(cp) data.data.optional_data.et_get_prices() + logger.clear_in_memory_log_handler(None) except Exception: log.exception("Fehler im Main-Modul") @@ -273,6 +274,7 @@ def schedule_jobs(): try: log.debug("Start openWB2.service") + old_memory_usage = 0 loadvars_ = loadvars.Loadvars() data.data_init(loadvars_.event_module_update_completed) update_config.UpdateConfig().update() diff --git a/packages/modules/chargepoints/openwb_series2_satellit/chargepoint_module.py b/packages/modules/chargepoints/openwb_series2_satellit/chargepoint_module.py index 0e24638ac0..a004fe483b 100644 --- a/packages/modules/chargepoints/openwb_series2_satellit/chargepoint_module.py +++ b/packages/modules/chargepoints/openwb_series2_satellit/chargepoint_module.py @@ -120,7 +120,7 @@ def set_current(self, current: float) -> None: self.delay_second_cp(self.CP1_DELAY) with self._client.client: if self.version: - self._client.evse_client.set_current(int(current)) + self._client.evse_client.set_current(current) else: self._client.evse_client.set_current(0) except AttributeError: diff --git a/packages/modules/common/evse.py b/packages/modules/common/evse.py index b50779cebb..86b855639b 100644 --- a/packages/modules/common/evse.py +++ b/packages/modules/common/evse.py @@ -49,21 +49,21 @@ def __init__(self, modbus_id: int, client: modbus.ModbusSerialClient_) -> None: def get_plug_charge_state(self) -> Tuple[bool, bool, float]: time.sleep(0.1) - set_current, _, state_number = self.client.read_holding_registers( + raw_set_current, _, state_number = self.client.read_holding_registers( 1000, [ModbusDataType.UINT_16]*3, unit=self.id) # remove leading zeros - set_current = int(set_current) - log.debug("Gesetzte Stromstärke EVSE: "+str(set_current) + + self.evse_current = int(raw_set_current) + log.debug("Gesetzte Stromstärke EVSE: "+str(self.evse_current) + ", Status: "+str(state_number)+", Modbus-ID: "+str(self.id)) state = EvseStatusCode(state_number) if state == EvseStatusCode.FAILURE: raise ValueError("Unbekannter Zustand der EVSE: State " + - str(state)+", Soll-Stromstärke: "+str(set_current)) + str(state)+", Soll-Stromstärke: "+str(self.evse_current)) plugged = state.plugged - charging = set_current > 0 if state.charge_enabled else False - if set_current > 32: - set_current = set_current / 100 - return plugged, charging, set_current + charging = self.evse_current > 0 if state.charge_enabled else False + if self.evse_current > 32: + self.evse_current = self.evse_current / 100 + return plugged, charging, self.evse_current def get_firmware_version(self) -> int: return self.version @@ -111,4 +111,6 @@ def deactivate_precise_current(self) -> None: def set_current(self, current: int) -> None: time.sleep(0.1) - self.client.write_registers(1000, current, unit=self.id) + formatted_current = round(current*100) if self._precise_current else round(current) + if self.evse_current != formatted_current: + self.client.write_registers(1000, formatted_current, unit=self.id) diff --git a/packages/modules/devices/huawei/huawei/device.py b/packages/modules/devices/huawei/huawei/device.py index df77e1702a..7869c6c637 100644 --- a/packages/modules/devices/huawei/huawei/device.py +++ b/packages/modules/devices/huawei/huawei/device.py @@ -56,7 +56,7 @@ def initializer(): if HuaweiType(device_config.configuration.type) == HuaweiType.SDongle: client = ModbusTcpClient_(device_config.configuration.ip_address, device_config.configuration.port, sleep_after_connect=7) - if HuaweiType(device_config.configuration.type) == HuaweiType.HuaweiKit: + elif HuaweiType(device_config.configuration.type) == HuaweiType.Huawei_Kit: client = ModbusTcpClient_("192.168.193.126", 8899) else: client = ModbusTcpClient_(device_config.configuration.ip_address, diff --git a/packages/modules/devices/huawei/huawei_emma/inverter.py b/packages/modules/devices/huawei/huawei_emma/inverter.py index 5552b57ee7..8f0ea76be2 100644 --- a/packages/modules/devices/huawei/huawei_emma/inverter.py +++ b/packages/modules/devices/huawei/huawei_emma/inverter.py @@ -32,7 +32,7 @@ def initialize(self) -> None: def update(self) -> None: power = self.client.read_holding_registers(30354, ModbusDataType.INT_32, unit=self.modbus_id) * -1 - exported = self.client.read_holding_registers(30344, ModbusDataType.UINT_32, unit=self.modbus_id) * 10 + exported = self.client.read_holding_registers(30348, ModbusDataType.UINT_64, unit=self.modbus_id) * 10 inverter_state = InverterState( power=power, diff --git a/packages/modules/devices/shelly/shelly/bat.py b/packages/modules/devices/shelly/shelly/bat.py index abbcb15ab3..c5e9f8c337 100644 --- a/packages/modules/devices/shelly/shelly/bat.py +++ b/packages/modules/devices/shelly/shelly/bat.py @@ -64,7 +64,7 @@ def update(self) -> None: currents = [status['pm1:0']['current'], 0, 0] else: power = status['em:0']['total_act_power'] # shelly Pro3EM - currents = [meter[f'{i}_current'] for i in 'abc'] + currents = [status['em:0'][f'{i}_current'] for i in 'abc'] power = power * self.factor imported, exported = self.sim_counter.sim_count(power) diff --git a/packages/modules/devices/shelly/shelly/inverter.py b/packages/modules/devices/shelly/shelly/inverter.py index cc57a0959f..96a7fa2662 100644 --- a/packages/modules/devices/shelly/shelly/inverter.py +++ b/packages/modules/devices/shelly/shelly/inverter.py @@ -62,7 +62,7 @@ def update(self) -> None: currents = [status['pm1:0']['current'], 0, 0] else: power = status['em:0']['total_act_power'] # shelly Pro3EM - currents = [meter[f'{i}_current'] for i in 'abc'] + currents = [status['em:0'][f'{i}_current'] for i in 'abc'] power = power * self.factor _, exported = self.sim_counter.sim_count(power) diff --git a/packages/modules/devices/sonnen/sonnenbatterie/api.py b/packages/modules/devices/sonnen/sonnenbatterie/api.py index 462e486cb1..752e850e9c 100644 --- a/packages/modules/devices/sonnen/sonnenbatterie/api.py +++ b/packages/modules/devices/sonnen/sonnenbatterie/api.py @@ -96,9 +96,9 @@ def update_grid_counter(self, sim_counter: SimCounter) -> CounterState: Returns: CounterState: The updated grid counter state. """ - grid_import_power = -int(float(self.__read_element(device="battery", element="M39"))) - grid_export_power = -int(float(self.__read_element(device="battery", element="M38"))) - grid_power = grid_import_power - grid_export_power + grid_export_power = int(float(self.__read_element(device="battery", element="M38"))) + grid_import_power = int(float(self.__read_element(device="battery", element="M39"))) + grid_power = grid_import_power - grid_export_power # export power must be negative imported, exported = sim_counter.sim_count(grid_power) return CounterState(power=grid_power, imported=imported, diff --git a/packages/modules/display_themes/cards/source/README.md b/packages/modules/display_themes/cards/source/README.md index 8c2131c52e..d32aab0365 100644 --- a/packages/modules/display_themes/cards/source/README.md +++ b/packages/modules/display_themes/cards/source/README.md @@ -2,6 +2,7 @@ This is the "Cards" display theme for openWB 2.x. + ## Recommended IDE Setup [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). diff --git a/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue b/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue index 7114e3fc40..e9bd936a92 100644 --- a/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue +++ b/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue @@ -197,6 +197,9 @@ export default { return this.homePower.value < 0; }, pvProduction() { + return this.pvPower.value < 0; + }, + pvConsumption() { return this.pvPower.value > 0; }, batteryDischarging() { @@ -279,9 +282,9 @@ export default { id: "pv", class: { base: "pv", - valueLabel: this.pvProduction ? "fill-success" : "", + valueLabel: this.pvProduction || this.pvConsumption ? "fill-success" : "", animated: this.pvProduction, - animatedReverse: false, + animatedReverse: this.pvConsumption, }, position: { row: 1, diff --git a/packages/modules/display_themes/cards/source/src/stores/mqtt.js b/packages/modules/display_themes/cards/source/src/stores/mqtt.js index f53d0eb91f..22fc6799a3 100644 --- a/packages/modules/display_themes/cards/source/src/stores/mqtt.js +++ b/packages/modules/display_themes/cards/source/src/stores/mqtt.js @@ -399,8 +399,6 @@ export const useMqttStore = defineStore("mqtt", { "openWB/pv/get/power", "W", "", - true, - true, ); if (Object.hasOwnProperty.call(power, returnType)) { return power[returnType]; diff --git a/packages/modules/display_themes/cards/source/src/views/ChargePointsView.vue b/packages/modules/display_themes/cards/source/src/views/ChargePointsView.vue index 06f509c38f..f460d930e7 100644 --- a/packages/modules/display_themes/cards/source/src/views/ChargePointsView.vue +++ b/packages/modules/display_themes/cards/source/src/views/ChargePointsView.vue @@ -464,7 +464,7 @@ export default { /> - Anzahl Phasen + Anzahl Phasen bei Überschuss ({mqttStore:V(),simpleChargeModes:["instant_charging","pv_charging","stop"]}),computed:{filteredChargeModes(){return this.mqttStore.getSimpleChargePointView?this.mqttStore.chargeModeList().filter(t=>this.simpleChargeModes.includes(t.id)):this.mqttStore.chargeModeList()}},methods:{updateChargePointChargeTemplate(t,e,r=void 0){const g=this.mqttStore.updateState(`openWB/chargepoint/${t}/set/charge_template`,e,r);this.$root.sendTopicToBroker(`openWB/chargepoint/${t}/set/charge_template`,g)},setChargePointConnectedVehicleChargeMode(t){t!=this.mqttStore.getChargePointConnectedVehicleChargeMode(this.chargePointId)&&this.updateChargePointChargeTemplate(this.chargePointId,t,"chargemode.selected")},setChargePointConnectedVehiclePriority(t){t!=this.mqttStore.getChargePointConnectedVehiclePriority(this.chargePointId)&&this.updateChargePointChargeTemplate(this.chargePointId,t,"prio")}}},[["render",function(t,e,r,g,n,h){const c=l("i-button"),u=l("i-button-group"),m=l("i-form-group"),P=l("i-form-label"),_=l("i-form"),f=l("i-modal");return s(),C(f,{"model-value":r.modelValue,size:"lg","onUpdate:modelValue":e[2]||(e[2]=a=>t.$emit("update:modelValue",a))},{header:o(()=>[d(' Lademodus für "'+p(n.mqttStore.getChargePointConnectedVehicleName(r.chargePointId))+'" auswählen ',1)]),default:o(()=>[i(_,null,{default:o(()=>[i(m,null,{default:o(()=>[i(u,{block:"",vertical:""},{default:o(()=>[(s(!0),S(M,null,b(h.filteredChargeModes,a=>(s(),C(c,{key:a.id,size:"lg",class:"large-button",outline:"",color:a.class!="dark"?a.class:"light",active:n.mqttStore.getChargePointConnectedVehicleChargeMode(r.chargePointId)!=null&&a.id==n.mqttStore.getChargePointConnectedVehicleChargeMode(r.chargePointId).mode,onClick:I=>h.setChargePointConnectedVehicleChargeMode(a.id)},{default:o(()=>[d(p(a.label),1)]),_:2},1032,["color","active","onClick"]))),128))]),_:1})]),_:1}),i(m,null,{default:o(()=>[i(P,null,{default:o(()=>e[3]||(e[3]=[d("Priorität",-1)])),_:1,__:[3]}),i(u,{block:""},{default:o(()=>[i(c,{size:"lg",class:"large-button",color:n.mqttStore.getChargePointConnectedVehiclePriority(r.chargePointId)!==!0?"danger":"",onClick:e[0]||(e[0]=a=>h.setChargePointConnectedVehiclePriority(!1))},{default:o(()=>e[4]||(e[4]=[d(" Nein ",-1)])),_:1,__:[4]},8,["color"]),i(c,{color:n.mqttStore.getChargePointConnectedVehiclePriority(r.chargePointId)===!0?"success":"",onClick:e[1]||(e[1]=a=>h.setChargePointConnectedVehiclePriority(!0))},{default:o(()=>e[5]||(e[5]=[d(" Ja ",-1)])),_:1,__:[5]},8,["color"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])}],["__scopeId","data-v-bd48ea1b"]]);export{T as C}; +import{u as V}from"./index-B9sId-TF.js";import{_ as q}from"./vendor-inkline-S9CBmrTS.js";import{l as C,q as o,p as l,o as s,s as i,e as S,F as M,A as b,k as d,x as p}from"./vendor-Bzn5cd2Y.js";const T=q({name:"ChargeModeModal",props:{modelValue:{required:!0,type:Boolean,default:!1},chargePointId:{type:Number,required:!0}},emits:["update:modelValue"],data:()=>({mqttStore:V(),simpleChargeModes:["instant_charging","pv_charging","stop"]}),computed:{filteredChargeModes(){return this.mqttStore.getSimpleChargePointView?this.mqttStore.chargeModeList().filter(t=>this.simpleChargeModes.includes(t.id)):this.mqttStore.chargeModeList()}},methods:{updateChargePointChargeTemplate(t,e,r=void 0){const g=this.mqttStore.updateState(`openWB/chargepoint/${t}/set/charge_template`,e,r);this.$root.sendTopicToBroker(`openWB/chargepoint/${t}/set/charge_template`,g)},setChargePointConnectedVehicleChargeMode(t){t!=this.mqttStore.getChargePointConnectedVehicleChargeMode(this.chargePointId)&&this.updateChargePointChargeTemplate(this.chargePointId,t,"chargemode.selected")},setChargePointConnectedVehiclePriority(t){t!=this.mqttStore.getChargePointConnectedVehiclePriority(this.chargePointId)&&this.updateChargePointChargeTemplate(this.chargePointId,t,"prio")}}},[["render",function(t,e,r,g,n,h){const c=l("i-button"),u=l("i-button-group"),m=l("i-form-group"),P=l("i-form-label"),_=l("i-form"),f=l("i-modal");return s(),C(f,{"model-value":r.modelValue,size:"lg","onUpdate:modelValue":e[2]||(e[2]=a=>t.$emit("update:modelValue",a))},{header:o(()=>[d(' Lademodus für "'+p(n.mqttStore.getChargePointConnectedVehicleName(r.chargePointId))+'" auswählen ',1)]),default:o(()=>[i(_,null,{default:o(()=>[i(m,null,{default:o(()=>[i(u,{block:"",vertical:""},{default:o(()=>[(s(!0),S(M,null,b(h.filteredChargeModes,a=>(s(),C(c,{key:a.id,size:"lg",class:"large-button",outline:"",color:a.class!="dark"?a.class:"light",active:n.mqttStore.getChargePointConnectedVehicleChargeMode(r.chargePointId)!=null&&a.id==n.mqttStore.getChargePointConnectedVehicleChargeMode(r.chargePointId).mode,onClick:I=>h.setChargePointConnectedVehicleChargeMode(a.id)},{default:o(()=>[d(p(a.label),1)]),_:2},1032,["color","active","onClick"]))),128))]),_:1})]),_:1}),i(m,null,{default:o(()=>[i(P,null,{default:o(()=>e[3]||(e[3]=[d("Priorität",-1)])),_:1,__:[3]}),i(u,{block:""},{default:o(()=>[i(c,{size:"lg",class:"large-button",color:n.mqttStore.getChargePointConnectedVehiclePriority(r.chargePointId)!==!0?"danger":"",onClick:e[0]||(e[0]=a=>h.setChargePointConnectedVehiclePriority(!1))},{default:o(()=>e[4]||(e[4]=[d(" Nein ",-1)])),_:1,__:[4]},8,["color"]),i(c,{color:n.mqttStore.getChargePointConnectedVehiclePriority(r.chargePointId)===!0?"success":"",onClick:e[1]||(e[1]=a=>h.setChargePointConnectedVehiclePriority(!0))},{default:o(()=>e[5]||(e[5]=[d(" Ja ",-1)])),_:1,__:[5]},8,["color"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])}],["__scopeId","data-v-bd48ea1b"]]);export{T as C}; diff --git a/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-Cea5-sTy.js b/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-BNajoz51.js similarity index 98% rename from packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-Cea5-sTy.js rename to packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-BNajoz51.js index 3832a95967..4ec0ccda46 100644 --- a/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-Cea5-sTy.js +++ b/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-BNajoz51.js @@ -1 +1 @@ -import{e as c,f,i as x,F as P,A as w,o as h,z as m,O as S,l as C,q as v,p as d,s as b,x as g}from"./vendor-Bzn5cd2Y.js";import{_ as y}from"./vendor-inkline-S9CBmrTS.js";import{u as k}from"./index-Rkba6Ib0.js";import{F as D,l as I,C as q,D as $,E as z}from"./vendor-fortawesome-C1Wk2aFl.js";const l={props:{data:{required:!1,type:Array,default:void 0},socData:{required:!1,type:Array,default:void 0},width:{type:Number,default:250},height:{type:Number,default:70},gap:{type:Number,default:3},stroke:{type:Number,default:3},min:{type:Number,default:0},max:{type:Number,default:1},color:{type:String,default:"var(--color--primary)"},colorNegative:{type:String,default:void 0}},computed:{highestPoint(){return Math.max(1,this.max,...this.slicedData)},lowestPoint(){return Math.min(0,this.min,...this.slicedData)},maxPoints(){return Math.floor(this.width/(this.stroke+this.gap))},slicedData(){if(this.data)return this.data.slice(-this.maxPoints)},slicedSocData(){if(this.socData)return this.socData.slice(-this.maxPoints)},zeroHeight(){return this.height-(0-this.lowestPoint)/(this.highestPoint-this.lowestPoint)*this.height},coordinates(){if(this.data)return this.calculateCoordinates(this.slicedData,this.lowestPoint,this.highestPoint)},socCoordinates(){if(this.socData)return this.calculateCoordinates(this.slicedSocData,0,100)},bars(){if(this.coordinates){const t=[];return this.coordinates.forEach(s=>{const e=s.x,o=s.y,r=this.stroke,a=Math.min(o,this.zeroHeight),i=Math.abs(o-this.zeroHeight),n=o>this.zeroHeight;t.push({x:e,y:a,width:r,height:i,negative:n})}),t}},socPath(){if(this.socCoordinates&&this.socCoordinates.length>0){let s=this.socCoordinates.slice(0,1)[0],e=this.socCoordinates.slice(-1)[0];var t=`M 0,${this.height}`;return t+=` L 0,${s.y}`,this.socCoordinates.forEach(o=>{t+=` L ${o.x+this.stroke/2},${o.y}`}),t+=` L ${e.x+this.stroke},${e.y} L ${e.x+this.stroke},${this.height} Z`}}},methods:{calculateCoordinates(t,s,e){const o=[];return t.forEach((r,a)=>{const i=a*this.width/this.maxPoints+1,n=this.height-(r-s)/(e-s)*this.height;o.push({x:i,y:n})}),o}}},u=()=>{S(t=>({"3f7db06a":t.color,"1de516bf":t.colorNegative}))},p=l.setup;l.setup=p?(t,s)=>(u(),p(t,s)):u;const N=["viewBox"],E=["d"],M=["x","y","width","height"],_=["y1","x2","y2"],R=y(l,[["render",function(t,s,e,o,r,a){return h(),c("svg",{class:"spark-line",viewBox:`0 0 ${e.width} ${e.height}`,width:"100%",preserveAspectRatio:"xMinYMin"},[e.socData?(h(),c("path",{key:0,class:"soc-path",d:a.socPath},null,8,E)):f("",!0),(h(!0),c(P,null,w(a.bars,i=>(h(),c("rect",{key:i.x,x:i.x,y:i.y,width:i.width,height:i.height,class:m(e.colorNegative&&i.negative?"negative":"")},null,10,M))),128)),x("line",{class:"zero-line",x1:0,y1:a.zeroHeight,x2:e.width,y2:a.zeroHeight},null,8,_)],8,N)}],["__scopeId","data-v-22cdf82b"]]);I.add(q,$,z);const A={name:"ChargePointStateBadge",components:{FontAwesomeIcon:D},props:{chargePointId:{required:!0,type:Array},showEnergyCharged:{required:!1,type:Boolean,default:!0}},data:()=>({mqttStore:k()}),computed:{plugState(){var t=!1;return this.chargePointId.forEach(s=>{t|=this.mqttStore.getChargePointPlugState(s)}),t},chargeState(){var t=!1;return this.chargePointId.forEach(s=>{t|=this.mqttStore.getChargePointChargeState(s)}),t},stateIcon(){return this.plugState?this.chargeState?["fas","fa-plug-circle-bolt"]:["fas","fa-plug-circle-check"]:["fas","fa-plug-circle-xmark"]},stateClass(){return this.plugState?this.chargeState?"_color:success":"_color:warning":"_color:gray"}}},H={key:0,class:"_padding-left:1"},Y=y(A,[["render",function(t,s,e,o,r,a){const i=d("font-awesome-icon"),n=d("i-badge");return h(),C(n,{size:"lg"},{default:v(()=>[b(i,{"fixed-width":"",icon:a.stateIcon,class:m(a.stateClass)},null,8,["icon","class"]),a.plugState&&e.showEnergyCharged?(h(),c("span",H,g(r.mqttStore.getChargePointImportedSincePlugged(e.chargePointId).energy)+" / "+g(r.mqttStore.getChargePointImportedSincePlugged(e.chargePointId).range),1)):f("",!0)]),_:1})}]]);export{Y as C,R as S}; +import{e as c,f,i as x,F as P,A as w,o as h,z as m,O as S,l as C,q as v,p as d,s as b,x as g}from"./vendor-Bzn5cd2Y.js";import{_ as y}from"./vendor-inkline-S9CBmrTS.js";import{u as k}from"./index-B9sId-TF.js";import{F as D,l as I,C as q,D as $,E as z}from"./vendor-fortawesome-C1Wk2aFl.js";const l={props:{data:{required:!1,type:Array,default:void 0},socData:{required:!1,type:Array,default:void 0},width:{type:Number,default:250},height:{type:Number,default:70},gap:{type:Number,default:3},stroke:{type:Number,default:3},min:{type:Number,default:0},max:{type:Number,default:1},color:{type:String,default:"var(--color--primary)"},colorNegative:{type:String,default:void 0}},computed:{highestPoint(){return Math.max(1,this.max,...this.slicedData)},lowestPoint(){return Math.min(0,this.min,...this.slicedData)},maxPoints(){return Math.floor(this.width/(this.stroke+this.gap))},slicedData(){if(this.data)return this.data.slice(-this.maxPoints)},slicedSocData(){if(this.socData)return this.socData.slice(-this.maxPoints)},zeroHeight(){return this.height-(0-this.lowestPoint)/(this.highestPoint-this.lowestPoint)*this.height},coordinates(){if(this.data)return this.calculateCoordinates(this.slicedData,this.lowestPoint,this.highestPoint)},socCoordinates(){if(this.socData)return this.calculateCoordinates(this.slicedSocData,0,100)},bars(){if(this.coordinates){const t=[];return this.coordinates.forEach(s=>{const e=s.x,o=s.y,r=this.stroke,a=Math.min(o,this.zeroHeight),i=Math.abs(o-this.zeroHeight),n=o>this.zeroHeight;t.push({x:e,y:a,width:r,height:i,negative:n})}),t}},socPath(){if(this.socCoordinates&&this.socCoordinates.length>0){let s=this.socCoordinates.slice(0,1)[0],e=this.socCoordinates.slice(-1)[0];var t=`M 0,${this.height}`;return t+=` L 0,${s.y}`,this.socCoordinates.forEach(o=>{t+=` L ${o.x+this.stroke/2},${o.y}`}),t+=` L ${e.x+this.stroke},${e.y} L ${e.x+this.stroke},${this.height} Z`}}},methods:{calculateCoordinates(t,s,e){const o=[];return t.forEach((r,a)=>{const i=a*this.width/this.maxPoints+1,n=this.height-(r-s)/(e-s)*this.height;o.push({x:i,y:n})}),o}}},u=()=>{S(t=>({"3f7db06a":t.color,"1de516bf":t.colorNegative}))},p=l.setup;l.setup=p?(t,s)=>(u(),p(t,s)):u;const N=["viewBox"],E=["d"],M=["x","y","width","height"],_=["y1","x2","y2"],R=y(l,[["render",function(t,s,e,o,r,a){return h(),c("svg",{class:"spark-line",viewBox:`0 0 ${e.width} ${e.height}`,width:"100%",preserveAspectRatio:"xMinYMin"},[e.socData?(h(),c("path",{key:0,class:"soc-path",d:a.socPath},null,8,E)):f("",!0),(h(!0),c(P,null,w(a.bars,i=>(h(),c("rect",{key:i.x,x:i.x,y:i.y,width:i.width,height:i.height,class:m(e.colorNegative&&i.negative?"negative":"")},null,10,M))),128)),x("line",{class:"zero-line",x1:0,y1:a.zeroHeight,x2:e.width,y2:a.zeroHeight},null,8,_)],8,N)}],["__scopeId","data-v-22cdf82b"]]);I.add(q,$,z);const A={name:"ChargePointStateBadge",components:{FontAwesomeIcon:D},props:{chargePointId:{required:!0,type:Array},showEnergyCharged:{required:!1,type:Boolean,default:!0}},data:()=>({mqttStore:k()}),computed:{plugState(){var t=!1;return this.chargePointId.forEach(s=>{t|=this.mqttStore.getChargePointPlugState(s)}),t},chargeState(){var t=!1;return this.chargePointId.forEach(s=>{t|=this.mqttStore.getChargePointChargeState(s)}),t},stateIcon(){return this.plugState?this.chargeState?["fas","fa-plug-circle-bolt"]:["fas","fa-plug-circle-check"]:["fas","fa-plug-circle-xmark"]},stateClass(){return this.plugState?this.chargeState?"_color:success":"_color:warning":"_color:gray"}}},H={key:0,class:"_padding-left:1"},Y=y(A,[["render",function(t,s,e,o,r,a){const i=d("font-awesome-icon"),n=d("i-badge");return h(),C(n,{size:"lg"},{default:v(()=>[b(i,{"fixed-width":"",icon:a.stateIcon,class:m(a.stateClass)},null,8,["icon","class"]),a.plugState&&e.showEnergyCharged?(h(),c("span",H,g(r.mqttStore.getChargePointImportedSincePlugged(e.chargePointId).energy)+" / "+g(r.mqttStore.getChargePointImportedSincePlugged(e.chargePointId).range),1)):f("",!0)]),_:1})}]]);export{Y as C,R as S}; diff --git a/packages/modules/display_themes/cards/web/assets/ChargePointsView-CWQMPYO-.css b/packages/modules/display_themes/cards/web/assets/ChargePointsView-BREdPiKW.css similarity index 71% rename from packages/modules/display_themes/cards/web/assets/ChargePointsView-CWQMPYO-.css rename to packages/modules/display_themes/cards/web/assets/ChargePointsView-BREdPiKW.css index 2378b73539..bee29dfae1 100644 --- a/packages/modules/display_themes/cards/web/assets/ChargePointsView-CWQMPYO-.css +++ b/packages/modules/display_themes/cards/web/assets/ChargePointsView-BREdPiKW.css @@ -1 +1 @@ -.card[data-v-45dbe31a]{----background: inherit !important;----body--color: var(----color) !important}.clickable[data-v-45dbe31a]{cursor:pointer}.card[data-v-cb556d40]{----background: inherit !important;----body--color: var(----color) !important}.clickable[data-v-cb556d40]{cursor:pointer}.large-button[data-v-cb556d40]{height:3.75rem;font-size:1.5rem;padding:.75rem 1.5rem}.button-group-wrapper[data-v-cb556d40]{display:flex;flex-direction:column;padding-right:0}.main-button-group[data-v-cb556d40]{display:flex;flex-wrap:wrap;width:100%}.button.-outline:disabled.-disabled.-active[data-v-cb556d40]{----border-color: var(----border-color--hover);background:var(----background);color:var(----color)}.modal-vehicle-select[data-v-b89baba5] .modal-body{max-height:72vh;overflow-y:scroll}.large-button[data-v-b89baba5]{height:3.5rem;font-size:1.5rem;padding:.75rem 1.5rem}.chartContainer[data-v-30ed2f35]{width:100%;min-height:200px;height:min(50vh,300px)}.charge-points-card-wrapper[data-v-0f2c2489]{display:grid;grid-template-columns:repeat(auto-fill,minmax(36rem,1fr));grid-gap:var(--spacing)}[data-v-0f2c2489] .toggle .toggle-label:before{border-color:var(--color--dark-45)}[data-v-0f2c2489] .tab{min-height:72vh;max-height:72vh;overflow-y:scroll}[data-v-0f2c2489] .input-prepend,[data-v-0f2c2489] .input-append{min-width:3em}.plan-name[data-v-0f2c2489]{font-weight:700}.plan-details[data-v-0f2c2489]{display:flex;flex-wrap:nowrap;justify-content:center}.plan-details>div[data-v-0f2c2489]:not(:last-child){margin-right:.5em} +.card[data-v-45dbe31a]{----background: inherit !important;----body--color: var(----color) !important}.clickable[data-v-45dbe31a]{cursor:pointer}.card[data-v-cb556d40]{----background: inherit !important;----body--color: var(----color) !important}.clickable[data-v-cb556d40]{cursor:pointer}.large-button[data-v-cb556d40]{height:3.75rem;font-size:1.5rem;padding:.75rem 1.5rem}.button-group-wrapper[data-v-cb556d40]{display:flex;flex-direction:column;padding-right:0}.main-button-group[data-v-cb556d40]{display:flex;flex-wrap:wrap;width:100%}.button.-outline:disabled.-disabled.-active[data-v-cb556d40]{----border-color: var(----border-color--hover);background:var(----background);color:var(----color)}.modal-vehicle-select[data-v-b89baba5] .modal-body{max-height:72vh;overflow-y:scroll}.large-button[data-v-b89baba5]{height:3.5rem;font-size:1.5rem;padding:.75rem 1.5rem}.chartContainer[data-v-30ed2f35]{width:100%;min-height:200px;height:min(50vh,300px)}.charge-points-card-wrapper[data-v-1c8dd199]{display:grid;grid-template-columns:repeat(auto-fill,minmax(36rem,1fr));grid-gap:var(--spacing)}[data-v-1c8dd199] .toggle .toggle-label:before{border-color:var(--color--dark-45)}[data-v-1c8dd199] .tab{min-height:72vh;max-height:72vh;overflow-y:scroll}[data-v-1c8dd199] .input-prepend,[data-v-1c8dd199] .input-append{min-width:3em}.plan-name[data-v-1c8dd199]{font-weight:700}.plan-details[data-v-1c8dd199]{display:flex;flex-wrap:nowrap;justify-content:center}.plan-details>div[data-v-1c8dd199]:not(:last-child){margin-right:.5em} diff --git a/packages/modules/display_themes/cards/web/assets/ChargePointsView-Dcp__6hw.js b/packages/modules/display_themes/cards/web/assets/ChargePointsView-_6Oh_6vw.js similarity index 62% rename from packages/modules/display_themes/cards/web/assets/ChargePointsView-Dcp__6hw.js rename to packages/modules/display_themes/cards/web/assets/ChargePointsView-_6Oh_6vw.js index aaacf05a30..c6a124a38e 100644 --- a/packages/modules/display_themes/cards/web/assets/ChargePointsView-Dcp__6hw.js +++ b/packages/modules/display_themes/cards/web/assets/ChargePointsView-_6Oh_6vw.js @@ -1 +1 @@ -var re=Object.defineProperty;var ce=(n,e,o)=>e in n?re(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o;var w=(n,e,o)=>ce(n,typeof e!="symbol"?e+"":e,o);import{u as x,C as de,N as he}from"./index-Rkba6Ib0.js";import{D}from"./DashboardCard-DS7AgUYm.js";import{C as W,S as ge}from"./ChargePointPlugBadge-Cea5-sTy.js";import{F,l as N,b as se,c as me,j as Ce,k as R,m as O,e as j,n as Z,o as K,p as J,q as H,r as Q,s as X,t as Y,u as G,v as ue,w as Pe,x as pe,y as fe,z as _e,A as Ve,B as Se}from"./vendor-fortawesome-C1Wk2aFl.js";import{_ as M}from"./vendor-inkline-S9CBmrTS.js";import{l as u,q as i,p as h,o as d,s as a,z as b,e as I,F as E,k as c,f as P,x as p,A as B,I as Ie,P as ve,Q as ke,S as be,U as qe,V as ye,W as Le,X as Me,Y as xe,Z as we,_ as Te,i as T,n as Ee}from"./vendor-Bzn5cd2Y.js";import{C as Ae}from"./ChargeModeModal-D_G7wsgY.js";N.add(se,me);const ee=M({name:"ChargePointLockButton",components:{FontAwesomeIcon:F},props:{chargePointId:{required:!0,type:Number},changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:x()}),computed:{locked(){return this.mqttStore.getChargePointManualLock(this.chargePointId)},stateIcon(){return this.locked?["fas","fa-lock"]:["fas","fa-lock-open"]},stateClass(){return this.locked?["_color:danger"]:"_color:success"}},methods:{toggleChargePointManualLock(){this.changesLocked||this.$root.sendTopicToBroker(`openWB/chargepoint/${this.chargePointId}/set/manual_lock`,!this.mqttStore.getValueBool(`openWB/chargepoint/${this.chargePointId}/set/manual_lock`))}}},[["render",function(n,e,o,g,t,l){const f=h("font-awesome-icon"),k=h("i-button");return d(),u(k,{size:"lg",disabled:o.changesLocked,outline:o.changesLocked},{default:i(()=>[a(f,{"fixed-width":"",icon:l.stateIcon,class:b(l.stateClass),onClick:e[0]||(e[0]=v=>l.toggleChargePointManualLock())},null,8,["icon","class"])]),_:1},8,["disabled","outline"])}]]);N.add(Ce);const te=M({name:"ChargePointCodeButton",components:{FontAwesomeIcon:F,CodeInputModal:de},props:{chargePointId:{type:Number,required:!0}},data:()=>({mqttStore:x(),modalIdTagEntryVisible:!1,modalIdTagEntryColor:"warning",code:""}),computed:{tagState(){return this.mqttStore.getChargepointTagState(this.chargePointId)},tagButtonColor(){switch(this.tagState){case 2:return"success";case 1:return"warning";default:return""}},tagClass(){switch(this.tagState){case 2:return"_color:success-80";case 1:return"_color:warning-80";default:return""}}},methods:{toggleIdTagModal(){this.modalIdTagEntryVisible=!this.modalIdTagEntryVisible},sendIdTag(n){this.$root.sendTopicToBroker(`openWB/chargepoint/${this.chargePointId}/get/rfid`,n),this.modalIdTagEntryVisible=!1}}},[["render",function(n,e,o,g,t,l){const f=h("FontAwesomeIcon"),k=h("i-button"),v=h("CodeInputModal");return d(),I(E,null,[a(k,{class:"_margin-right:1",size:"lg",color:l.tagButtonColor,disabled:l.tagState==2,onClick:e[0]||(e[0]=s=>l.toggleIdTagModal())},{default:i(()=>[a(f,{"fixed-width":"",icon:["fas","fa-calculator"],class:b(l.tagClass)},null,8,["class"])]),_:1},8,["color","disabled"]),a(v,{ref:"lockInput",modelValue:t.modalIdTagEntryVisible,"onUpdate:modelValue":e[1]||(e[1]=s=>t.modalIdTagEntryVisible=s),"min-length":4,"max-length":20,"onUpdate:inputValue":l.sendIdTag},{header:i(()=>e[2]||(e[2]=[c(" Bitte einen ID-Tag eingeben. ",-1)])),_:1},8,["modelValue","onUpdate:inputValue"])],64)}]]);N.add(R,O,j,Z,K,J,H,Q,X,Y,G);const ze={name:"ChargePointCard",components:{DashboardCard:D,SparkLine:ge,ChargePointPlugBadge:W,ChargePointLockButton:ee,ChargePointCodeButton:te,FontAwesomeIcon:F},props:{chargePointId:{type:Number,required:!0},changesLocked:{type:Boolean,required:!0}},emits:["vehicle-click","soc-click","charge-mode-click","toggle-charge-point-settings"],data:()=>({mqttStore:x()}),methods:{handleVehicleClick(n){this.$emit("vehicle-click",n)},handleSocClick(n){this.$emit("soc-click",n)},handleChargeModeClick(n){this.$emit("charge-mode-click",n)},toggleChargePointSettings(n){this.$emit("toggle-charge-point-settings",n)}}},Be={key:0},Fe=M(ze,[["render",function(n,e,o,g,t,l){const f=h("charge-point-plug-badge"),k=h("charge-point-code-button"),v=h("charge-point-lock-button"),s=h("i-column"),_=h("i-row"),m=h("spark-line"),C=h("font-awesome-icon"),V=h("i-badge"),y=h("i-button"),L=h("i-container"),q=h("dashboard-card");return d(),u(q,{color:"primary"},{headerLeft:i(()=>[c(p(t.mqttStore.getChargePointName(o.chargePointId)),1)]),headerRight:i(()=>[a(f,{"charge-point-id":[o.chargePointId]},null,8,["charge-point-id"])]),default:i(()=>[a(L,null,{default:i(()=>[a(_,null,{default:i(()=>[a(s,null,{default:i(()=>[a(_,null,{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[t.mqttStore.getRfidEnabled?(d(),u(k,{key:0,"charge-point-id":o.chargePointId},null,8,["charge-point-id"])):P("",!0),a(v,{"charge-point-id":o.chargePointId,"changes-locked":o.changesLocked},null,8,["charge-point-id","changes-locked"])]),_:1}),a(s,{class:"_text-align:right _padding-left:0"},{default:i(()=>[c(p(t.mqttStore.getChargePointPower(o.chargePointId))+" "+p(t.mqttStore.getChargePointPhasesInUse(o.chargePointId))+" "+p(t.mqttStore.getChargePointSetCurrent(o.chargePointId)),1)]),_:1})]),_:1}),a(_,{class:"_padding-top:1"},{default:i(()=>[a(s,{class:"_padding-left:0"},{default:i(()=>[a(m,{color:"var(--color--primary)",data:t.mqttStore.getChargePointPowerChartData(o.chargePointId)},null,8,["data"])]),_:1})]),_:1})]),_:1}),a(s,{md:"6"},{default:i(()=>[a(_,{class:"_display:flex"},{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0 _flex-grow:1"},{default:i(()=>[a(V,{size:"lg",class:b(["_width:100%",o.changesLocked?"":"clickable"]),onClick:e[0]||(e[0]=S=>l.handleVehicleClick(o.chargePointId))},{default:i(()=>[a(C,{"fixed-width":"",icon:["fas","fa-car"]}),c(" "+p(t.mqttStore.getChargePointConnectedVehicleName(o.chargePointId)),1)]),_:1},8,["class"])]),_:1}),t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))||t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))!=0?(d(),u(s,{key:0,class:"_flex-grow:0 _padding-right:0 _padding-left:1"},{default:i(()=>[a(y,{size:"sm",disabled:o.changesLocked,class:b(o.changesLocked?"":"clickable"),onClick:e[1]||(e[1]=S=>l.handleSocClick(o.chargePointId))},{default:i(()=>[t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))?(d(),I("span",Be,[a(C,{"fixed-width":"",icon:t.mqttStore.getVehicleSocIsManual(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))?["fas","fa-edit"]:["fas","fa-car-battery"]},null,8,["icon"]),c(" "+p(t.mqttStore.getChargePointConnectedVehicleSoc(o.chargePointId).soc)+"% ",1)])):P("",!0),t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))!=0?(d(),u(C,{key:1,"fixed-width":"",icon:t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>1?["fas","times-circle"]:["fas","exclamation-triangle"]:[],class:b(t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>1?"_color:danger":"_color:warning":"")},null,8,["icon","class"])):P("",!0)]),_:1},8,["disabled","class"])]),_:1})):P("",!0)]),_:1}),a(_,{class:"_padding-top:1 _display:flex"},{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0 _flex-grow:1"},{default:i(()=>{var S;return[a(V,{size:"lg",class:b(["_width:100%",o.changesLocked?"":"clickable"]),color:(S=t.mqttStore.getChargePointConnectedVehicleChargeMode(o.chargePointId))==null?void 0:S.class,onClick:e[2]||(e[2]=A=>l.handleChargeModeClick(o.chargePointId))},{default:i(()=>{var A;return[c(p((A=t.mqttStore.getChargePointConnectedVehicleChargeMode(o.chargePointId))==null?void 0:A.label)+" ",1),a(C,{"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehiclePriority(o.chargePointId)?["fas","fa-star"]:["far","fa-star"],class:b(t.mqttStore.getChargePointConnectedVehiclePriority(o.chargePointId)?"_color:warning":"")},null,8,["icon","class"])]}),_:1},8,["class","color"])]}),_:1}),t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(o.chargePointId)?(d(),u(s,{key:0,class:"_flex-grow:0 _padding-right:0 _padding-left:1"},{default:i(()=>[a(V,{size:"lg"},{default:i(()=>[t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(o.chargePointId)?(d(),u(C,{key:0,"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehicleTimeChargingRunning(o.chargePointId)?["fas","fa-clock"]:["far","fa-clock"],class:b(t.mqttStore.getChargePointConnectedVehicleTimeChargingRunning(o.chargePointId)?"_color:success":"")},null,8,["icon","class"])):P("",!0)]),_:1})]),_:1})):P("",!0)]),_:1}),o.changesLocked?P("",!0):(d(),u(_,{key:0,class:"_padding-top:1"},{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[a(y,{block:"",onClick:e[3]||(e[3]=S=>l.toggleChargePointSettings(o.chargePointId))},{default:i(()=>[a(C,{"fixed-width":"",icon:["fas","fa-wrench"]})]),_:1})]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-45dbe31a"]]);N.add(R,O,j,Z,K,J,H,Q,X,Y,G);const Ne={name:"ChargePointCard",components:{DashboardCard:D,ChargePointPlugBadge:W,ChargePointLockButton:ee,ChargePointCodeButton:te,FontAwesomeIcon:F},props:{chargePointId:{type:Number,required:!0},changesLocked:{type:Boolean,required:!0}},emits:["vehicle-click","soc-click","charge-mode-click","toggle-charge-point-settings","set-charge-point-connected-vehicle-charge-mode"],data:()=>({mqttStore:x(),simpleChargeModes:["instant_charging","pv_charging","stop"]}),computed:{filteredChargeModes(){return this.mqttStore.getSimpleChargePointView?this.mqttStore.chargeModeList().filter(n=>this.simpleChargeModes.includes(n.id)):this.mqttStore.chargeModeList()}},methods:{handleVehicleClick(n){this.$emit("vehicle-click",n)},handleSocClick(n){this.$emit("soc-click",n)},handleChargeModeClick(n){this.$emit("charge-mode-click",n)},toggleChargePointSettings(n){this.$emit("toggle-charge-point-settings",n)},setChargePointConnectedVehicleChargeMode(n,e){this.$emit("set-charge-point-connected-vehicle-charge-mode",n,e)}}},$e={key:0},Ue=M(Ne,[["render",function(n,e,o,g,t,l){const f=h("charge-point-plug-badge"),k=h("charge-point-code-button"),v=h("charge-point-lock-button"),s=h("i-column"),_=h("i-row"),m=h("font-awesome-icon"),C=h("i-button"),V=h("i-button-group"),y=h("i-container"),L=h("dashboard-card");return d(),u(L,{color:"primary"},{headerLeft:i(()=>[c(p(t.mqttStore.getChargePointName(o.chargePointId)),1)]),headerRight:i(()=>[a(f,{"charge-point-id":[o.chargePointId]},null,8,["charge-point-id"])]),default:i(()=>[a(y,null,{default:i(()=>[a(_,null,{default:i(()=>[a(s,null,{default:i(()=>[a(_,null,{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[t.mqttStore.getRfidEnabled?(d(),u(k,{key:0,"charge-point-id":o.chargePointId},null,8,["charge-point-id"])):P("",!0),a(v,{"charge-point-id":o.chargePointId,"changes-locked":o.changesLocked},null,8,["charge-point-id","changes-locked"])]),_:1}),a(s,{class:"_text-align:right _padding-left:0"},{default:i(()=>[c(p(t.mqttStore.getChargePointPower(o.chargePointId))+" "+p(t.mqttStore.getChargePointPhasesInUse(o.chargePointId))+" "+p(t.mqttStore.getChargePointSetCurrent(o.chargePointId)),1)]),_:1})]),_:1}),a(_,{class:"_padding-top:1"},{default:i(()=>[a(s,{class:"_padding-left:0 button-group-wrapper"},{default:i(()=>[a(V,{class:"button-group main-button-group"},{default:i(()=>[a(C,{class:b(["large-button _flex-grow:1",o.changesLocked?"":"clickable"]),disabled:o.changesLocked,onClick:e[0]||(e[0]=q=>l.handleVehicleClick(o.chargePointId))},{default:i(()=>[a(m,{"fixed-width":"",icon:["fas","fa-car"]}),c(" "+p(t.mqttStore.getChargePointConnectedVehicleName(o.chargePointId))+" ",1),a(m,{class:b(["_padding-left:1",t.mqttStore.getChargePointConnectedVehiclePriority(o.chargePointId)?"_color:warning":""]),"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehiclePriority(o.chargePointId)?["fas","fa-star"]:["far","fa-star"]},null,8,["icon","class"])]),_:1},8,["class","disabled"]),t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))||t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))!=0?(d(),u(C,{key:0,class:b(["large-button _flex-grow:0",o.changesLocked?"":"clickable"]),disabled:o.changesLocked,onClick:e[1]||(e[1]=q=>l.handleSocClick(o.chargePointId))},{default:i(()=>[t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))?(d(),I("span",$e,[a(m,{"fixed-width":"",icon:t.mqttStore.getVehicleSocIsManual(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))?["fas","fa-edit"]:["fas","fa-car-battery"]},null,8,["icon"]),c(" "+p(t.mqttStore.getChargePointConnectedVehicleSoc(o.chargePointId).soc)+"% ",1)])):P("",!0),t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))!=0?(d(),u(m,{key:1,"fixed-width":"",icon:t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>1?["fas","times-circle"]:["fas","exclamation-triangle"]:[],class:b(t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>1?"_color:danger":"_color:warning":"")},null,8,["icon","class"])):P("",!0)]),_:1},8,["disabled","class"])):P("",!0),a(C,{class:b(["large-button _flex-grow:0",o.changesLocked?"":"clickable"]),disabled:o.changesLocked,onClick:e[2]||(e[2]=q=>l.toggleChargePointSettings(o.chargePointId))},{default:i(()=>[a(m,{"fixed-width":"",icon:["fas","fa-wrench"]})]),_:1},8,["class","disabled"])]),_:1}),a(V,{class:"button-group _margin-top:1",disabled:o.changesLocked},{default:i(()=>[(d(!0),I(E,null,B(l.filteredChargeModes,q=>(d(),u(C,{key:q.id,outline:"",class:b(["large-button _flex-grow:1",o.changesLocked?"":"clickable"]),color:q.class!="dark"?q.class:"light",active:t.mqttStore.getChargePointConnectedVehicleChargeMode(o.chargePointId)!=null&&q.id==t.mqttStore.getChargePointConnectedVehicleChargeMode(o.chargePointId).mode,onClick:S=>l.setChargePointConnectedVehicleChargeMode(o.chargePointId,q.id)},{default:i(()=>[c(p(q.label),1)]),_:2},1032,["class","color","active","onClick"]))),128))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-cb556d40"]]),De={name:"ExtendedNumberInput",inheritAttrs:!1,props:{modelValue:{type:Number,required:!0,default:NaN},unit:{type:String,default:""},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},labels:{type:Array,default:void 0}},emits:["update:modelValue"],data(){return{minimum:this.labels?0:this.min,maximum:this.labels?this.labels.length-1:this.max,stepSize:this.labels?1:this.step}},computed:{label(){var n;return this.labels&&this.inputValue!=null?this.inputValuel.label=v),plaintext:"",class:"_text-align:right",size:"lg"},{prepend:i(()=>[a(f,{onClick:l.decrement},{default:i(()=>e[1]||(e[1]=[c(" - ",-1)])),_:1,__:[1]},8,["onClick"])]),suffix:i(()=>[c(p(o.unit),1)]),append:i(()=>[a(f,{onClick:l.increment},{default:i(()=>e[2]||(e[2]=[c(" + ",-1)])),_:1,__:[2]},8,["onClick"])]),_:1},8,["modelValue"])}]]),We=M({name:"ManualSocInput",components:{ExtendedNumberInput:ae,NumberPad:he},props:{modelValue:{required:!0,type:Boolean,default:!1},vehicleId:{required:!0,type:Number,default:0}},emits:["update:modelValue"],data:()=>({mqttStore:x(),newSoc:0}),methods:{enter(n){let e=10*this.newSoc+parseInt(n);e>=0&&e<=100&&(this.newSoc=e)},removeDigit(){this.newSoc=Math.trunc(this.newSoc/10)},clear(){this.newSoc=0},close(){this.$emit("update:modelValue",!1),this.newSoc=0},updateManualSoc(){this.$root.sendTopicToBroker(`openWB/vehicle/${this.vehicleId}/soc_module/calculated_soc_state/manual_soc`,this.newSoc),this.close()}}},[["render",function(n,e,o,g,t,l){const f=h("extended-number-input"),k=h("i-column"),v=h("i-row"),s=h("NumberPad"),_=h("i-container"),m=h("i-button"),C=h("i-modal");return d(),u(Ie,{to:"body"},[a(C,{"model-value":o.modelValue,size:"sm","onUpdate:modelValue":e[6]||(e[6]=V=>n.$emit("update:modelValue",V))},{header:i(()=>[c(' SoC für Fahrzeug "'+p(t.mqttStore.getVehicleName(o.vehicleId))+'" ',1)]),footer:i(()=>[a(_,null,{default:i(()=>[a(v,null,{default:i(()=>[a(k,null,{default:i(()=>[a(m,{color:"danger",onClick:e[4]||(e[4]=V=>l.close())},{default:i(()=>e[7]||(e[7]=[c(" Zurück ",-1)])),_:1,__:[7]})]),_:1}),a(k,{class:"_text-align:right"},{default:i(()=>[a(m,{color:"success",onClick:e[5]||(e[5]=V=>l.updateManualSoc())},{default:i(()=>e[8]||(e[8]=[c(" OK ",-1)])),_:1,__:[8]})]),_:1})]),_:1})]),_:1})]),default:i(()=>[a(_,null,{default:i(()=>[a(v,{center:"",class:"_padding-bottom:1"},{default:i(()=>[a(k,null,{default:i(()=>[a(f,{modelValue:t.newSoc,"onUpdate:modelValue":e[0]||(e[0]=V=>t.newSoc=V),unit:"%",min:0,max:100,step:1,size:"lg",class:"_text-align:center"},null,8,["modelValue"])]),_:1})]),_:1}),a(s,{"onKey:digit":e[1]||(e[1]=V=>l.enter(V)),"onKey:clear":e[2]||(e[2]=V=>l.clear()),"onKey:delete":e[3]||(e[3]=V=>l.removeDigit())})]),_:1})]),_:1},8,["model-value"])])}]]),Re=M({name:"VehicleSelectModal",props:{modelValue:{required:!0,type:Boolean,default:!1},chargePointId:{type:Number,required:!0}},emits:["update:modelValue"],data:()=>({mqttStore:x()}),computed:{vehicleList(){let n=this.mqttStore.getVehicleList;var e=[];return Object.keys(n).forEach(o=>{let g=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""));e.push({id:g,name:n[o]})}),e}},methods:{setChargePointConnectedVehicle(n){n.id!=this.mqttStore.getChargePointConnectedVehicleId(this.chargePointId)&&this.$root.sendTopicToBroker(`openWB/chargepoint/${this.chargePointId}/config/ev`,n.id)}}},[["render",function(n,e,o,g,t,l){const f=h("i-button"),k=h("i-button-group"),v=h("i-form-group"),s=h("i-form"),_=h("i-modal");return d(),u(_,{"model-value":o.modelValue,class:"modal-vehicle-select",size:"lg","onUpdate:modelValue":e[0]||(e[0]=m=>n.$emit("update:modelValue",m))},{header:i(()=>[c(' Fahrzeug an "'+p(t.mqttStore.getChargePointName(o.chargePointId))+'" auswählen ',1)]),default:i(()=>[a(s,null,{default:i(()=>[a(v,null,{default:i(()=>[a(k,{vertical:"",block:""},{default:i(()=>[(d(!0),I(E,null,B(l.vehicleList,m=>(d(),u(f,{key:m.id,size:"lg",class:"large-button",active:t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId)==m.id,color:t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId)==m.id?"primary":"",onClick:C=>l.setChargePointConnectedVehicle(m)},{default:i(()=>[c(p(m.name),1)]),_:2},1032,["active","color","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])}],["__scopeId","data-v-b89baba5"]]);ke.register(be,qe,ye,Le,Me,xe,we,Te);const Oe={class:"chartContainer"},je=M({name:"ElectricityTariffChart",components:{ChartJsLine:ve},props:{modelValue:{type:Number,required:!1,default:void 0}},emits:["update:modelValue"],data:()=>({mqttStore:x(),chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgb(18, 111, 142)",backgroundColor:"rgb(18, 111, 142)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:2,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]}}),computed:{chartDataRead(){return Object.keys(this.chartDataObject.datasets[0].data).length>0},chartDataObject(){let n=[];const e=this.mqttStore.getEtPrices;if(e&&Object.keys(e).length>0){for(const[t,l]of Object.entries(e))n.push({timestamp:1e3*t,price:1e5*l});const g=n.slice(-1)[0];n.push({timestamp:g.timestamp+3599e3,price:g.price})}const o=this.chartDatasets;return o.datasets[0].data=n,o},priceAnnotations(){const n="rgba(73, 238, 73, 0.2)",e="rgba(255, 10, 13, 0.2)",o=this.chartDataObject.datasets[0].data;class g{constructor(){w(this,"type","box");w(this,"drawTime","beforeDatasetsDraw");w(this,"xMin",o[0].timestamp);w(this,"xMax",o[0].timestamp);w(this,"borderWidth",2);w(this,"cornerRadius",0)}}let t=[];if(this.modelValue!==void 0){for(let l=0;lthis.modelValue){let f=new g;for(f.borderColor=e,f.backgroundColor=e,f.xMin=o[l].timestamp;lthis.modelValue;)l++;l==o.length&&l--,f.xMax=o[l].timestamp,t.push(f)}}return t},myChartOptions(){return{plugins:{title:{display:!1},legend:{display:!1},annotation:{annotations:this.priceAnnotations}},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",color:"#ffffff"},ticks:{font:{size:12},color:"#ffffff",maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]",color:"#ffffff"},grid:{color:"#ffffff20"},ticks:{font:{size:12},stepSize:.1,maxTicksLimit:11,color:"#ffffff"}}}}}},methods:{chartClick(n){const e=this.$refs.priceChart.chart.getElementsAtEventForMode(n,"index",{intersect:!1},!0);e.length>0&&this.$emit("update:modelValue",Math.ceil(100*this.chartDataObject.datasets[0].data[e[0].index].price)/100)}}},[["render",function(n,e,o,g,t,l){const f=h("ChartJsLine");return d(),I("div",Oe,[l.chartDataRead?(d(),u(f,{key:0,ref:"priceChart",data:l.chartDataObject,options:l.myChartOptions,onClick:l.chartClick},null,8,["data","options","onClick"])):P("",!0)])}],["__scopeId","data-v-30ed2f35"]]);N.add(ue,Pe,pe,fe,_e,Ve,Se);const Ze={name:"ChargePointsView",components:{ChargePointCard:Fe,SimpleChargePointCard:Ue,ExtendedNumberInput:ae,ManualSocInput:We,ChargeModeModal:Ae,VehicleSelectModal:Re,FontAwesomeIcon:F,ElectricityTariffChart:je},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:x(),modalChargeModeSettingVisible:!1,modalVehicleSelectVisible:!1,modalChargePointSettingsVisible:!1,modalChargePointId:0,modalVehicleId:0,modalActiveTab:"tab-general",modalManualSocInputVisible:!1}),computed:{timeChargingEnabled(){return n=>this.mqttStore.getChargePointConnectedVehicleTimeChargingActive(n)===!0}},watch:{changesLocked(n,e){e!==!0&&n===!0&&(this.modalChargeModeSettingVisible=!1,this.modalVehicleSelectVisible=!1,this.modalChargePointSettingsVisible=!1,this.modalManualSocInputVisible=!1)}},methods:{toggleChargePointSettings(n){switch(this.mqttStore.getChargePointConnectedVehicleChargeMode(n).mode){case"pv_charging":this.modalActiveTab="tab-pv-charging";break;case"scheduled_charging":this.modalActiveTab="tab-scheduled-charging";break;case"eco_charging":this.modalActiveTab="tab-eco-charging";break;default:this.modalActiveTab="tab-instant-charging"}this.modalChargePointId=n,this.modalChargePointSettingsVisible=!0},handleChargeModeClick(n){this.changesLocked||(this.modalChargePointId=n,this.modalChargeModeSettingVisible=!0)},handleVehicleClick(n){this.changesLocked||(this.modalChargePointId=n,this.modalVehicleSelectVisible=!0)},handleSocClick(n){let e=this.mqttStore.getChargePointConnectedVehicleId(n);if(this.mqttStore.getVehicleSocIsManual(e))return this.modalVehicleId=e,void(this.modalManualSocInputVisible=!0);this.$root.sendTopicToBroker(`openWB/set/vehicle/${e}/get/force_soc_update`,1)},updateChargePointChargeTemplate(n,e,o=void 0){const g=this.mqttStore.updateState(`openWB/chargepoint/${n}/set/charge_template`,e,o);this.$root.sendTopicToBroker(`openWB/chargepoint/${n}/set/charge_template`,g)},setChargePointConnectedVehicleChargeMode(n,e){e.id!=this.mqttStore.getChargePointConnectedVehicleChargeMode(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.selected")},setChargePointConnectedVehiclePriority(n,e){e!=this.mqttStore.getChargePointConnectedVehiclePriority(n)&&this.updateChargePointChargeTemplate(n,e,"prio")},setChargePointConnectedVehicleTimeChargingActive(n,e){e!=this.mqttStore.getChargePointConnectedVehicleTimeChargingActive(n)&&this.updateChargePointChargeTemplate(n,e,"time_charging.active")},setChargePointConnectedVehicleInstantChargingCurrent(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingCurrent(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.instant_charging.current")},setChargePointConnectedVehicleInstantChargingPhases(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.instant_charging.phases_to_use")},setChargePointConnectedVehicleInstantChargingLimit(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(n).selected&&this.updateChargePointChargeTemplate(n,e,"chargemode.instant_charging.limit.selected")},setChargePointConnectedVehicleInstantChargingLimitSoc(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(n).soc&&this.updateChargePointChargeTemplate(n,parseInt(e),"chargemode.instant_charging.limit.soc")},setChargePointConnectedVehicleInstantChargingLimitAmount(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(n).amount&&this.updateChargePointChargeTemplate(n,e,"chargemode.instant_charging.limit.amount")},setChargePointConnectedVehiclePvChargingFeedInLimit(n,e){e!=this.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.feed_in_limit")},setChargePointConnectedVehiclePvChargingMinCurrent(n,e){let o=this.mqttStore.getChargePointConnectedVehiclePvChargingMinCurrent(n),g=parseInt(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,g,"chargemode.pv_charging.min_current")},setChargePointConnectedVehiclePvChargingPhases(n,e){e!==void 0&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingPhases(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.phases_to_use")},setChargePointConnectedVehiclePvChargingLimit(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingLimit(n).selected&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.limit.selected")},setChargePointConnectedVehiclePvChargingLimitSoc(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingLimit(n).soc&&this.updateChargePointChargeTemplate(n,parseInt(e),"chargemode.pv_charging.limit.soc")},setChargePointConnectedVehiclePvChargingLimitAmount(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingLimit(n).amount&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.limit.amount")},setChargePointConnectedVehiclePvChargingMinSoc(n,e){let o=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSoc(n),g=parseInt(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,g,"chargemode.pv_charging.min_soc")},setChargePointConnectedVehiclePvChargingMinSocCurrent(n,e){let o=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSocCurrent(n),g=parseInt(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,g,"chargemode.pv_charging.min_soc_current")},setChargePointConnectedVehiclePvChargingMinSocPhases(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.phases_to_use_min_soc")},setChargePointConnectedVehicleEcoChargingCurrent(n,e){let o=this.mqttStore.getChargePointConnectedVehicleEcoChargingCurrent(n),g=parseInt(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,g,"chargemode.eco_charging.current")},setChargePointConnectedVehicleEcoChargingPhases(n,e){e!==void 0&&e!=this.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.eco_charging.phases_to_use")},setChargePointConnectedVehicleEcoChargingLimit(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(n).selected&&this.updateChargePointChargeTemplate(n,e,"chargemode.eco_charging.limit.selected")},setChargePointConnectedVehicleEcoChargingLimitSoc(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(n).soc&&this.updateChargePointChargeTemplate(n,parseInt(e),"chargemode.eco_charging.limit.soc")},setChargePointConnectedVehicleEcoChargingLimitAmount(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(n).amount&&this.updateChargePointChargeTemplate(n,e,"chargemode.eco_charging.limit.amount")},setChargePointConnectedVehicleEcoChargingMaxPrice(n,e){let o=this.mqttStore.getChargePointConnectedVehicleEcoChargingMaxPrice(n),g=parseFloat(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,parseFloat((g/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},setChargePointConnectedVehicleScheduledChargingPlanActive(n,e,o){const g=`openWB/chargepoint/${n}/set/charge_template`,t=this.mqttStore.updateState(g,o,`chargemode.scheduled_charging.plans.${e}.active`);this.$root.sendTopicToBroker(g,t)},setChargePointConnectedVehicleTimeChargingPlanActive(n,e,o){const g=`openWB/chargepoint/${n}/set/charge_template`,t=this.mqttStore.updateState(g,o,`time_charging.plans.${e}.active`);this.$root.sendTopicToBroker(g,t)}}},Ke={class:"charge-points-card-wrapper"},Je={class:"plan-name"},He={class:"plan-details"},Qe={key:0},Xe={key:1},Ye={key:2},Ge={key:3},et={key:4},tt={key:5},at={key:1},it={class:"plan-name"},nt={class:"plan-details"},ot={key:0},lt={key:1},rt={key:2},ct={key:3},dt={key:4},ft=M(Ze,[["render",function(n,e,o,g,t,l){const f=h("charge-mode-modal"),k=h("vehicle-select-modal"),v=h("i-tab-title"),s=h("i-form-label"),_=h("extended-number-input"),m=h("i-form-group"),C=h("i-button"),V=h("i-button-group"),y=h("i-form"),L=h("i-tab"),q=h("ElectricityTariffChart"),S=h("font-awesome-icon"),A=h("i-alert"),$=h("i-row"),U=h("i-container"),ie=h("i-tabs"),ne=h("i-modal"),oe=h("manual-soc-input");return d(),I(E,null,[T("div",Ke,[(d(!0),I(E,null,B(t.mqttStore.getChargePointIds,r=>(d(),u(Ee(t.mqttStore.getSimpleChargePointView?"SimpleChargePointCard":"ChargePointCard"),{key:r,"charge-point-id":r,"changes-locked":o.changesLocked,onVehicleClick:l.handleVehicleClick,onSocClick:l.handleSocClick,onChargeModeClick:l.handleChargeModeClick,onToggleChargePointSettings:l.toggleChargePointSettings,onSetChargePointConnectedVehicleChargeMode:l.setChargePointConnectedVehicleChargeMode},null,40,["charge-point-id","changes-locked","onVehicleClick","onSocClick","onChargeModeClick","onToggleChargePointSettings","onSetChargePointConnectedVehicleChargeMode"]))),128))]),a(f,{modelValue:t.modalChargeModeSettingVisible,"onUpdate:modelValue":e[0]||(e[0]=r=>t.modalChargeModeSettingVisible=r),"charge-point-id":t.modalChargePointId},null,8,["modelValue","charge-point-id"]),a(k,{modelValue:t.modalVehicleSelectVisible,"onUpdate:modelValue":e[1]||(e[1]=r=>t.modalVehicleSelectVisible=r),"charge-point-id":t.modalChargePointId},null,8,["modelValue","charge-point-id"]),a(ne,{modelValue:t.modalChargePointSettingsVisible,"onUpdate:modelValue":e[39]||(e[39]=r=>t.modalChargePointSettingsVisible=r),size:"lg"},{header:i(()=>[c(' Einstellungen für Fahrzeug "'+p(t.mqttStore.getChargePointConnectedVehicleName(t.modalChargePointId))+'" ',1)]),default:i(()=>[a(ie,{modelValue:t.modalActiveTab,"onUpdate:modelValue":e[38]||(e[38]=r=>t.modalActiveTab=r),stretch:""},{header:i(()=>[a(v,{for:"tab-instant-charging"},{default:i(()=>e[41]||(e[41]=[c(" Sofort ",-1)])),_:1,__:[41]}),a(v,{for:"tab-pv-charging"},{default:i(()=>e[42]||(e[42]=[c(" PV ",-1)])),_:1,__:[42]}),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(v,{key:0,for:"tab-eco-charging"},{default:i(()=>e[43]||(e[43]=[c(" Eco ",-1)])),_:1,__:[43]})),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(v,{key:1,for:"tab-scheduled-charging"},{default:i(()=>e[44]||(e[44]=[c(" Ziel ",-1)])),_:1,__:[44]})),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(v,{key:2,for:"tab-time-charging"},{default:i(()=>e[45]||(e[45]=[c(" Zeit ",-1)])),_:1,__:[45]}))]),default:i(()=>[a(L,{name:"tab-instant-charging"},{default:i(()=>[a(y,null,{default:i(()=>[a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[46]||(e[46]=[c("Stromstärke",-1)])),_:1,__:[46]}),a(_,{unit:"A",min:6,max:32,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingCurrent(t.modalChargePointId),"onUpdate:modelValue":e[2]||(e[2]=r=>l.setChargePointConnectedVehicleInstantChargingCurrent(t.modalChargePointId,r))},null,8,["model-value"])]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[47]||(e[47]=[c("Anzahl Phasen",-1)])),_:1,__:[47]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId)==1?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId)==1,onClick:e[3]||(e[3]=r=>l.setChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId,1))},{default:i(()=>e[48]||(e[48]=[c(" 1 ",-1)])),_:1,__:[48]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId)==3?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId)==3,onClick:e[4]||(e[4]=r=>l.setChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId,3))},{default:i(()=>e[49]||(e[49]=[c(" Maximum ",-1)])),_:1,__:[49]},8,["color","active"])]),_:1})]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[50]||(e[50]=[c("Begrenzung",-1)])),_:1,__:[50]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="none"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="none",onClick:e[5]||(e[5]=r=>l.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"none"))},{default:i(()=>e[51]||(e[51]=[c(" Aus ",-1)])),_:1,__:[51]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc",onClick:e[6]||(e[6]=r=>l.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"soc"))},{default:i(()=>e[52]||(e[52]=[c(" EV-SoC ",-1)])),_:1,__:[52]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount",onClick:e[7]||(e[7]=r=>l.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"amount"))},{default:i(()=>e[53]||(e[53]=[c(" Energie ",-1)])),_:1,__:[53]},8,["color","active"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc"?(d(),u(m,{key:0},{default:i(()=>[a(s,null,{default:i(()=>e[54]||(e[54]=[c("Max. SoC",-1)])),_:1,__:[54]}),a(_,{unit:"%",min:5,max:100,step:5,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).soc,"onUpdate:modelValue":e[8]||(e[8]=r=>l.setChargePointConnectedVehicleInstantChargingLimitSoc(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0),t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount"?(d(),u(m,{key:1},{default:i(()=>[a(s,null,{default:i(()=>e[55]||(e[55]=[c("Max. Energie",-1)])),_:1,__:[55]}),a(_,{unit:"kWh",min:1,max:100,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=r=>l.setChargePointConnectedVehicleInstantChargingLimitAmount(t.modalChargePointId,1e3*r))},null,8,["model-value"])]),_:1})):P("",!0)]),_:1})]),_:1}),a(L,{name:"tab-pv-charging"},{default:i(()=>[a(y,null,{default:i(()=>[a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[56]||(e[56]=[c("Minimaler Dauerstrom",-1)])),_:1,__:[56]}),a(_,{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.mqttStore.getChargePointConnectedVehiclePvChargingMinCurrent(t.modalChargePointId),"onUpdate:modelValue":e[10]||(e[10]=r=>l.setChargePointConnectedVehiclePvChargingMinCurrent(t.modalChargePointId,r))},null,8,["model-value"])]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[57]||(e[57]=[c("Anzahl Phasen",-1)])),_:1,__:[57]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==1?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==1,onClick:e[11]||(e[11]=r=>l.setChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId,1))},{default:i(()=>e[58]||(e[58]=[c(" 1 ",-1)])),_:1,__:[58]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==3?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==3,onClick:e[12]||(e[12]=r=>l.setChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId,3))},{default:i(()=>e[59]||(e[59]=[c(" Maximum ",-1)])),_:1,__:[59]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==0?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==0,onClick:e[13]||(e[13]=r=>l.setChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId,0))},{default:i(()=>e[60]||(e[60]=[c(" Automatik ",-1)])),_:1,__:[60]},8,["color","active"])]),_:1})]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[61]||(e[61]=[c("Begrenzung",-1)])),_:1,__:[61]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="none"?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="none",onClick:e[14]||(e[14]=r=>l.setChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId,"none"))},{default:i(()=>e[62]||(e[62]=[c(" Aus ",-1)])),_:1,__:[62]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="soc"?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="soc",onClick:e[15]||(e[15]=r=>l.setChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId,"soc"))},{default:i(()=>e[63]||(e[63]=[c(" EV-SoC ",-1)])),_:1,__:[63]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="amount"?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="amount",onClick:e[16]||(e[16]=r=>l.setChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId,"amount"))},{default:i(()=>e[64]||(e[64]=[c(" Energie ",-1)])),_:1,__:[64]},8,["color","active"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="soc"?(d(),u(m,{key:0},{default:i(()=>[a(s,null,{default:i(()=>e[65]||(e[65]=[c("SoC-Limit für das Fahrzeug",-1)])),_:1,__:[65]}),a(_,{unit:"%",min:5,max:100,step:5,"model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).soc,"onUpdate:modelValue":e[17]||(e[17]=r=>l.setChargePointConnectedVehiclePvChargingLimitSoc(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0),t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="amount"?(d(),u(m,{key:1},{default:i(()=>[a(s,null,{default:i(()=>e[66]||(e[66]=[c("Energie-Limit",-1)])),_:1,__:[66]}),a(_,{unit:"kWh",min:1,max:100,"model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).amount/1e3,"onUpdate:modelValue":e[18]||(e[18]=r=>l.setChargePointConnectedVehiclePvChargingLimitAmount(t.modalChargePointId,1e3*r))},null,8,["model-value"])]),_:1})):P("",!0),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[67]||(e[67]=[c("Mindest-SoC für das Fahrzeug",-1)])),_:1,__:[67]}),a(_,{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":t.mqttStore.getChargePointConnectedVehiclePvChargingMinSoc(t.modalChargePointId),"onUpdate:modelValue":e[19]||(e[19]=r=>l.setChargePointConnectedVehiclePvChargingMinSoc(t.modalChargePointId,r))},null,8,["model-value"])]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[68]||(e[68]=[c("Mindest-SoC Strom",-1)])),_:1,__:[68]}),a(_,{min:6,max:32,unit:"A","model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocCurrent(t.modalChargePointId),"onUpdate:modelValue":e[20]||(e[20]=r=>l.setChargePointConnectedVehiclePvChargingMinSocCurrent(t.modalChargePointId,r))},null,8,["model-value"])]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[69]||(e[69]=[c("Anzahl Phasen Mindest-SoC",-1)])),_:1,__:[69]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId)==1?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId)==1,onClick:e[21]||(e[21]=r=>l.setChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId,1))},{default:i(()=>e[70]||(e[70]=[c(" 1 ",-1)])),_:1,__:[70]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId)==3?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId)==3,onClick:e[22]||(e[22]=r=>l.setChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId,3))},{default:i(()=>e[71]||(e[71]=[c(" Maximum ",-1)])),_:1,__:[71]},8,["color","active"])]),_:1})]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[72]||(e[72]=[c("Einspeisegrenze beachten",-1)])),_:1,__:[72]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId)!==!0?"danger":"",onClick:e[23]||(e[23]=r=>l.setChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId,!1))},{default:i(()=>e[73]||(e[73]=[c(" Nein ",-1)])),_:1,__:[73]},8,["color"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId)===!0?"success":"",onClick:e[24]||(e[24]=r=>l.setChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId,!0))},{default:i(()=>e[74]||(e[74]=[c(" Ja ",-1)])),_:1,__:[74]},8,["color"])]),_:1})]),_:1})]),_:1})]),_:1}),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(L,{key:0,name:"tab-eco-charging"},{default:i(()=>[a(y,null,{default:i(()=>[t.mqttStore.getEtConfigured?(d(),u(m,{key:0},{default:i(()=>[a(s,null,{default:i(()=>e[75]||(e[75]=[c("Minimaler Dauerstrom unter Preisgrenze",-1)])),_:1,__:[75]}),a(_,{unit:"A",min:6,max:32,"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingCurrent(t.modalChargePointId),"onUpdate:modelValue":e[25]||(e[25]=r=>l.setChargePointConnectedVehicleEcoChargingCurrent(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[76]||(e[76]=[c("Anzahl Phasen",-1)])),_:1,__:[76]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==1?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==1,onClick:e[26]||(e[26]=r=>l.setChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId,1))},{default:i(()=>e[77]||(e[77]=[c(" 1 ",-1)])),_:1,__:[77]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==3?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==3,onClick:e[27]||(e[27]=r=>l.setChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId,3))},{default:i(()=>e[78]||(e[78]=[c(" Maximum ",-1)])),_:1,__:[78]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==0?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==0,onClick:e[28]||(e[28]=r=>l.setChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId,0))},{default:i(()=>e[79]||(e[79]=[c(" Automatik ",-1)])),_:1,__:[79]},8,["color","active"])]),_:1})]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[80]||(e[80]=[c("Begrenzung",-1)])),_:1,__:[80]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="none"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="none",onClick:e[29]||(e[29]=r=>l.setChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId,"none"))},{default:i(()=>e[81]||(e[81]=[c(" Aus ",-1)])),_:1,__:[81]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="soc"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="soc",onClick:e[30]||(e[30]=r=>l.setChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId,"soc"))},{default:i(()=>e[82]||(e[82]=[c(" EV-SoC ",-1)])),_:1,__:[82]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="amount"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="amount",onClick:e[31]||(e[31]=r=>l.setChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId,"amount"))},{default:i(()=>e[83]||(e[83]=[c(" Energie ",-1)])),_:1,__:[83]},8,["color","active"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="soc"?(d(),u(m,{key:1},{default:i(()=>[a(s,null,{default:i(()=>e[84]||(e[84]=[c("SoC-Limit für das Fahrzeug",-1)])),_:1,__:[84]}),a(_,{unit:"%",min:5,max:100,step:5,"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).soc,"onUpdate:modelValue":e[32]||(e[32]=r=>l.setChargePointConnectedVehicleEcoChargingLimitSoc(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0),t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="amount"?(d(),u(m,{key:2},{default:i(()=>[a(s,null,{default:i(()=>e[85]||(e[85]=[c("Energie-Limit",-1)])),_:1,__:[85]}),a(_,{unit:"kWh",min:1,max:100,"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).amount/1e3,"onUpdate:modelValue":e[33]||(e[33]=r=>l.setChargePointConnectedVehicleEcoChargingLimitAmount(t.modalChargePointId,1e3*r))},null,8,["model-value"])]),_:1})):P("",!0),t.mqttStore.getEtConfigured?(d(),u(m,{key:3},{default:i(()=>[a(s,null,{default:i(()=>e[86]||(e[86]=[c("Preisgrenze für strompreisbasiertes Laden",-1)])),_:1,__:[86]}),a(_,{unit:"ct/kWh",min:-80,max:80,step:.01,precision:2,"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingMaxPrice(t.modalChargePointId),"onUpdate:modelValue":e[34]||(e[34]=r=>l.setChargePointConnectedVehicleEcoChargingMaxPrice(t.modalChargePointId,r))},null,8,["model-value"]),a(q,{"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingMaxPrice(t.modalChargePointId),"onUpdate:modelValue":e[35]||(e[35]=r=>l.setChargePointConnectedVehicleEcoChargingMaxPrice(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0)]),_:1})]),_:1})),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(L,{key:1,name:"tab-scheduled-charging"},{default:i(()=>[t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId)&&t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId).length!==0?(d(),u(y,{key:1},{default:i(()=>[(d(!0),I(E,null,B(t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId),(r,z)=>(d(),u(m,{key:z},{default:i(()=>[a(U,null,{default:i(()=>[a($,null,{default:i(()=>[a(C,{size:"lg",block:"",color:r.active?"success":"danger",onClick:le=>l.setChargePointConnectedVehicleScheduledChargingPlanActive(t.modalChargePointId,z,!r.active)},{default:i(()=>[T("div",Je,p(r.name),1),T("div",He,[r.frequency.selected=="once"?(d(),I("div",Qe,[a(S,{icon:["fas","calendar-day"]}),c(" "+p(t.mqttStore.formatDate(r.frequency.once)),1)])):P("",!0),r.frequency.selected=="daily"?(d(),I("div",Xe,[a(S,{icon:["fas","calendar-week"]}),e[88]||(e[88]=c(" täglich ",-1))])):P("",!0),r.frequency.selected=="weekly"?(d(),I("div",Ye,[a(S,{icon:["fas","calendar-alt"]}),c(" "+p(t.mqttStore.formatWeeklyScheduleDays(r.frequency.weekly)),1)])):P("",!0),T("div",null,[a(S,{icon:["fas","clock"]}),c(" "+p(r.time),1)]),r.limit.selected=="soc"?(d(),I("div",Ge,[a(S,{icon:["fas","car-battery"]}),c(" "+p(r.limit.soc_scheduled)+" % ",1),a(S,{icon:["fas",r.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),c(" "+p(r.limit.soc_limit)+" % ",1)])):P("",!0),r.limit.selected=="amount"?(d(),I("div",et,[a(S,{icon:["fas","bolt"]}),c(" "+p(r.limit.amount/1e3)+" kWh ",1)])):P("",!0),r.et_active?(d(),I("div",tt,[a(S,{icon:["fas","coins"]})])):P("",!0)])]),_:2},1032,["color","onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(d(),u(A,{key:0,color:"warning"},{icon:i(()=>[a(S,{"fixed-width":"",icon:["fas","fa-info-circle"]})]),default:i(()=>[e[87]||(e[87]=c(" Es wurden noch keine Zeitpläne für das Zielladen eingerichtet. ",-1))]),_:1,__:[87]}))]),_:1})),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(L,{key:2,name:"tab-time-charging"},{default:i(()=>[a(y,null,{default:i(()=>[a(m,{class:"_margin-bottom:2"},{default:i(()=>[a(s,null,{default:i(()=>e[89]||(e[89]=[c("Zeitladen aktivieren",-1)])),_:1,__:[89]}),a(V,{block:""},{default:i(()=>[a(C,{color:l.timeChargingEnabled(t.modalChargePointId)?"":"danger",onClick:e[36]||(e[36]=r=>l.setChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId,!1))},{default:i(()=>e[90]||(e[90]=[c(" Nein ",-1)])),_:1,__:[90]},8,["color"]),a(C,{color:l.timeChargingEnabled(t.modalChargePointId)?"success":"",onClick:e[37]||(e[37]=r=>l.setChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId,!0))},{default:i(()=>e[91]||(e[91]=[c(" Ja ",-1)])),_:1,__:[91]},8,["color"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId)&&t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId).length!==0?(d(),I("div",at,[(d(!0),I(E,null,B(t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId),(r,z)=>(d(),u(m,{key:z},{default:i(()=>[a(U,null,{default:i(()=>[a($,null,{default:i(()=>[a(C,{size:"lg",block:"",color:r.active?"success":"danger",onClick:le=>l.setChargePointConnectedVehicleTimeChargingPlanActive(t.modalChargePointId,z,!r.active)},{default:i(()=>[T("div",it,p(r.name),1),T("div",nt,[r.frequency.selected=="once"?(d(),I("div",ot,[a(S,{icon:["fas","calendar-day"]}),c(" "+p(t.mqttStore.formatDateRange(r.frequency.once)),1)])):P("",!0),r.frequency.selected=="daily"?(d(),I("div",lt,[a(S,{icon:["fas","calendar-week"]}),e[93]||(e[93]=c(" täglich ",-1))])):P("",!0),r.frequency.selected=="weekly"?(d(),I("div",rt,[a(S,{icon:["fas","calendar-alt"]}),c(" "+p(t.mqttStore.formatWeeklyScheduleDays(r.frequency.weekly)),1)])):P("",!0),T("div",null,[a(S,{icon:["fas","clock"]}),c(" "+p(r.time.join("-")),1)]),r.limit.selected=="soc"?(d(),I("div",ct,[a(S,{icon:["fas","car-battery"]}),c(" "+p(r.limit.soc)+" % ",1)])):P("",!0),r.limit.selected=="amount"?(d(),I("div",dt,[a(S,{icon:["fas","bolt"]}),c(" "+p(r.limit.amount/1e3)+" kWh ",1)])):P("",!0)])]),_:2},1032,["color","onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))])):(d(),u(A,{key:0,color:"warning"},{icon:i(()=>[a(S,{"fixed-width":"",icon:["fas","fa-circle-info"]})]),default:i(()=>[e[92]||(e[92]=c(" Es wurden noch keine Zeitpläne für das Zeitladen eingerichtet. ",-1))]),_:1,__:[92]}))]),_:1})]),_:1}))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),a(oe,{modelValue:t.modalManualSocInputVisible,"onUpdate:modelValue":e[40]||(e[40]=r=>t.modalManualSocInputVisible=r),"vehicle-id":t.modalVehicleId},null,8,["modelValue","vehicle-id"])],64)}],["__scopeId","data-v-0f2c2489"]]);export{ft as default}; +var re=Object.defineProperty;var ce=(n,e,o)=>e in n?re(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o;var w=(n,e,o)=>ce(n,typeof e!="symbol"?e+"":e,o);import{u as x,C as de,N as he}from"./index-B9sId-TF.js";import{D}from"./DashboardCard-DS7AgUYm.js";import{C as W,S as ge}from"./ChargePointPlugBadge-BNajoz51.js";import{F,l as N,b as se,c as me,j as Ce,k as R,m as O,e as j,n as Z,o as K,p as J,q as H,r as Q,s as X,t as Y,u as G,v as ue,w as Pe,x as pe,y as fe,z as _e,A as Ve,B as Se}from"./vendor-fortawesome-C1Wk2aFl.js";import{_ as M}from"./vendor-inkline-S9CBmrTS.js";import{l as u,q as i,p as h,o as d,s as a,z as b,e as I,F as E,k as c,f as P,x as p,A as B,I as Ie,P as ve,Q as ke,S as be,U as qe,V as ye,W as Le,X as Me,Y as xe,Z as we,_ as Te,i as T,n as Ee}from"./vendor-Bzn5cd2Y.js";import{C as Ae}from"./ChargeModeModal-Z93Lcs44.js";N.add(se,me);const ee=M({name:"ChargePointLockButton",components:{FontAwesomeIcon:F},props:{chargePointId:{required:!0,type:Number},changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:x()}),computed:{locked(){return this.mqttStore.getChargePointManualLock(this.chargePointId)},stateIcon(){return this.locked?["fas","fa-lock"]:["fas","fa-lock-open"]},stateClass(){return this.locked?["_color:danger"]:"_color:success"}},methods:{toggleChargePointManualLock(){this.changesLocked||this.$root.sendTopicToBroker(`openWB/chargepoint/${this.chargePointId}/set/manual_lock`,!this.mqttStore.getValueBool(`openWB/chargepoint/${this.chargePointId}/set/manual_lock`))}}},[["render",function(n,e,o,g,t,l){const f=h("font-awesome-icon"),k=h("i-button");return d(),u(k,{size:"lg",disabled:o.changesLocked,outline:o.changesLocked},{default:i(()=>[a(f,{"fixed-width":"",icon:l.stateIcon,class:b(l.stateClass),onClick:e[0]||(e[0]=v=>l.toggleChargePointManualLock())},null,8,["icon","class"])]),_:1},8,["disabled","outline"])}]]);N.add(Ce);const te=M({name:"ChargePointCodeButton",components:{FontAwesomeIcon:F,CodeInputModal:de},props:{chargePointId:{type:Number,required:!0}},data:()=>({mqttStore:x(),modalIdTagEntryVisible:!1,modalIdTagEntryColor:"warning",code:""}),computed:{tagState(){return this.mqttStore.getChargepointTagState(this.chargePointId)},tagButtonColor(){switch(this.tagState){case 2:return"success";case 1:return"warning";default:return""}},tagClass(){switch(this.tagState){case 2:return"_color:success-80";case 1:return"_color:warning-80";default:return""}}},methods:{toggleIdTagModal(){this.modalIdTagEntryVisible=!this.modalIdTagEntryVisible},sendIdTag(n){this.$root.sendTopicToBroker(`openWB/chargepoint/${this.chargePointId}/get/rfid`,n),this.modalIdTagEntryVisible=!1}}},[["render",function(n,e,o,g,t,l){const f=h("FontAwesomeIcon"),k=h("i-button"),v=h("CodeInputModal");return d(),I(E,null,[a(k,{class:"_margin-right:1",size:"lg",color:l.tagButtonColor,disabled:l.tagState==2,onClick:e[0]||(e[0]=s=>l.toggleIdTagModal())},{default:i(()=>[a(f,{"fixed-width":"",icon:["fas","fa-calculator"],class:b(l.tagClass)},null,8,["class"])]),_:1},8,["color","disabled"]),a(v,{ref:"lockInput",modelValue:t.modalIdTagEntryVisible,"onUpdate:modelValue":e[1]||(e[1]=s=>t.modalIdTagEntryVisible=s),"min-length":4,"max-length":20,"onUpdate:inputValue":l.sendIdTag},{header:i(()=>e[2]||(e[2]=[c(" Bitte einen ID-Tag eingeben. ",-1)])),_:1},8,["modelValue","onUpdate:inputValue"])],64)}]]);N.add(R,O,j,Z,K,J,H,Q,X,Y,G);const ze={name:"ChargePointCard",components:{DashboardCard:D,SparkLine:ge,ChargePointPlugBadge:W,ChargePointLockButton:ee,ChargePointCodeButton:te,FontAwesomeIcon:F},props:{chargePointId:{type:Number,required:!0},changesLocked:{type:Boolean,required:!0}},emits:["vehicle-click","soc-click","charge-mode-click","toggle-charge-point-settings"],data:()=>({mqttStore:x()}),methods:{handleVehicleClick(n){this.$emit("vehicle-click",n)},handleSocClick(n){this.$emit("soc-click",n)},handleChargeModeClick(n){this.$emit("charge-mode-click",n)},toggleChargePointSettings(n){this.$emit("toggle-charge-point-settings",n)}}},Be={key:0},Fe=M(ze,[["render",function(n,e,o,g,t,l){const f=h("charge-point-plug-badge"),k=h("charge-point-code-button"),v=h("charge-point-lock-button"),s=h("i-column"),_=h("i-row"),m=h("spark-line"),C=h("font-awesome-icon"),V=h("i-badge"),y=h("i-button"),L=h("i-container"),q=h("dashboard-card");return d(),u(q,{color:"primary"},{headerLeft:i(()=>[c(p(t.mqttStore.getChargePointName(o.chargePointId)),1)]),headerRight:i(()=>[a(f,{"charge-point-id":[o.chargePointId]},null,8,["charge-point-id"])]),default:i(()=>[a(L,null,{default:i(()=>[a(_,null,{default:i(()=>[a(s,null,{default:i(()=>[a(_,null,{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[t.mqttStore.getRfidEnabled?(d(),u(k,{key:0,"charge-point-id":o.chargePointId},null,8,["charge-point-id"])):P("",!0),a(v,{"charge-point-id":o.chargePointId,"changes-locked":o.changesLocked},null,8,["charge-point-id","changes-locked"])]),_:1}),a(s,{class:"_text-align:right _padding-left:0"},{default:i(()=>[c(p(t.mqttStore.getChargePointPower(o.chargePointId))+" "+p(t.mqttStore.getChargePointPhasesInUse(o.chargePointId))+" "+p(t.mqttStore.getChargePointSetCurrent(o.chargePointId)),1)]),_:1})]),_:1}),a(_,{class:"_padding-top:1"},{default:i(()=>[a(s,{class:"_padding-left:0"},{default:i(()=>[a(m,{color:"var(--color--primary)",data:t.mqttStore.getChargePointPowerChartData(o.chargePointId)},null,8,["data"])]),_:1})]),_:1})]),_:1}),a(s,{md:"6"},{default:i(()=>[a(_,{class:"_display:flex"},{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0 _flex-grow:1"},{default:i(()=>[a(V,{size:"lg",class:b(["_width:100%",o.changesLocked?"":"clickable"]),onClick:e[0]||(e[0]=S=>l.handleVehicleClick(o.chargePointId))},{default:i(()=>[a(C,{"fixed-width":"",icon:["fas","fa-car"]}),c(" "+p(t.mqttStore.getChargePointConnectedVehicleName(o.chargePointId)),1)]),_:1},8,["class"])]),_:1}),t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))||t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))!=0?(d(),u(s,{key:0,class:"_flex-grow:0 _padding-right:0 _padding-left:1"},{default:i(()=>[a(y,{size:"sm",disabled:o.changesLocked,class:b(o.changesLocked?"":"clickable"),onClick:e[1]||(e[1]=S=>l.handleSocClick(o.chargePointId))},{default:i(()=>[t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))?(d(),I("span",Be,[a(C,{"fixed-width":"",icon:t.mqttStore.getVehicleSocIsManual(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))?["fas","fa-edit"]:["fas","fa-car-battery"]},null,8,["icon"]),c(" "+p(t.mqttStore.getChargePointConnectedVehicleSoc(o.chargePointId).soc)+"% ",1)])):P("",!0),t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))!=0?(d(),u(C,{key:1,"fixed-width":"",icon:t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>1?["fas","times-circle"]:["fas","exclamation-triangle"]:[],class:b(t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>1?"_color:danger":"_color:warning":"")},null,8,["icon","class"])):P("",!0)]),_:1},8,["disabled","class"])]),_:1})):P("",!0)]),_:1}),a(_,{class:"_padding-top:1 _display:flex"},{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0 _flex-grow:1"},{default:i(()=>{var S;return[a(V,{size:"lg",class:b(["_width:100%",o.changesLocked?"":"clickable"]),color:(S=t.mqttStore.getChargePointConnectedVehicleChargeMode(o.chargePointId))==null?void 0:S.class,onClick:e[2]||(e[2]=A=>l.handleChargeModeClick(o.chargePointId))},{default:i(()=>{var A;return[c(p((A=t.mqttStore.getChargePointConnectedVehicleChargeMode(o.chargePointId))==null?void 0:A.label)+" ",1),a(C,{"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehiclePriority(o.chargePointId)?["fas","fa-star"]:["far","fa-star"],class:b(t.mqttStore.getChargePointConnectedVehiclePriority(o.chargePointId)?"_color:warning":"")},null,8,["icon","class"])]}),_:1},8,["class","color"])]}),_:1}),t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(o.chargePointId)?(d(),u(s,{key:0,class:"_flex-grow:0 _padding-right:0 _padding-left:1"},{default:i(()=>[a(V,{size:"lg"},{default:i(()=>[t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(o.chargePointId)?(d(),u(C,{key:0,"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehicleTimeChargingRunning(o.chargePointId)?["fas","fa-clock"]:["far","fa-clock"],class:b(t.mqttStore.getChargePointConnectedVehicleTimeChargingRunning(o.chargePointId)?"_color:success":"")},null,8,["icon","class"])):P("",!0)]),_:1})]),_:1})):P("",!0)]),_:1}),o.changesLocked?P("",!0):(d(),u(_,{key:0,class:"_padding-top:1"},{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[a(y,{block:"",onClick:e[3]||(e[3]=S=>l.toggleChargePointSettings(o.chargePointId))},{default:i(()=>[a(C,{"fixed-width":"",icon:["fas","fa-wrench"]})]),_:1})]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-45dbe31a"]]);N.add(R,O,j,Z,K,J,H,Q,X,Y,G);const Ne={name:"ChargePointCard",components:{DashboardCard:D,ChargePointPlugBadge:W,ChargePointLockButton:ee,ChargePointCodeButton:te,FontAwesomeIcon:F},props:{chargePointId:{type:Number,required:!0},changesLocked:{type:Boolean,required:!0}},emits:["vehicle-click","soc-click","charge-mode-click","toggle-charge-point-settings","set-charge-point-connected-vehicle-charge-mode"],data:()=>({mqttStore:x(),simpleChargeModes:["instant_charging","pv_charging","stop"]}),computed:{filteredChargeModes(){return this.mqttStore.getSimpleChargePointView?this.mqttStore.chargeModeList().filter(n=>this.simpleChargeModes.includes(n.id)):this.mqttStore.chargeModeList()}},methods:{handleVehicleClick(n){this.$emit("vehicle-click",n)},handleSocClick(n){this.$emit("soc-click",n)},handleChargeModeClick(n){this.$emit("charge-mode-click",n)},toggleChargePointSettings(n){this.$emit("toggle-charge-point-settings",n)},setChargePointConnectedVehicleChargeMode(n,e){this.$emit("set-charge-point-connected-vehicle-charge-mode",n,e)}}},$e={key:0},Ue=M(Ne,[["render",function(n,e,o,g,t,l){const f=h("charge-point-plug-badge"),k=h("charge-point-code-button"),v=h("charge-point-lock-button"),s=h("i-column"),_=h("i-row"),m=h("font-awesome-icon"),C=h("i-button"),V=h("i-button-group"),y=h("i-container"),L=h("dashboard-card");return d(),u(L,{color:"primary"},{headerLeft:i(()=>[c(p(t.mqttStore.getChargePointName(o.chargePointId)),1)]),headerRight:i(()=>[a(f,{"charge-point-id":[o.chargePointId]},null,8,["charge-point-id"])]),default:i(()=>[a(y,null,{default:i(()=>[a(_,null,{default:i(()=>[a(s,null,{default:i(()=>[a(_,null,{default:i(()=>[a(s,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[t.mqttStore.getRfidEnabled?(d(),u(k,{key:0,"charge-point-id":o.chargePointId},null,8,["charge-point-id"])):P("",!0),a(v,{"charge-point-id":o.chargePointId,"changes-locked":o.changesLocked},null,8,["charge-point-id","changes-locked"])]),_:1}),a(s,{class:"_text-align:right _padding-left:0"},{default:i(()=>[c(p(t.mqttStore.getChargePointPower(o.chargePointId))+" "+p(t.mqttStore.getChargePointPhasesInUse(o.chargePointId))+" "+p(t.mqttStore.getChargePointSetCurrent(o.chargePointId)),1)]),_:1})]),_:1}),a(_,{class:"_padding-top:1"},{default:i(()=>[a(s,{class:"_padding-left:0 button-group-wrapper"},{default:i(()=>[a(V,{class:"button-group main-button-group"},{default:i(()=>[a(C,{class:b(["large-button _flex-grow:1",o.changesLocked?"":"clickable"]),disabled:o.changesLocked,onClick:e[0]||(e[0]=q=>l.handleVehicleClick(o.chargePointId))},{default:i(()=>[a(m,{"fixed-width":"",icon:["fas","fa-car"]}),c(" "+p(t.mqttStore.getChargePointConnectedVehicleName(o.chargePointId))+" ",1),a(m,{class:b(["_padding-left:1",t.mqttStore.getChargePointConnectedVehiclePriority(o.chargePointId)?"_color:warning":""]),"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehiclePriority(o.chargePointId)?["fas","fa-star"]:["far","fa-star"]},null,8,["icon","class"])]),_:1},8,["class","disabled"]),t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))||t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))!=0?(d(),u(C,{key:0,class:b(["large-button _flex-grow:0",o.changesLocked?"":"clickable"]),disabled:o.changesLocked,onClick:e[1]||(e[1]=q=>l.handleSocClick(o.chargePointId))},{default:i(()=>[t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))?(d(),I("span",$e,[a(m,{"fixed-width":"",icon:t.mqttStore.getVehicleSocIsManual(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))?["fas","fa-edit"]:["fas","fa-car-battery"]},null,8,["icon"]),c(" "+p(t.mqttStore.getChargePointConnectedVehicleSoc(o.chargePointId).soc)+"% ",1)])):P("",!0),t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))!=0?(d(),u(m,{key:1,"fixed-width":"",icon:t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>1?["fas","times-circle"]:["fas","exclamation-triangle"]:[],class:b(t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId))>1?"_color:danger":"_color:warning":"")},null,8,["icon","class"])):P("",!0)]),_:1},8,["disabled","class"])):P("",!0),a(C,{class:b(["large-button _flex-grow:0",o.changesLocked?"":"clickable"]),disabled:o.changesLocked,onClick:e[2]||(e[2]=q=>l.toggleChargePointSettings(o.chargePointId))},{default:i(()=>[a(m,{"fixed-width":"",icon:["fas","fa-wrench"]})]),_:1},8,["class","disabled"])]),_:1}),a(V,{class:"button-group _margin-top:1",disabled:o.changesLocked},{default:i(()=>[(d(!0),I(E,null,B(l.filteredChargeModes,q=>(d(),u(C,{key:q.id,outline:"",class:b(["large-button _flex-grow:1",o.changesLocked?"":"clickable"]),color:q.class!="dark"?q.class:"light",active:t.mqttStore.getChargePointConnectedVehicleChargeMode(o.chargePointId)!=null&&q.id==t.mqttStore.getChargePointConnectedVehicleChargeMode(o.chargePointId).mode,onClick:S=>l.setChargePointConnectedVehicleChargeMode(o.chargePointId,q.id)},{default:i(()=>[c(p(q.label),1)]),_:2},1032,["class","color","active","onClick"]))),128))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-cb556d40"]]),De={name:"ExtendedNumberInput",inheritAttrs:!1,props:{modelValue:{type:Number,required:!0,default:NaN},unit:{type:String,default:""},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},labels:{type:Array,default:void 0}},emits:["update:modelValue"],data(){return{minimum:this.labels?0:this.min,maximum:this.labels?this.labels.length-1:this.max,stepSize:this.labels?1:this.step}},computed:{label(){var n;return this.labels&&this.inputValue!=null?this.inputValuel.label=v),plaintext:"",class:"_text-align:right",size:"lg"},{prepend:i(()=>[a(f,{onClick:l.decrement},{default:i(()=>e[1]||(e[1]=[c(" - ",-1)])),_:1,__:[1]},8,["onClick"])]),suffix:i(()=>[c(p(o.unit),1)]),append:i(()=>[a(f,{onClick:l.increment},{default:i(()=>e[2]||(e[2]=[c(" + ",-1)])),_:1,__:[2]},8,["onClick"])]),_:1},8,["modelValue"])}]]),We=M({name:"ManualSocInput",components:{ExtendedNumberInput:ae,NumberPad:he},props:{modelValue:{required:!0,type:Boolean,default:!1},vehicleId:{required:!0,type:Number,default:0}},emits:["update:modelValue"],data:()=>({mqttStore:x(),newSoc:0}),methods:{enter(n){let e=10*this.newSoc+parseInt(n);e>=0&&e<=100&&(this.newSoc=e)},removeDigit(){this.newSoc=Math.trunc(this.newSoc/10)},clear(){this.newSoc=0},close(){this.$emit("update:modelValue",!1),this.newSoc=0},updateManualSoc(){this.$root.sendTopicToBroker(`openWB/vehicle/${this.vehicleId}/soc_module/calculated_soc_state/manual_soc`,this.newSoc),this.close()}}},[["render",function(n,e,o,g,t,l){const f=h("extended-number-input"),k=h("i-column"),v=h("i-row"),s=h("NumberPad"),_=h("i-container"),m=h("i-button"),C=h("i-modal");return d(),u(Ie,{to:"body"},[a(C,{"model-value":o.modelValue,size:"sm","onUpdate:modelValue":e[6]||(e[6]=V=>n.$emit("update:modelValue",V))},{header:i(()=>[c(' SoC für Fahrzeug "'+p(t.mqttStore.getVehicleName(o.vehicleId))+'" ',1)]),footer:i(()=>[a(_,null,{default:i(()=>[a(v,null,{default:i(()=>[a(k,null,{default:i(()=>[a(m,{color:"danger",onClick:e[4]||(e[4]=V=>l.close())},{default:i(()=>e[7]||(e[7]=[c(" Zurück ",-1)])),_:1,__:[7]})]),_:1}),a(k,{class:"_text-align:right"},{default:i(()=>[a(m,{color:"success",onClick:e[5]||(e[5]=V=>l.updateManualSoc())},{default:i(()=>e[8]||(e[8]=[c(" OK ",-1)])),_:1,__:[8]})]),_:1})]),_:1})]),_:1})]),default:i(()=>[a(_,null,{default:i(()=>[a(v,{center:"",class:"_padding-bottom:1"},{default:i(()=>[a(k,null,{default:i(()=>[a(f,{modelValue:t.newSoc,"onUpdate:modelValue":e[0]||(e[0]=V=>t.newSoc=V),unit:"%",min:0,max:100,step:1,size:"lg",class:"_text-align:center"},null,8,["modelValue"])]),_:1})]),_:1}),a(s,{"onKey:digit":e[1]||(e[1]=V=>l.enter(V)),"onKey:clear":e[2]||(e[2]=V=>l.clear()),"onKey:delete":e[3]||(e[3]=V=>l.removeDigit())})]),_:1})]),_:1},8,["model-value"])])}]]),Re=M({name:"VehicleSelectModal",props:{modelValue:{required:!0,type:Boolean,default:!1},chargePointId:{type:Number,required:!0}},emits:["update:modelValue"],data:()=>({mqttStore:x()}),computed:{vehicleList(){let n=this.mqttStore.getVehicleList;var e=[];return Object.keys(n).forEach(o=>{let g=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""));e.push({id:g,name:n[o]})}),e}},methods:{setChargePointConnectedVehicle(n){n.id!=this.mqttStore.getChargePointConnectedVehicleId(this.chargePointId)&&this.$root.sendTopicToBroker(`openWB/chargepoint/${this.chargePointId}/config/ev`,n.id)}}},[["render",function(n,e,o,g,t,l){const f=h("i-button"),k=h("i-button-group"),v=h("i-form-group"),s=h("i-form"),_=h("i-modal");return d(),u(_,{"model-value":o.modelValue,class:"modal-vehicle-select",size:"lg","onUpdate:modelValue":e[0]||(e[0]=m=>n.$emit("update:modelValue",m))},{header:i(()=>[c(' Fahrzeug an "'+p(t.mqttStore.getChargePointName(o.chargePointId))+'" auswählen ',1)]),default:i(()=>[a(s,null,{default:i(()=>[a(v,null,{default:i(()=>[a(k,{vertical:"",block:""},{default:i(()=>[(d(!0),I(E,null,B(l.vehicleList,m=>(d(),u(f,{key:m.id,size:"lg",class:"large-button",active:t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId)==m.id,color:t.mqttStore.getChargePointConnectedVehicleId(o.chargePointId)==m.id?"primary":"",onClick:C=>l.setChargePointConnectedVehicle(m)},{default:i(()=>[c(p(m.name),1)]),_:2},1032,["active","color","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])}],["__scopeId","data-v-b89baba5"]]);ke.register(be,qe,ye,Le,Me,xe,we,Te);const Oe={class:"chartContainer"},je=M({name:"ElectricityTariffChart",components:{ChartJsLine:ve},props:{modelValue:{type:Number,required:!1,default:void 0}},emits:["update:modelValue"],data:()=>({mqttStore:x(),chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgb(18, 111, 142)",backgroundColor:"rgb(18, 111, 142)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:2,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]}}),computed:{chartDataRead(){return Object.keys(this.chartDataObject.datasets[0].data).length>0},chartDataObject(){let n=[];const e=this.mqttStore.getEtPrices;if(e&&Object.keys(e).length>0){for(const[t,l]of Object.entries(e))n.push({timestamp:1e3*t,price:1e5*l});const g=n.slice(-1)[0];n.push({timestamp:g.timestamp+3599e3,price:g.price})}const o=this.chartDatasets;return o.datasets[0].data=n,o},priceAnnotations(){const n="rgba(73, 238, 73, 0.2)",e="rgba(255, 10, 13, 0.2)",o=this.chartDataObject.datasets[0].data;class g{constructor(){w(this,"type","box");w(this,"drawTime","beforeDatasetsDraw");w(this,"xMin",o[0].timestamp);w(this,"xMax",o[0].timestamp);w(this,"borderWidth",2);w(this,"cornerRadius",0)}}let t=[];if(this.modelValue!==void 0){for(let l=0;lthis.modelValue){let f=new g;for(f.borderColor=e,f.backgroundColor=e,f.xMin=o[l].timestamp;lthis.modelValue;)l++;l==o.length&&l--,f.xMax=o[l].timestamp,t.push(f)}}return t},myChartOptions(){return{plugins:{title:{display:!1},legend:{display:!1},annotation:{annotations:this.priceAnnotations}},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",color:"#ffffff"},ticks:{font:{size:12},color:"#ffffff",maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]",color:"#ffffff"},grid:{color:"#ffffff20"},ticks:{font:{size:12},stepSize:.1,maxTicksLimit:11,color:"#ffffff"}}}}}},methods:{chartClick(n){const e=this.$refs.priceChart.chart.getElementsAtEventForMode(n,"index",{intersect:!1},!0);e.length>0&&this.$emit("update:modelValue",Math.ceil(100*this.chartDataObject.datasets[0].data[e[0].index].price)/100)}}},[["render",function(n,e,o,g,t,l){const f=h("ChartJsLine");return d(),I("div",Oe,[l.chartDataRead?(d(),u(f,{key:0,ref:"priceChart",data:l.chartDataObject,options:l.myChartOptions,onClick:l.chartClick},null,8,["data","options","onClick"])):P("",!0)])}],["__scopeId","data-v-30ed2f35"]]);N.add(ue,Pe,pe,fe,_e,Ve,Se);const Ze={name:"ChargePointsView",components:{ChargePointCard:Fe,SimpleChargePointCard:Ue,ExtendedNumberInput:ae,ManualSocInput:We,ChargeModeModal:Ae,VehicleSelectModal:Re,FontAwesomeIcon:F,ElectricityTariffChart:je},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:x(),modalChargeModeSettingVisible:!1,modalVehicleSelectVisible:!1,modalChargePointSettingsVisible:!1,modalChargePointId:0,modalVehicleId:0,modalActiveTab:"tab-general",modalManualSocInputVisible:!1}),computed:{timeChargingEnabled(){return n=>this.mqttStore.getChargePointConnectedVehicleTimeChargingActive(n)===!0}},watch:{changesLocked(n,e){e!==!0&&n===!0&&(this.modalChargeModeSettingVisible=!1,this.modalVehicleSelectVisible=!1,this.modalChargePointSettingsVisible=!1,this.modalManualSocInputVisible=!1)}},methods:{toggleChargePointSettings(n){switch(this.mqttStore.getChargePointConnectedVehicleChargeMode(n).mode){case"pv_charging":this.modalActiveTab="tab-pv-charging";break;case"scheduled_charging":this.modalActiveTab="tab-scheduled-charging";break;case"eco_charging":this.modalActiveTab="tab-eco-charging";break;default:this.modalActiveTab="tab-instant-charging"}this.modalChargePointId=n,this.modalChargePointSettingsVisible=!0},handleChargeModeClick(n){this.changesLocked||(this.modalChargePointId=n,this.modalChargeModeSettingVisible=!0)},handleVehicleClick(n){this.changesLocked||(this.modalChargePointId=n,this.modalVehicleSelectVisible=!0)},handleSocClick(n){let e=this.mqttStore.getChargePointConnectedVehicleId(n);if(this.mqttStore.getVehicleSocIsManual(e))return this.modalVehicleId=e,void(this.modalManualSocInputVisible=!0);this.$root.sendTopicToBroker(`openWB/set/vehicle/${e}/get/force_soc_update`,1)},updateChargePointChargeTemplate(n,e,o=void 0){const g=this.mqttStore.updateState(`openWB/chargepoint/${n}/set/charge_template`,e,o);this.$root.sendTopicToBroker(`openWB/chargepoint/${n}/set/charge_template`,g)},setChargePointConnectedVehicleChargeMode(n,e){e.id!=this.mqttStore.getChargePointConnectedVehicleChargeMode(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.selected")},setChargePointConnectedVehiclePriority(n,e){e!=this.mqttStore.getChargePointConnectedVehiclePriority(n)&&this.updateChargePointChargeTemplate(n,e,"prio")},setChargePointConnectedVehicleTimeChargingActive(n,e){e!=this.mqttStore.getChargePointConnectedVehicleTimeChargingActive(n)&&this.updateChargePointChargeTemplate(n,e,"time_charging.active")},setChargePointConnectedVehicleInstantChargingCurrent(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingCurrent(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.instant_charging.current")},setChargePointConnectedVehicleInstantChargingPhases(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.instant_charging.phases_to_use")},setChargePointConnectedVehicleInstantChargingLimit(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(n).selected&&this.updateChargePointChargeTemplate(n,e,"chargemode.instant_charging.limit.selected")},setChargePointConnectedVehicleInstantChargingLimitSoc(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(n).soc&&this.updateChargePointChargeTemplate(n,parseInt(e),"chargemode.instant_charging.limit.soc")},setChargePointConnectedVehicleInstantChargingLimitAmount(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(n).amount&&this.updateChargePointChargeTemplate(n,e,"chargemode.instant_charging.limit.amount")},setChargePointConnectedVehiclePvChargingFeedInLimit(n,e){e!=this.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.feed_in_limit")},setChargePointConnectedVehiclePvChargingMinCurrent(n,e){let o=this.mqttStore.getChargePointConnectedVehiclePvChargingMinCurrent(n),g=parseInt(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,g,"chargemode.pv_charging.min_current")},setChargePointConnectedVehiclePvChargingPhases(n,e){e!==void 0&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingPhases(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.phases_to_use")},setChargePointConnectedVehiclePvChargingLimit(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingLimit(n).selected&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.limit.selected")},setChargePointConnectedVehiclePvChargingLimitSoc(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingLimit(n).soc&&this.updateChargePointChargeTemplate(n,parseInt(e),"chargemode.pv_charging.limit.soc")},setChargePointConnectedVehiclePvChargingLimitAmount(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingLimit(n).amount&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.limit.amount")},setChargePointConnectedVehiclePvChargingMinSoc(n,e){let o=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSoc(n),g=parseInt(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,g,"chargemode.pv_charging.min_soc")},setChargePointConnectedVehiclePvChargingMinSocCurrent(n,e){let o=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSocCurrent(n),g=parseInt(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,g,"chargemode.pv_charging.min_soc_current")},setChargePointConnectedVehiclePvChargingMinSocPhases(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.pv_charging.phases_to_use_min_soc")},setChargePointConnectedVehicleEcoChargingCurrent(n,e){let o=this.mqttStore.getChargePointConnectedVehicleEcoChargingCurrent(n),g=parseInt(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,g,"chargemode.eco_charging.current")},setChargePointConnectedVehicleEcoChargingPhases(n,e){e!==void 0&&e!=this.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(n)&&this.updateChargePointChargeTemplate(n,e,"chargemode.eco_charging.phases_to_use")},setChargePointConnectedVehicleEcoChargingLimit(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(n).selected&&this.updateChargePointChargeTemplate(n,e,"chargemode.eco_charging.limit.selected")},setChargePointConnectedVehicleEcoChargingLimitSoc(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(n).soc&&this.updateChargePointChargeTemplate(n,parseInt(e),"chargemode.eco_charging.limit.soc")},setChargePointConnectedVehicleEcoChargingLimitAmount(n,e){e&&e!=this.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(n).amount&&this.updateChargePointChargeTemplate(n,e,"chargemode.eco_charging.limit.amount")},setChargePointConnectedVehicleEcoChargingMaxPrice(n,e){let o=this.mqttStore.getChargePointConnectedVehicleEcoChargingMaxPrice(n),g=parseFloat(e);g==o||isNaN(g)||this.updateChargePointChargeTemplate(n,parseFloat((g/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},setChargePointConnectedVehicleScheduledChargingPlanActive(n,e,o){const g=`openWB/chargepoint/${n}/set/charge_template`,t=this.mqttStore.updateState(g,o,`chargemode.scheduled_charging.plans.${e}.active`);this.$root.sendTopicToBroker(g,t)},setChargePointConnectedVehicleTimeChargingPlanActive(n,e,o){const g=`openWB/chargepoint/${n}/set/charge_template`,t=this.mqttStore.updateState(g,o,`time_charging.plans.${e}.active`);this.$root.sendTopicToBroker(g,t)}}},Ke={class:"charge-points-card-wrapper"},Je={class:"plan-name"},He={class:"plan-details"},Qe={key:0},Xe={key:1},Ye={key:2},Ge={key:3},et={key:4},tt={key:5},at={key:1},it={class:"plan-name"},nt={class:"plan-details"},ot={key:0},lt={key:1},rt={key:2},ct={key:3},dt={key:4},ft=M(Ze,[["render",function(n,e,o,g,t,l){const f=h("charge-mode-modal"),k=h("vehicle-select-modal"),v=h("i-tab-title"),s=h("i-form-label"),_=h("extended-number-input"),m=h("i-form-group"),C=h("i-button"),V=h("i-button-group"),y=h("i-form"),L=h("i-tab"),q=h("ElectricityTariffChart"),S=h("font-awesome-icon"),A=h("i-alert"),$=h("i-row"),U=h("i-container"),ie=h("i-tabs"),ne=h("i-modal"),oe=h("manual-soc-input");return d(),I(E,null,[T("div",Ke,[(d(!0),I(E,null,B(t.mqttStore.getChargePointIds,r=>(d(),u(Ee(t.mqttStore.getSimpleChargePointView?"SimpleChargePointCard":"ChargePointCard"),{key:r,"charge-point-id":r,"changes-locked":o.changesLocked,onVehicleClick:l.handleVehicleClick,onSocClick:l.handleSocClick,onChargeModeClick:l.handleChargeModeClick,onToggleChargePointSettings:l.toggleChargePointSettings,onSetChargePointConnectedVehicleChargeMode:l.setChargePointConnectedVehicleChargeMode},null,40,["charge-point-id","changes-locked","onVehicleClick","onSocClick","onChargeModeClick","onToggleChargePointSettings","onSetChargePointConnectedVehicleChargeMode"]))),128))]),a(f,{modelValue:t.modalChargeModeSettingVisible,"onUpdate:modelValue":e[0]||(e[0]=r=>t.modalChargeModeSettingVisible=r),"charge-point-id":t.modalChargePointId},null,8,["modelValue","charge-point-id"]),a(k,{modelValue:t.modalVehicleSelectVisible,"onUpdate:modelValue":e[1]||(e[1]=r=>t.modalVehicleSelectVisible=r),"charge-point-id":t.modalChargePointId},null,8,["modelValue","charge-point-id"]),a(ne,{modelValue:t.modalChargePointSettingsVisible,"onUpdate:modelValue":e[39]||(e[39]=r=>t.modalChargePointSettingsVisible=r),size:"lg"},{header:i(()=>[c(' Einstellungen für Fahrzeug "'+p(t.mqttStore.getChargePointConnectedVehicleName(t.modalChargePointId))+'" ',1)]),default:i(()=>[a(ie,{modelValue:t.modalActiveTab,"onUpdate:modelValue":e[38]||(e[38]=r=>t.modalActiveTab=r),stretch:""},{header:i(()=>[a(v,{for:"tab-instant-charging"},{default:i(()=>e[41]||(e[41]=[c(" Sofort ",-1)])),_:1,__:[41]}),a(v,{for:"tab-pv-charging"},{default:i(()=>e[42]||(e[42]=[c(" PV ",-1)])),_:1,__:[42]}),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(v,{key:0,for:"tab-eco-charging"},{default:i(()=>e[43]||(e[43]=[c(" Eco ",-1)])),_:1,__:[43]})),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(v,{key:1,for:"tab-scheduled-charging"},{default:i(()=>e[44]||(e[44]=[c(" Ziel ",-1)])),_:1,__:[44]})),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(v,{key:2,for:"tab-time-charging"},{default:i(()=>e[45]||(e[45]=[c(" Zeit ",-1)])),_:1,__:[45]}))]),default:i(()=>[a(L,{name:"tab-instant-charging"},{default:i(()=>[a(y,null,{default:i(()=>[a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[46]||(e[46]=[c("Stromstärke",-1)])),_:1,__:[46]}),a(_,{unit:"A",min:6,max:32,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingCurrent(t.modalChargePointId),"onUpdate:modelValue":e[2]||(e[2]=r=>l.setChargePointConnectedVehicleInstantChargingCurrent(t.modalChargePointId,r))},null,8,["model-value"])]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[47]||(e[47]=[c("Anzahl Phasen bei Überschuss",-1)])),_:1,__:[47]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId)==1?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId)==1,onClick:e[3]||(e[3]=r=>l.setChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId,1))},{default:i(()=>e[48]||(e[48]=[c(" 1 ",-1)])),_:1,__:[48]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId)==3?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId)==3,onClick:e[4]||(e[4]=r=>l.setChargePointConnectedVehicleInstantChargingPhases(t.modalChargePointId,3))},{default:i(()=>e[49]||(e[49]=[c(" Maximum ",-1)])),_:1,__:[49]},8,["color","active"])]),_:1})]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[50]||(e[50]=[c("Begrenzung",-1)])),_:1,__:[50]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="none"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="none",onClick:e[5]||(e[5]=r=>l.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"none"))},{default:i(()=>e[51]||(e[51]=[c(" Aus ",-1)])),_:1,__:[51]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc",onClick:e[6]||(e[6]=r=>l.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"soc"))},{default:i(()=>e[52]||(e[52]=[c(" EV-SoC ",-1)])),_:1,__:[52]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount",onClick:e[7]||(e[7]=r=>l.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"amount"))},{default:i(()=>e[53]||(e[53]=[c(" Energie ",-1)])),_:1,__:[53]},8,["color","active"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc"?(d(),u(m,{key:0},{default:i(()=>[a(s,null,{default:i(()=>e[54]||(e[54]=[c("Max. SoC",-1)])),_:1,__:[54]}),a(_,{unit:"%",min:5,max:100,step:5,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).soc,"onUpdate:modelValue":e[8]||(e[8]=r=>l.setChargePointConnectedVehicleInstantChargingLimitSoc(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0),t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount"?(d(),u(m,{key:1},{default:i(()=>[a(s,null,{default:i(()=>e[55]||(e[55]=[c("Max. Energie",-1)])),_:1,__:[55]}),a(_,{unit:"kWh",min:1,max:100,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=r=>l.setChargePointConnectedVehicleInstantChargingLimitAmount(t.modalChargePointId,1e3*r))},null,8,["model-value"])]),_:1})):P("",!0)]),_:1})]),_:1}),a(L,{name:"tab-pv-charging"},{default:i(()=>[a(y,null,{default:i(()=>[a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[56]||(e[56]=[c("Minimaler Dauerstrom",-1)])),_:1,__:[56]}),a(_,{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.mqttStore.getChargePointConnectedVehiclePvChargingMinCurrent(t.modalChargePointId),"onUpdate:modelValue":e[10]||(e[10]=r=>l.setChargePointConnectedVehiclePvChargingMinCurrent(t.modalChargePointId,r))},null,8,["model-value"])]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[57]||(e[57]=[c("Anzahl Phasen",-1)])),_:1,__:[57]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==1?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==1,onClick:e[11]||(e[11]=r=>l.setChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId,1))},{default:i(()=>e[58]||(e[58]=[c(" 1 ",-1)])),_:1,__:[58]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==3?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==3,onClick:e[12]||(e[12]=r=>l.setChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId,3))},{default:i(()=>e[59]||(e[59]=[c(" Maximum ",-1)])),_:1,__:[59]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==0?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId)==0,onClick:e[13]||(e[13]=r=>l.setChargePointConnectedVehiclePvChargingPhases(t.modalChargePointId,0))},{default:i(()=>e[60]||(e[60]=[c(" Automatik ",-1)])),_:1,__:[60]},8,["color","active"])]),_:1})]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[61]||(e[61]=[c("Begrenzung",-1)])),_:1,__:[61]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="none"?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="none",onClick:e[14]||(e[14]=r=>l.setChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId,"none"))},{default:i(()=>e[62]||(e[62]=[c(" Aus ",-1)])),_:1,__:[62]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="soc"?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="soc",onClick:e[15]||(e[15]=r=>l.setChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId,"soc"))},{default:i(()=>e[63]||(e[63]=[c(" EV-SoC ",-1)])),_:1,__:[63]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="amount"?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="amount",onClick:e[16]||(e[16]=r=>l.setChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId,"amount"))},{default:i(()=>e[64]||(e[64]=[c(" Energie ",-1)])),_:1,__:[64]},8,["color","active"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="soc"?(d(),u(m,{key:0},{default:i(()=>[a(s,null,{default:i(()=>e[65]||(e[65]=[c("SoC-Limit für das Fahrzeug",-1)])),_:1,__:[65]}),a(_,{unit:"%",min:5,max:100,step:5,"model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).soc,"onUpdate:modelValue":e[17]||(e[17]=r=>l.setChargePointConnectedVehiclePvChargingLimitSoc(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0),t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).selected=="amount"?(d(),u(m,{key:1},{default:i(()=>[a(s,null,{default:i(()=>e[66]||(e[66]=[c("Energie-Limit",-1)])),_:1,__:[66]}),a(_,{unit:"kWh",min:1,max:100,"model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingLimit(t.modalChargePointId).amount/1e3,"onUpdate:modelValue":e[18]||(e[18]=r=>l.setChargePointConnectedVehiclePvChargingLimitAmount(t.modalChargePointId,1e3*r))},null,8,["model-value"])]),_:1})):P("",!0),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[67]||(e[67]=[c("Mindest-SoC für das Fahrzeug",-1)])),_:1,__:[67]}),a(_,{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":t.mqttStore.getChargePointConnectedVehiclePvChargingMinSoc(t.modalChargePointId),"onUpdate:modelValue":e[19]||(e[19]=r=>l.setChargePointConnectedVehiclePvChargingMinSoc(t.modalChargePointId,r))},null,8,["model-value"])]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[68]||(e[68]=[c("Mindest-SoC Strom",-1)])),_:1,__:[68]}),a(_,{min:6,max:32,unit:"A","model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocCurrent(t.modalChargePointId),"onUpdate:modelValue":e[20]||(e[20]=r=>l.setChargePointConnectedVehiclePvChargingMinSocCurrent(t.modalChargePointId,r))},null,8,["model-value"])]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[69]||(e[69]=[c("Anzahl Phasen Mindest-SoC",-1)])),_:1,__:[69]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId)==1?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId)==1,onClick:e[21]||(e[21]=r=>l.setChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId,1))},{default:i(()=>e[70]||(e[70]=[c(" 1 ",-1)])),_:1,__:[70]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId)==3?"primary":"",active:t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId)==3,onClick:e[22]||(e[22]=r=>l.setChargePointConnectedVehiclePvChargingMinSocPhases(t.modalChargePointId,3))},{default:i(()=>e[71]||(e[71]=[c(" Maximum ",-1)])),_:1,__:[71]},8,["color","active"])]),_:1})]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[72]||(e[72]=[c("Einspeisegrenze beachten",-1)])),_:1,__:[72]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId)!==!0?"danger":"",onClick:e[23]||(e[23]=r=>l.setChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId,!1))},{default:i(()=>e[73]||(e[73]=[c(" Nein ",-1)])),_:1,__:[73]},8,["color"]),a(C,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId)===!0?"success":"",onClick:e[24]||(e[24]=r=>l.setChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId,!0))},{default:i(()=>e[74]||(e[74]=[c(" Ja ",-1)])),_:1,__:[74]},8,["color"])]),_:1})]),_:1})]),_:1})]),_:1}),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(L,{key:0,name:"tab-eco-charging"},{default:i(()=>[a(y,null,{default:i(()=>[t.mqttStore.getEtConfigured?(d(),u(m,{key:0},{default:i(()=>[a(s,null,{default:i(()=>e[75]||(e[75]=[c("Minimaler Dauerstrom unter Preisgrenze",-1)])),_:1,__:[75]}),a(_,{unit:"A",min:6,max:32,"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingCurrent(t.modalChargePointId),"onUpdate:modelValue":e[25]||(e[25]=r=>l.setChargePointConnectedVehicleEcoChargingCurrent(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[76]||(e[76]=[c("Anzahl Phasen",-1)])),_:1,__:[76]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==1?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==1,onClick:e[26]||(e[26]=r=>l.setChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId,1))},{default:i(()=>e[77]||(e[77]=[c(" 1 ",-1)])),_:1,__:[77]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==3?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==3,onClick:e[27]||(e[27]=r=>l.setChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId,3))},{default:i(()=>e[78]||(e[78]=[c(" Maximum ",-1)])),_:1,__:[78]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==0?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId)==0,onClick:e[28]||(e[28]=r=>l.setChargePointConnectedVehicleEcoChargingPhases(t.modalChargePointId,0))},{default:i(()=>e[79]||(e[79]=[c(" Automatik ",-1)])),_:1,__:[79]},8,["color","active"])]),_:1})]),_:1}),a(m,null,{default:i(()=>[a(s,null,{default:i(()=>e[80]||(e[80]=[c("Begrenzung",-1)])),_:1,__:[80]}),a(V,{block:""},{default:i(()=>[a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="none"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="none",onClick:e[29]||(e[29]=r=>l.setChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId,"none"))},{default:i(()=>e[81]||(e[81]=[c(" Aus ",-1)])),_:1,__:[81]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="soc"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="soc",onClick:e[30]||(e[30]=r=>l.setChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId,"soc"))},{default:i(()=>e[82]||(e[82]=[c(" EV-SoC ",-1)])),_:1,__:[82]},8,["color","active"]),a(C,{color:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="amount"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="amount",onClick:e[31]||(e[31]=r=>l.setChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId,"amount"))},{default:i(()=>e[83]||(e[83]=[c(" Energie ",-1)])),_:1,__:[83]},8,["color","active"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="soc"?(d(),u(m,{key:1},{default:i(()=>[a(s,null,{default:i(()=>e[84]||(e[84]=[c("SoC-Limit für das Fahrzeug",-1)])),_:1,__:[84]}),a(_,{unit:"%",min:5,max:100,step:5,"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).soc,"onUpdate:modelValue":e[32]||(e[32]=r=>l.setChargePointConnectedVehicleEcoChargingLimitSoc(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0),t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).selected=="amount"?(d(),u(m,{key:2},{default:i(()=>[a(s,null,{default:i(()=>e[85]||(e[85]=[c("Energie-Limit",-1)])),_:1,__:[85]}),a(_,{unit:"kWh",min:1,max:100,"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingLimit(t.modalChargePointId).amount/1e3,"onUpdate:modelValue":e[33]||(e[33]=r=>l.setChargePointConnectedVehicleEcoChargingLimitAmount(t.modalChargePointId,1e3*r))},null,8,["model-value"])]),_:1})):P("",!0),t.mqttStore.getEtConfigured?(d(),u(m,{key:3},{default:i(()=>[a(s,null,{default:i(()=>e[86]||(e[86]=[c("Preisgrenze für strompreisbasiertes Laden",-1)])),_:1,__:[86]}),a(_,{unit:"ct/kWh",min:-80,max:80,step:.01,precision:2,"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingMaxPrice(t.modalChargePointId),"onUpdate:modelValue":e[34]||(e[34]=r=>l.setChargePointConnectedVehicleEcoChargingMaxPrice(t.modalChargePointId,r))},null,8,["model-value"]),a(q,{"model-value":t.mqttStore.getChargePointConnectedVehicleEcoChargingMaxPrice(t.modalChargePointId),"onUpdate:modelValue":e[35]||(e[35]=r=>l.setChargePointConnectedVehicleEcoChargingMaxPrice(t.modalChargePointId,r))},null,8,["model-value"])]),_:1})):P("",!0)]),_:1})]),_:1})),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(L,{key:1,name:"tab-scheduled-charging"},{default:i(()=>[t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId)&&t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId).length!==0?(d(),u(y,{key:1},{default:i(()=>[(d(!0),I(E,null,B(t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId),(r,z)=>(d(),u(m,{key:z},{default:i(()=>[a(U,null,{default:i(()=>[a($,null,{default:i(()=>[a(C,{size:"lg",block:"",color:r.active?"success":"danger",onClick:le=>l.setChargePointConnectedVehicleScheduledChargingPlanActive(t.modalChargePointId,z,!r.active)},{default:i(()=>[T("div",Je,p(r.name),1),T("div",He,[r.frequency.selected=="once"?(d(),I("div",Qe,[a(S,{icon:["fas","calendar-day"]}),c(" "+p(t.mqttStore.formatDate(r.frequency.once)),1)])):P("",!0),r.frequency.selected=="daily"?(d(),I("div",Xe,[a(S,{icon:["fas","calendar-week"]}),e[88]||(e[88]=c(" täglich ",-1))])):P("",!0),r.frequency.selected=="weekly"?(d(),I("div",Ye,[a(S,{icon:["fas","calendar-alt"]}),c(" "+p(t.mqttStore.formatWeeklyScheduleDays(r.frequency.weekly)),1)])):P("",!0),T("div",null,[a(S,{icon:["fas","clock"]}),c(" "+p(r.time),1)]),r.limit.selected=="soc"?(d(),I("div",Ge,[a(S,{icon:["fas","car-battery"]}),c(" "+p(r.limit.soc_scheduled)+" % ",1),a(S,{icon:["fas",r.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),c(" "+p(r.limit.soc_limit)+" % ",1)])):P("",!0),r.limit.selected=="amount"?(d(),I("div",et,[a(S,{icon:["fas","bolt"]}),c(" "+p(r.limit.amount/1e3)+" kWh ",1)])):P("",!0),r.et_active?(d(),I("div",tt,[a(S,{icon:["fas","coins"]})])):P("",!0)])]),_:2},1032,["color","onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(d(),u(A,{key:0,color:"warning"},{icon:i(()=>[a(S,{"fixed-width":"",icon:["fas","fa-info-circle"]})]),default:i(()=>[e[87]||(e[87]=c(" Es wurden noch keine Zeitpläne für das Zielladen eingerichtet. ",-1))]),_:1,__:[87]}))]),_:1})),t.mqttStore.getSimpleChargePointView?P("",!0):(d(),u(L,{key:2,name:"tab-time-charging"},{default:i(()=>[a(y,null,{default:i(()=>[a(m,{class:"_margin-bottom:2"},{default:i(()=>[a(s,null,{default:i(()=>e[89]||(e[89]=[c("Zeitladen aktivieren",-1)])),_:1,__:[89]}),a(V,{block:""},{default:i(()=>[a(C,{color:l.timeChargingEnabled(t.modalChargePointId)?"":"danger",onClick:e[36]||(e[36]=r=>l.setChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId,!1))},{default:i(()=>e[90]||(e[90]=[c(" Nein ",-1)])),_:1,__:[90]},8,["color"]),a(C,{color:l.timeChargingEnabled(t.modalChargePointId)?"success":"",onClick:e[37]||(e[37]=r=>l.setChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId,!0))},{default:i(()=>e[91]||(e[91]=[c(" Ja ",-1)])),_:1,__:[91]},8,["color"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId)&&t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId).length!==0?(d(),I("div",at,[(d(!0),I(E,null,B(t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId),(r,z)=>(d(),u(m,{key:z},{default:i(()=>[a(U,null,{default:i(()=>[a($,null,{default:i(()=>[a(C,{size:"lg",block:"",color:r.active?"success":"danger",onClick:le=>l.setChargePointConnectedVehicleTimeChargingPlanActive(t.modalChargePointId,z,!r.active)},{default:i(()=>[T("div",it,p(r.name),1),T("div",nt,[r.frequency.selected=="once"?(d(),I("div",ot,[a(S,{icon:["fas","calendar-day"]}),c(" "+p(t.mqttStore.formatDateRange(r.frequency.once)),1)])):P("",!0),r.frequency.selected=="daily"?(d(),I("div",lt,[a(S,{icon:["fas","calendar-week"]}),e[93]||(e[93]=c(" täglich ",-1))])):P("",!0),r.frequency.selected=="weekly"?(d(),I("div",rt,[a(S,{icon:["fas","calendar-alt"]}),c(" "+p(t.mqttStore.formatWeeklyScheduleDays(r.frequency.weekly)),1)])):P("",!0),T("div",null,[a(S,{icon:["fas","clock"]}),c(" "+p(r.time.join("-")),1)]),r.limit.selected=="soc"?(d(),I("div",ct,[a(S,{icon:["fas","car-battery"]}),c(" "+p(r.limit.soc)+" % ",1)])):P("",!0),r.limit.selected=="amount"?(d(),I("div",dt,[a(S,{icon:["fas","bolt"]}),c(" "+p(r.limit.amount/1e3)+" kWh ",1)])):P("",!0)])]),_:2},1032,["color","onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))])):(d(),u(A,{key:0,color:"warning"},{icon:i(()=>[a(S,{"fixed-width":"",icon:["fas","fa-circle-info"]})]),default:i(()=>[e[92]||(e[92]=c(" Es wurden noch keine Zeitpläne für das Zeitladen eingerichtet. ",-1))]),_:1,__:[92]}))]),_:1})]),_:1}))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),a(oe,{modelValue:t.modalManualSocInputVisible,"onUpdate:modelValue":e[40]||(e[40]=r=>t.modalManualSocInputVisible=r),"vehicle-id":t.modalVehicleId},null,8,["modelValue","vehicle-id"])],64)}],["__scopeId","data-v-1c8dd199"]]);export{ft as default}; diff --git a/packages/modules/display_themes/cards/web/assets/DashboardView-D6rYO19_.js b/packages/modules/display_themes/cards/web/assets/DashboardView-B6dYjK9c.js similarity index 97% rename from packages/modules/display_themes/cards/web/assets/DashboardView-D6rYO19_.js rename to packages/modules/display_themes/cards/web/assets/DashboardView-B6dYjK9c.js index 66855fa0d0..fd0018e3ee 100644 --- a/packages/modules/display_themes/cards/web/assets/DashboardView-D6rYO19_.js +++ b/packages/modules/display_themes/cards/web/assets/DashboardView-B6dYjK9c.js @@ -1 +1 @@ -import{u as l}from"./index-Rkba6Ib0.js";import{D as q}from"./DashboardCard-DS7AgUYm.js";import{S as P,C as v}from"./ChargePointPlugBadge-Cea5-sTy.js";import{F as w,l as y,d as I,e as D,g as L,h as B,i as _}from"./vendor-fortawesome-C1Wk2aFl.js";import{_ as p}from"./vendor-inkline-S9CBmrTS.js";import{l as c,q as a,p as e,o as s,s as i,k as g,x as h,f as m,e as x}from"./vendor-Bzn5cd2Y.js";y.add(I);const E=p({name:"GridCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("spark-line"),n=e("dashboard-card");return s(),c(n,{color:"danger"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-gauge-high"]}),r[0]||(r[0]=g(" EVU ",-1))]),headerRight:a(()=>[g(h(t.mqttStore.getGridPower()),1)]),default:a(()=>[i(d,{color:"var(--color--danger)","color-negative":"var(--color--success)",data:t.mqttStore.getGridPowerChartData},null,8,["data"])]),_:1})}]]);y.add(D);const F=p({name:"BatteryCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("spark-line"),n=e("dashboard-card");return t.mqttStore.getBatteryConfigured?(s(),c(n,{key:0,color:"warning"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-car-battery"]}),r[0]||(r[0]=g(" Speicher ",-1))]),headerRight:a(()=>[g(h(t.mqttStore.getBatterySoc())+" / "+h(t.mqttStore.getBatteryPower()),1)]),default:a(()=>[i(d,{color:"var(--color--warning)",data:t.mqttStore.getBatteryPowerChartData,"soc-data":t.mqttStore.getBatterySocChartData},null,8,["data","soc-data"])]),_:1})):m("",!0)}]]);y.add(L);const H=p({name:"InverterCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("spark-line"),n=e("dashboard-card");return t.mqttStore.getPvConfigured?(s(),c(n,{key:0,color:"success"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-solar-panel"]}),r[0]||(r[0]=g(" PV ",-1))]),headerRight:a(()=>[g(h(t.mqttStore.getPvPower()),1)]),default:a(()=>[i(d,{color:"var(--color--success)",data:t.mqttStore.getPvPowerChartData,inverted:!0},null,8,["data"])]),_:1})):m("",!0)}]]);y.add(B);const A=p({name:"HomeCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("spark-line"),n=e("dashboard-card");return s(),c(n,{color:"light"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-home"]}),r[0]||(r[0]=g(" Hausverbrauch ",-1))]),headerRight:a(()=>[g(h(t.mqttStore.getHomePower()),1)]),default:a(()=>[i(d,{color:"var(--color--light)",data:t.mqttStore.getHomePowerChartData},null,8,["data"])]),_:1})}]]);y.add(_);const G={name:"DashboardView",components:{GridCard:E,HomeCard:A,BatteryCard:F,InverterCard:H,ChargePointsCard:p({name:"ChargePointsCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w,ChargePointPlugBadge:v},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("charge-point-plug-badge"),n=e("spark-line"),b=e("dashboard-card");return t.mqttStore.getChargePointIds.length>0?(s(),c(b,{key:0,color:"primary"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-charging-station"]}),g(" "+h(t.mqttStore.getChargePointIds.length==1?t.mqttStore.getChargePointName(t.mqttStore.getChargePointIds[0]):"Ladepunkte"),1)]),headerRight:a(()=>[g(h(t.mqttStore.getChargePointIds.length==1?t.mqttStore.getChargePointPower(t.mqttStore.getChargePointIds[0]):t.mqttStore.getChargePointSumPower())+" ",1),i(d,{"charge-point-id":t.mqttStore.getChargePointIds,"show-energy-charged":!1},null,8,["charge-point-id"])]),default:a(()=>[i(n,{color:"var(--color--primary)",data:t.mqttStore.getChargePointIds.length==1?t.mqttStore.getChargePointPowerChartData(t.mqttStore.getChargePointIds[0]):t.mqttStore.getChargePointSumPowerChartData},null,8,["data"])]),_:1})):m("",!0)}]])},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:l()})},R={class:"dashboard-card-wrapper"},K=p(G,[["render",function(f,r,C,S,t,u){const o=e("grid-card"),d=e("home-card"),n=e("battery-card"),b=e("inverter-card"),k=e("charge-points-card");return s(),x("div",R,[t.mqttStore.getGridCardEnabled?(s(),c(o,{key:0})):m("",!0),t.mqttStore.getHomeCardEnabled?(s(),c(d,{key:1})):m("",!0),t.mqttStore.getBatteryCardEnabled?(s(),c(n,{key:2})):m("",!0),t.mqttStore.getPvCardEnabled?(s(),c(b,{key:3})):m("",!0),t.mqttStore.getChargePointsCardEnabled?(s(),c(k,{key:4})):m("",!0)])}],["__scopeId","data-v-853975a6"]]);export{K as default}; +import{u as l}from"./index-B9sId-TF.js";import{D as q}from"./DashboardCard-DS7AgUYm.js";import{S as P,C as v}from"./ChargePointPlugBadge-BNajoz51.js";import{F as w,l as y,d as I,e as D,g as L,h as B,i as _}from"./vendor-fortawesome-C1Wk2aFl.js";import{_ as p}from"./vendor-inkline-S9CBmrTS.js";import{l as c,q as a,p as e,o as s,s as i,k as g,x as h,f as m,e as x}from"./vendor-Bzn5cd2Y.js";y.add(I);const E=p({name:"GridCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("spark-line"),n=e("dashboard-card");return s(),c(n,{color:"danger"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-gauge-high"]}),r[0]||(r[0]=g(" EVU ",-1))]),headerRight:a(()=>[g(h(t.mqttStore.getGridPower()),1)]),default:a(()=>[i(d,{color:"var(--color--danger)","color-negative":"var(--color--success)",data:t.mqttStore.getGridPowerChartData},null,8,["data"])]),_:1})}]]);y.add(D);const F=p({name:"BatteryCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("spark-line"),n=e("dashboard-card");return t.mqttStore.getBatteryConfigured?(s(),c(n,{key:0,color:"warning"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-car-battery"]}),r[0]||(r[0]=g(" Speicher ",-1))]),headerRight:a(()=>[g(h(t.mqttStore.getBatterySoc())+" / "+h(t.mqttStore.getBatteryPower()),1)]),default:a(()=>[i(d,{color:"var(--color--warning)",data:t.mqttStore.getBatteryPowerChartData,"soc-data":t.mqttStore.getBatterySocChartData},null,8,["data","soc-data"])]),_:1})):m("",!0)}]]);y.add(L);const H=p({name:"InverterCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("spark-line"),n=e("dashboard-card");return t.mqttStore.getPvConfigured?(s(),c(n,{key:0,color:"success"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-solar-panel"]}),r[0]||(r[0]=g(" PV ",-1))]),headerRight:a(()=>[g(h(t.mqttStore.getPvPower()),1)]),default:a(()=>[i(d,{color:"var(--color--success)",data:t.mqttStore.getPvPowerChartData,inverted:!0},null,8,["data"])]),_:1})):m("",!0)}]]);y.add(B);const A=p({name:"HomeCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("spark-line"),n=e("dashboard-card");return s(),c(n,{color:"light"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-home"]}),r[0]||(r[0]=g(" Hausverbrauch ",-1))]),headerRight:a(()=>[g(h(t.mqttStore.getHomePower()),1)]),default:a(()=>[i(d,{color:"var(--color--light)",data:t.mqttStore.getHomePowerChartData},null,8,["data"])]),_:1})}]]);y.add(_);const G={name:"DashboardView",components:{GridCard:E,HomeCard:A,BatteryCard:F,InverterCard:H,ChargePointsCard:p({name:"ChargePointsCard",components:{DashboardCard:q,SparkLine:P,FontAwesomeIcon:w,ChargePointPlugBadge:v},props:{},data:()=>({mqttStore:l()})},[["render",function(f,r,C,S,t,u){const o=e("font-awesome-icon"),d=e("charge-point-plug-badge"),n=e("spark-line"),b=e("dashboard-card");return t.mqttStore.getChargePointIds.length>0?(s(),c(b,{key:0,color:"primary"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-charging-station"]}),g(" "+h(t.mqttStore.getChargePointIds.length==1?t.mqttStore.getChargePointName(t.mqttStore.getChargePointIds[0]):"Ladepunkte"),1)]),headerRight:a(()=>[g(h(t.mqttStore.getChargePointIds.length==1?t.mqttStore.getChargePointPower(t.mqttStore.getChargePointIds[0]):t.mqttStore.getChargePointSumPower())+" ",1),i(d,{"charge-point-id":t.mqttStore.getChargePointIds,"show-energy-charged":!1},null,8,["charge-point-id"])]),default:a(()=>[i(n,{color:"var(--color--primary)",data:t.mqttStore.getChargePointIds.length==1?t.mqttStore.getChargePointPowerChartData(t.mqttStore.getChargePointIds[0]):t.mqttStore.getChargePointSumPowerChartData},null,8,["data"])]),_:1})):m("",!0)}]])},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:l()})},R={class:"dashboard-card-wrapper"},K=p(G,[["render",function(f,r,C,S,t,u){const o=e("grid-card"),d=e("home-card"),n=e("battery-card"),b=e("inverter-card"),k=e("charge-points-card");return s(),x("div",R,[t.mqttStore.getGridCardEnabled?(s(),c(o,{key:0})):m("",!0),t.mqttStore.getHomeCardEnabled?(s(),c(d,{key:1})):m("",!0),t.mqttStore.getBatteryCardEnabled?(s(),c(n,{key:2})):m("",!0),t.mqttStore.getPvCardEnabled?(s(),c(b,{key:3})):m("",!0),t.mqttStore.getChargePointsCardEnabled?(s(),c(k,{key:4})):m("",!0)])}],["__scopeId","data-v-853975a6"]]);export{K as default}; diff --git a/packages/modules/display_themes/cards/web/assets/EnergyFlowView-BOyDZ-Ju.css b/packages/modules/display_themes/cards/web/assets/EnergyFlowView-BOyDZ-Ju.css deleted file mode 100644 index 93fa17245d..0000000000 --- a/packages/modules/display_themes/cards/web/assets/EnergyFlowView-BOyDZ-Ju.css +++ /dev/null @@ -1 +0,0 @@ -.svg-container[data-v-e1dd1722]{display:flex;flex-direction:column;align-items:center}path[data-v-e1dd1722]{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-e1dd1722]{stroke:#fff;stroke-dasharray:5;animation:dash-e1dd1722 1s linear infinite}path.animatedReverse[data-v-e1dd1722]{stroke:#fff;stroke-dasharray:5;animation:dashReverse-e1dd1722 1s linear infinite}path.animated.grid[data-v-e1dd1722]{stroke:var(--color--danger)}path.animatedReverse.grid[data-v-e1dd1722]{stroke:var(--color--success)}path.animated.pv[data-v-e1dd1722],path.animatedReverse.pv[data-v-e1dd1722]{stroke:var(--color--success)}path.animated.battery[data-v-e1dd1722],path.animatedReverse.battery[data-v-e1dd1722]{stroke:var(--color--warning)}path.animated.charge-point[data-v-e1dd1722],path.animatedReverse.charge-point[data-v-e1dd1722]{stroke:var(--color--primary)}path.animated.vehicle[data-v-e1dd1722],path.animatedReverse.vehicle[data-v-e1dd1722]{stroke:var(--color--teal)}circle[data-v-e1dd1722]{fill:#000;fill-opacity:1;stroke:gray;stroke-width:var(--4830d832);stroke-miterlimit:2;stroke-opacity:1}rect[data-v-e1dd1722]{stroke-width:var(--4830d832)}@keyframes dash-e1dd1722{to{stroke-dashoffset:-20}}@keyframes dashReverse-e1dd1722{to{stroke-dashoffset:20}}text[data-v-e1dd1722]{font-size:var(--4cb129ac);line-height:1.25;font-family:Arial;fill:#fff;fill-opacity:1}text .fill-success[data-v-e1dd1722]{fill:var(--color--success)}text .fill-danger[data-v-e1dd1722]{fill:var(--color--danger)}text .fill-dark[data-v-e1dd1722]{fill:var(--color--dark)}.grid text[data-v-e1dd1722]{fill:var(--color--danger)}.grid circle[data-v-e1dd1722],.grid rect[data-v-e1dd1722]{stroke:var(--color--danger)}.grid circle[data-v-e1dd1722]{fill:var(--color--danger-90)}.pv text[data-v-e1dd1722]{fill:var(--color--success)}.pv circle[data-v-e1dd1722],.pv rect[data-v-e1dd1722]{stroke:var(--color--success)}.pv circle[data-v-e1dd1722]{fill:var(--color--success-90)}.battery text[data-v-e1dd1722]{fill:var(--color--warning)}.battery circle[data-v-e1dd1722],.battery rect[data-v-e1dd1722]{stroke:var(--color--warning)}.battery circle[data-v-e1dd1722]:not(.soc){fill:var(--color--warning-90)}.home text[data-v-e1dd1722]{fill:var(--color--light)}.home circle[data-v-e1dd1722],.home rect[data-v-e1dd1722]{stroke:var(--color--light)}.home circle[data-v-e1dd1722]{fill:var(--color--dark-70)}.charge-point text[data-v-e1dd1722]{fill:var(--color--primary)}.charge-point circle[data-v-e1dd1722],.charge-point rect[data-v-e1dd1722]{stroke:var(--color--primary)}.charge-point circle[data-v-e1dd1722]{fill:var(--color--primary-85)}.vehicle text[data-v-e1dd1722]{fill:var(--color--teal)}.vehicle circle[data-v-e1dd1722],.vehicle rect[data-v-e1dd1722]{stroke:var(--color--teal)}.vehicle circle[data-v-e1dd1722]:not(.soc){fill:var(--color--teal-85)} diff --git a/packages/modules/display_themes/cards/web/assets/EnergyFlowView-Bg4DjJvn.js b/packages/modules/display_themes/cards/web/assets/EnergyFlowView-Bg4DjJvn.js new file mode 100644 index 0000000000..d73b1ad481 --- /dev/null +++ b/packages/modules/display_themes/cards/web/assets/EnergyFlowView-Bg4DjJvn.js @@ -0,0 +1 @@ +import{u as y}from"./index-B9sId-TF.js";import{D as f}from"./DashboardCard-DS7AgUYm.js";import{C as q}from"./ChargeModeModal-Z93Lcs44.js";import{e as h,s as u,p as l,q as m,F as v,o as r,i as s,A as C,z as d,f as P,k as b,x as w,O as M,l as _}from"./vendor-Bzn5cd2Y.js";import{_ as p}from"./vendor-inkline-S9CBmrTS.js";import"./vendor-fortawesome-C1Wk2aFl.js";const S={name:"DashboardFlowCard",components:{DashboardCard:f,ChargeModeModal:q},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:y(),svgSize:{xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3},modalChargeModeSettingsVisible:!1,modalChargePointId:0}),computed:{svgViewBox(){return`${this.svgSize.xMin} ${this.svgSize.yMin} ${this.svgSize.xMax} ${this.svgSize.yMax}`},svgFontSize(){return`${this.svgSize.textSize}px`},svgRectWidth(){return(this.svgSize.xMax-this.svgSize.xMin-this.svgSize.strokeWidth-this.svgSize.numColumns)/this.svgSize.numColumns},svgStrokeWidth(){return this.svgSize.strokeWidth},svgIconWidth(){return this.svgSize.circleRadius},svgIconHeight(){return this.svgSize.circleRadius},gridPower(){return this.mqttStore.getGridPower("object")},pvPower(){return this.mqttStore.getPvPower("object")},homePower(){return this.mqttStore.getHomePower("object")},batteryPower(){return this.mqttStore.getBatteryPower("object")},batterySoc(){return this.mqttStore.getBatterySoc("object").value/100},connectedChargePoints(){return this.mqttStore.getChargePointIds},chargePointSumPower(){return this.mqttStore.getChargePointSumPower("object")},chargePoint1Power(){return this.connectedChargePoints.length>0?this.mqttStore.getChargePointPower(this.connectedChargePoints[0],"object")||{textValue:"Loading..."}:{textValue:"N/A"}},chargePoint2Power(){return this.connectedChargePoints.length>1?this.mqttStore.getChargePointPower(this.connectedChargePoints[1],"object")||{textValue:"Loading..."}:{textValue:"N/A"}},chargePoint3Power(){return this.connectedChargePoints.length>2?this.mqttStore.getChargePointPower(this.connectedChargePoints[2],"object")||{textValue:"Loading..."}:{textValue:"N/A"}},chargePoint1Name(){return this.mqttStore.getChargePointName(this.connectedChargePoints[0])},chargePoint2Name(){return this.mqttStore.getChargePointName(this.connectedChargePoints[1])},chargePoint3Name(){return this.mqttStore.getChargePointName(this.connectedChargePoints[2])},chargePoint1VehicleConnected(){return this.mqttStore.getChargePointPlugState(this.connectedChargePoints[0])},chargePoint2VehicleConnected(){return this.mqttStore.getChargePointPlugState(this.connectedChargePoints[1])},chargePoint3VehicleConnected(){return this.mqttStore.getChargePointPlugState(this.connectedChargePoints[2])},chargePoint1ConnectedVehicleName(){return this.mqttStore.getChargePointConnectedVehicleName(this.connectedChargePoints[0])},chargePoint2ConnectedVehicleName(){return this.mqttStore.getChargePointConnectedVehicleName(this.connectedChargePoints[1])},chargePoint3ConnectedVehicleName(){return this.mqttStore.getChargePointConnectedVehicleName(this.connectedChargePoints[2])},chargePoint1ConnectedVehicleChargeMode(){return this.mqttStore.getChargePointConnectedVehicleChargeMode(this.connectedChargePoints[0])},chargePoint2ConnectedVehicleChargeMode(){return this.mqttStore.getChargePointConnectedVehicleChargeMode(this.connectedChargePoints[1])},chargePoint3ConnectedVehicleChargeMode(){return this.mqttStore.getChargePointConnectedVehicleChargeMode(this.connectedChargePoints[2])},chargePoint1ConnectedVehicleSoc(){return this.mqttStore.getChargePointConnectedVehicleSoc(this.connectedChargePoints[0]).soc/100},chargePoint2ConnectedVehicleSoc(){return this.mqttStore.getChargePointConnectedVehicleSoc(this.connectedChargePoints[1]).soc/100},chargePoint3ConnectedVehicleSoc(){return this.mqttStore.getChargePointConnectedVehicleSoc(this.connectedChargePoints[2]).soc/100},gridConsumption(){return this.gridPower.value>0},gridFeedIn(){return this.gridPower.value<0},homeConsumption(){return this.homePower.value>0},homeProduction(){return this.homePower.value<0},pvProduction(){return this.pvPower.value<0},pvConsumption(){return this.pvPower.value>0},batteryDischarging(){return this.batteryPower.value<0},batteryCharging(){return this.batteryPower.value>0},chargePointSumCharging(){return this.chargePointSumPower.value>0},chargePointSumDischarging(){return this.chargePointSumPower.value<0},chargePoint1Charging(){return this.chargePoint1Power.value>0},chargePoint1Discharging(){return this.chargePoint1Power.value<0},chargePoint2Charging(){return this.chargePoint2Power.value>0},chargePoint2Discharging(){return this.chargePoint2Power.value<0},chargePoint3Charging(){return this.chargePoint3Power.value>0},chargePoint3Discharging(){return this.chargePoint3Power.value<0},svgComponents(){var t,a,g,o,n,c;var e=[];return this.mqttStore.getThemeConfiguration.enable_dashboard_card_grid&&e.push({id:"grid",class:{base:"grid",valueLabel:this.gridFeedIn?"fill-success":this.gridConsumption?"fill-danger":"",animated:this.gridConsumption,animatedReverse:this.gridFeedIn},position:{row:0,column:0},label:["EVU",this.absoluteValue(this.gridPower).textValue],icon:"icons/owbGrid.svg"}),this.mqttStore.getThemeConfiguration.enable_dashboard_card_home_consumption&&e.push({id:"home",class:{base:"home",valueLabel:"",animated:this.homeProduction,animatedReverse:this.homeConsumption},position:{row:0,column:2},label:["Haus",this.absoluteValue(this.homePower).textValue],icon:"icons/owbHouse.svg"}),this.mqttStore.getPvConfigured&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_inverter_sum&&e.push({id:"pv",class:{base:"pv",valueLabel:this.pvProduction||this.pvConsumption?"fill-success":"",animated:this.pvProduction,animatedReverse:this.pvConsumption},position:{row:1,column:0},label:["PV",this.absoluteValue(this.pvPower).textValue],icon:"icons/owbPV.svg"}),this.mqttStore.getBatteryConfigured&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_battery_sum&&e.push({id:"battery",class:{base:"battery",valueLabel:"",animated:this.batteryDischarging,animatedReverse:this.batteryCharging},position:{row:1,column:2},label:["Speicher",this.absoluteValue(this.batteryPower).textValue],soc:this.batterySoc,icon:"icons/owbBattery.svg"}),this.connectedChargePoints.length>0&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_charge_point_sum&&(this.connectedChargePoints.length<=3?(e.push({id:"charge-point-1",class:{base:"charge-point",valueLabel:"",animated:this.chargePoint1Discharging,animatedReverse:this.chargePoint1Charging},position:{row:2,column:this.connectedChargePoints.length>1?0:1},label:[this.chargePoint1Name,this.absoluteValue(this.chargePoint1Power).textValue],icon:"icons/owbChargePoint.svg"}),this.chargePoint1VehicleConnected&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_vehicles&&e.push({id:"vehicle-1",class:{base:"vehicle",valueLabel:"fill-"+((t=this.chargePoint1ConnectedVehicleChargeMode)==null?void 0:t.class),animated:this.chargePoint1Discharging,animatedReverse:this.chargePoint1Charging},position:{row:3,column:this.connectedChargePoints.length>1?0:1},label:[this.chargePoint1ConnectedVehicleName||"---",((a=this.chargePoint1ConnectedVehicleChargeMode)==null?void 0:a.label)||"---"],soc:this.chargePoint1ConnectedVehicleSoc,icon:"icons/owbVehicle.svg",clicked:()=>{this.selectChargeMode(this.connectedChargePoints[0])}}),this.connectedChargePoints.length>1&&(e.push({id:"charge-point-2",class:{base:"charge-point",valueLabel:"",animated:this.chargePoint2Discharging,animatedReverse:this.chargePoint2Charging},position:{row:2,column:this.connectedChargePoints.length>2?1:2},label:[this.chargePoint2Name,this.absoluteValue(this.chargePoint2Power).textValue],icon:"icons/owbChargePoint.svg"}),this.chargePoint2VehicleConnected&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_vehicles&&e.push({id:"vehicle-2",class:{base:"vehicle",valueLabel:"fill-"+((g=this.chargePoint2ConnectedVehicleChargeMode)==null?void 0:g.class),animated:this.chargePoint2Discharging,animatedReverse:this.chargePoint2Charging},position:{row:3,column:this.connectedChargePoints.length>2?1:2},label:[this.chargePoint2ConnectedVehicleName||"---",((o=this.chargePoint2ConnectedVehicleChargeMode)==null?void 0:o.label)||"---"],soc:this.chargePoint2ConnectedVehicleSoc,icon:"icons/owbVehicle.svg"}),this.connectedChargePoints.length>2&&(e.push({id:"charge-point-3",class:{base:"charge-point",valueLabel:"",animated:this.chargePoint3Discharging,animatedReverse:this.chargePoint3Charging},position:{row:2,column:2},label:[this.chargePoint3Name,this.absoluteValue(this.chargePoint3Power).textValue],icon:"icons/owbChargePoint.svg"}),this.chargePoint3VehicleConnected&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_vehicles&&e.push({id:"vehicle-3",class:{base:"vehicle",valueLabel:"fill-"+((n=this.chargePoint3ConnectedVehicleChargeMode)==null?void 0:n.class),animated:this.chargePoint3Discharging,animatedReverse:this.chargePoint3Charging},position:{row:3,column:2},label:[this.chargePoint3ConnectedVehicleName||"---",((c=this.chargePoint3ConnectedVehicleChargeMode)==null?void 0:c.label)||"---"],soc:this.chargePoint3ConnectedVehicleSoc,icon:"icons/owbVehicle.svg"})))):e.push({id:"charge-point-sum",class:{base:"charge-point",valueLabel:"",animated:this.chargePointSumDischarging,animatedReverse:this.chargePointSumCharging},position:{row:2,column:1},label:["Ladepunkte",this.absoluteValue(this.chargePointSumPower).textValue],icon:"icons/owbChargePoint.svg"})),(!this.mqttStore.getThemeConfiguration.enable_dashboard_card_vehicles||this.connectedChargePoints.length===0||this.connectedChargePoints.length>3)&&this.setSvgNumRows(3),e}},watch:{changesLocked(e,t){t!==!0&&e===!0&&(this.modalChargeModeSettingsVisible=!1)}},methods:{absoluteValue(e){let t={...e};return t.textValue&&(t.textValue=t.textValue.replace("-","")),t.value&&(t.value=Math.abs(t.value)),t.scaledValue&&(t.scaledValue=Math.abs(t.scaledValue)),t},setSvgNumRows(e){this.svgSize.numRows=e},calcRowY(e){let t=this.svgSize.yMin+this.svgSize.strokeWidth+this.svgSize.circleRadius;return e*((this.svgSize.yMax-this.svgSize.strokeWidth-this.svgSize.circleRadius-t)/(this.svgSize.numRows-1))+t},calcColumnX(e){let t=this.svgSize.xMin+this.svgSize.strokeWidth+this.svgRectWidth/2;return e*((this.svgSize.xMax-this.svgSize.strokeWidth-this.svgRectWidth/2-t)/(this.svgSize.numColumns-1))+t},calcFlowLineAnchorX(e){let t=this.calcColumnX(e);return e<(this.svgSize.numColumns-1)/2?t+this.svgRectWidth/2-this.svgSize.circleRadius:e>(this.svgSize.numColumns-1)/2?t-this.svgRectWidth/2+this.svgSize.circleRadius:t},calcSvgElementBoundingBox(e){let t=document.getElementById(e);if(t==null)return{x:0,y:0,width:0,height:0};let a=t.getBBox();return{x:a.x,y:a.y,width:a.width,height:a.height}},beginAnimation(e){var t;this.$refs[e]!=null&&((t=this.$refs[e][0])==null||t.beginElement())},selectChargeMode(e){this.changesLocked||(this.modalChargePointId=e,this.modalChargeModeSettingsVisible=!0)}}},V=()=>{M(e=>({"4eba3f52":e.svgStrokeWidth,"034f9ba7":e.svgFontSize}))},x=S.setup;S.setup=x?(e,t)=>(V(),x(e,t)):V;const k={class:"svg-container"},W=["viewBox"],$={id:"layer1",style:{display:"inline"}},L=["d"],N={id:"layer2",style:{display:"inline"}},B=["cx","cy","r"],D=["transform","onClick"],I=["id"],F=["x","y","width","height"],A=["id"],j=["x","y","width","height","rx","ry"],T=["x","y","width","height","rx","ry"],X=["clip-path"],E=["id","x","y"],Y=["values"],H=["id","x","y"],G=["transform"],U=["r"],O=["r","clip-path"],J=["href","x","y","height","width"],ne=p({name:"EnergyFlowView",components:{FlowCard:p(S,[["render",function(e,t,a,g,o,n){const c=l("charge-mode-modal"),z=l("i-container"),R=l("dashboard-card");return r(),h(v,null,[u(c,{modelValue:o.modalChargeModeSettingsVisible,"onUpdate:modelValue":t[0]||(t[0]=i=>o.modalChargeModeSettingsVisible=i),"charge-point-id":o.modalChargePointId},null,8,["modelValue","charge-point-id"]),u(R,{color:"primary"},{headerLeft:m(()=>t[1]||(t[1]=[b(" Übersicht - Energiefluss ",-1)])),default:m(()=>[u(z,null,{default:m(()=>[s("div",k,[(r(),h("svg",{viewBox:n.svgViewBox,version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},[s("g",$,[(r(!0),h(v,null,C(n.svgComponents,i=>(r(),h("path",{key:i.id,class:d([i.class.base,{animated:i.class.animated},{animatedReverse:i.class.animatedReverse}]),d:i.class.base!=="vehicle"?`M ${n.calcFlowLineAnchorX(i.position.column)}, ${n.calcRowY(i.position.row)} ${n.calcColumnX(1)}, ${n.calcRowY(1)}`:`M ${n.calcFlowLineAnchorX(i.position.column)}, ${n.calcRowY(i.position.row)} ${n.calcFlowLineAnchorX(i.position.column)}, ${n.calcRowY(i.position.row-1)}`},null,10,L))),128))]),s("g",N,[s("circle",{id:"center",cx:n.calcColumnX(1),cy:n.calcRowY(1),r:o.svgSize.circleRadius/3},null,8,B),(r(!0),h(v,null,C(n.svgComponents,i=>(r(),h("g",{key:i.id,class:d(i.class.base),transform:`translate(${n.calcColumnX(i.position.column)}, ${n.calcRowY(i.position.row)})`,onClick:K=>{n.beginAnimation(`animate-label-${i.id}`),i.clicked&&i.clicked()}},[s("defs",null,[i.soc?(r(),h("clipPath",{key:0,id:`clip-soc-${i.id}`},[s("rect",{x:-o.svgSize.circleRadius-o.svgSize.strokeWidth,y:(o.svgSize.circleRadius+o.svgSize.strokeWidth)*(1-2*i.soc),width:2*(o.svgSize.circleRadius+o.svgSize.strokeWidth),height:2*(o.svgSize.circleRadius+o.svgSize.strokeWidth)*i.soc},null,8,F)],8,I)):P("",!0),s("clipPath",{id:`clip-label-${i.id}`},[s("rect",{x:-n.svgRectWidth/2,y:-o.svgSize.circleRadius,width:n.svgRectWidth,height:2*o.svgSize.circleRadius,rx:o.svgSize.circleRadius,ry:o.svgSize.circleRadius},null,8,j)],8,A)]),s("rect",{x:-n.svgRectWidth/2,y:-o.svgSize.circleRadius,width:n.svgRectWidth,height:2*o.svgSize.circleRadius,rx:o.svgSize.circleRadius,ry:o.svgSize.circleRadius},null,8,T),s("text",{"clip-path":`url(#clip-label-${i.id})`},[s("tspan",{id:`label-${i.id}`,"text-anchor":"start",x:-n.svgRectWidth/2+2*o.svgSize.circleRadius+o.svgSize.strokeWidth,y:-o.svgSize.textSize/2},[n.calcSvgElementBoundingBox(`label-${i.id}`).width>n.svgRectWidth-2*o.svgSize.circleRadius-2*o.svgSize.strokeWidth?(r(),h("animate",{key:0,ref_for:!0,ref:`animate-label-${i.id}`,xmlns:"http://www.w3.org/2000/svg",attributeName:"x",dur:"5s",values:"0; "+(-n.calcSvgElementBoundingBox(`label-${i.id}`).width+n.svgRectWidth-2.5*o.svgSize.circleRadius-2*o.svgSize.strokeWidth)+"; 0;",repeatCount:"0",begin:"2s",additive:"sum"},null,8,Y)):P("",!0),b(" "+w(i.label[0]),1)],8,E),s("tspan",{id:`value-${i.id}`,class:d(i.class.valueLabel),"text-anchor":"end",x:2*o.svgSize.circleRadius+o.svgSize.strokeWidth,y:o.svgSize.textSize},w(i.label[1]),11,H)],8,X),s("g",{transform:`translate(${o.svgSize.circleRadius-n.svgRectWidth/2}, 0)`},[s("circle",{cx:"0",cy:"0",r:o.svgSize.circleRadius,class:d({soc:i.soc})},null,10,U),i.soc?(r(),h("circle",{key:0,cx:"0",cy:"0",r:o.svgSize.circleRadius,"clip-path":`url(#clip-soc-${i.id})`},null,8,O)):P("",!0),s("image",{href:i.icon,x:-n.svgIconWidth/2,y:-n.svgIconHeight/2,height:n.svgIconHeight,width:n.svgIconWidth},null,8,J)],8,G)],10,D))),128))])],8,W))])]),_:1})]),_:1})],64)}],["__scopeId","data-v-fbd923af"]])},props:{changesLocked:{required:!1,type:Boolean,default:!1}}},[["render",function(e,t,a,g,o,n){const c=l("FlowCard");return r(),_(c,{"changes-locked":a.changesLocked},null,8,["changes-locked"])}]]);export{ne as default}; diff --git a/packages/modules/display_themes/cards/web/assets/EnergyFlowView-CtSxCBuI.js b/packages/modules/display_themes/cards/web/assets/EnergyFlowView-CtSxCBuI.js deleted file mode 100644 index 652d590cc7..0000000000 --- a/packages/modules/display_themes/cards/web/assets/EnergyFlowView-CtSxCBuI.js +++ /dev/null @@ -1 +0,0 @@ -import{u as y}from"./index-Rkba6Ib0.js";import{D as f}from"./DashboardCard-DS7AgUYm.js";import{C as q}from"./ChargeModeModal-D_G7wsgY.js";import{e as h,s as u,p as l,q as m,F as v,o as r,i as s,A as C,z as d,f as P,k as b,x as w,O as M,l as _}from"./vendor-Bzn5cd2Y.js";import{_ as p}from"./vendor-inkline-S9CBmrTS.js";import"./vendor-fortawesome-C1Wk2aFl.js";const S={name:"DashboardFlowCard",components:{DashboardCard:f,ChargeModeModal:q},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:y(),svgSize:{xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3},modalChargeModeSettingsVisible:!1,modalChargePointId:0}),computed:{svgViewBox(){return`${this.svgSize.xMin} ${this.svgSize.yMin} ${this.svgSize.xMax} ${this.svgSize.yMax}`},svgFontSize(){return`${this.svgSize.textSize}px`},svgRectWidth(){return(this.svgSize.xMax-this.svgSize.xMin-this.svgSize.strokeWidth-this.svgSize.numColumns)/this.svgSize.numColumns},svgStrokeWidth(){return this.svgSize.strokeWidth},svgIconWidth(){return this.svgSize.circleRadius},svgIconHeight(){return this.svgSize.circleRadius},gridPower(){return this.mqttStore.getGridPower("object")},pvPower(){return this.mqttStore.getPvPower("object")},homePower(){return this.mqttStore.getHomePower("object")},batteryPower(){return this.mqttStore.getBatteryPower("object")},batterySoc(){return this.mqttStore.getBatterySoc("object").value/100},connectedChargePoints(){return this.mqttStore.getChargePointIds},chargePointSumPower(){return this.mqttStore.getChargePointSumPower("object")},chargePoint1Power(){return this.connectedChargePoints.length>0?this.mqttStore.getChargePointPower(this.connectedChargePoints[0],"object")||{textValue:"Loading..."}:{textValue:"N/A"}},chargePoint2Power(){return this.connectedChargePoints.length>1?this.mqttStore.getChargePointPower(this.connectedChargePoints[1],"object")||{textValue:"Loading..."}:{textValue:"N/A"}},chargePoint3Power(){return this.connectedChargePoints.length>2?this.mqttStore.getChargePointPower(this.connectedChargePoints[2],"object")||{textValue:"Loading..."}:{textValue:"N/A"}},chargePoint1Name(){return this.mqttStore.getChargePointName(this.connectedChargePoints[0])},chargePoint2Name(){return this.mqttStore.getChargePointName(this.connectedChargePoints[1])},chargePoint3Name(){return this.mqttStore.getChargePointName(this.connectedChargePoints[2])},chargePoint1VehicleConnected(){return this.mqttStore.getChargePointPlugState(this.connectedChargePoints[0])},chargePoint2VehicleConnected(){return this.mqttStore.getChargePointPlugState(this.connectedChargePoints[1])},chargePoint3VehicleConnected(){return this.mqttStore.getChargePointPlugState(this.connectedChargePoints[2])},chargePoint1ConnectedVehicleName(){return this.mqttStore.getChargePointConnectedVehicleName(this.connectedChargePoints[0])},chargePoint2ConnectedVehicleName(){return this.mqttStore.getChargePointConnectedVehicleName(this.connectedChargePoints[1])},chargePoint3ConnectedVehicleName(){return this.mqttStore.getChargePointConnectedVehicleName(this.connectedChargePoints[2])},chargePoint1ConnectedVehicleChargeMode(){return this.mqttStore.getChargePointConnectedVehicleChargeMode(this.connectedChargePoints[0])},chargePoint2ConnectedVehicleChargeMode(){return this.mqttStore.getChargePointConnectedVehicleChargeMode(this.connectedChargePoints[1])},chargePoint3ConnectedVehicleChargeMode(){return this.mqttStore.getChargePointConnectedVehicleChargeMode(this.connectedChargePoints[2])},chargePoint1ConnectedVehicleSoc(){return this.mqttStore.getChargePointConnectedVehicleSoc(this.connectedChargePoints[0]).soc/100},chargePoint2ConnectedVehicleSoc(){return this.mqttStore.getChargePointConnectedVehicleSoc(this.connectedChargePoints[1]).soc/100},chargePoint3ConnectedVehicleSoc(){return this.mqttStore.getChargePointConnectedVehicleSoc(this.connectedChargePoints[2]).soc/100},gridConsumption(){return this.gridPower.value>0},gridFeedIn(){return this.gridPower.value<0},homeConsumption(){return this.homePower.value>0},homeProduction(){return this.homePower.value<0},pvProduction(){return this.pvPower.value>0},batteryDischarging(){return this.batteryPower.value<0},batteryCharging(){return this.batteryPower.value>0},chargePointSumCharging(){return this.chargePointSumPower.value>0},chargePointSumDischarging(){return this.chargePointSumPower.value<0},chargePoint1Charging(){return this.chargePoint1Power.value>0},chargePoint1Discharging(){return this.chargePoint1Power.value<0},chargePoint2Charging(){return this.chargePoint2Power.value>0},chargePoint2Discharging(){return this.chargePoint2Power.value<0},chargePoint3Charging(){return this.chargePoint3Power.value>0},chargePoint3Discharging(){return this.chargePoint3Power.value<0},svgComponents(){var t,a,g,o,n,c;var e=[];return this.mqttStore.getThemeConfiguration.enable_dashboard_card_grid&&e.push({id:"grid",class:{base:"grid",valueLabel:this.gridFeedIn?"fill-success":this.gridConsumption?"fill-danger":"",animated:this.gridConsumption,animatedReverse:this.gridFeedIn},position:{row:0,column:0},label:["EVU",this.absoluteValue(this.gridPower).textValue],icon:"icons/owbGrid.svg"}),this.mqttStore.getThemeConfiguration.enable_dashboard_card_home_consumption&&e.push({id:"home",class:{base:"home",valueLabel:"",animated:this.homeProduction,animatedReverse:this.homeConsumption},position:{row:0,column:2},label:["Haus",this.absoluteValue(this.homePower).textValue],icon:"icons/owbHouse.svg"}),this.mqttStore.getPvConfigured&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_inverter_sum&&e.push({id:"pv",class:{base:"pv",valueLabel:this.pvProduction?"fill-success":"",animated:this.pvProduction,animatedReverse:!1},position:{row:1,column:0},label:["PV",this.absoluteValue(this.pvPower).textValue],icon:"icons/owbPV.svg"}),this.mqttStore.getBatteryConfigured&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_battery_sum&&e.push({id:"battery",class:{base:"battery",valueLabel:"",animated:this.batteryDischarging,animatedReverse:this.batteryCharging},position:{row:1,column:2},label:["Speicher",this.absoluteValue(this.batteryPower).textValue],soc:this.batterySoc,icon:"icons/owbBattery.svg"}),this.connectedChargePoints.length>0&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_charge_point_sum&&(this.connectedChargePoints.length<=3?(e.push({id:"charge-point-1",class:{base:"charge-point",valueLabel:"",animated:this.chargePoint1Discharging,animatedReverse:this.chargePoint1Charging},position:{row:2,column:this.connectedChargePoints.length>1?0:1},label:[this.chargePoint1Name,this.absoluteValue(this.chargePoint1Power).textValue],icon:"icons/owbChargePoint.svg"}),this.chargePoint1VehicleConnected&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_vehicles&&e.push({id:"vehicle-1",class:{base:"vehicle",valueLabel:"fill-"+((t=this.chargePoint1ConnectedVehicleChargeMode)==null?void 0:t.class),animated:this.chargePoint1Discharging,animatedReverse:this.chargePoint1Charging},position:{row:3,column:this.connectedChargePoints.length>1?0:1},label:[this.chargePoint1ConnectedVehicleName||"---",((a=this.chargePoint1ConnectedVehicleChargeMode)==null?void 0:a.label)||"---"],soc:this.chargePoint1ConnectedVehicleSoc,icon:"icons/owbVehicle.svg",clicked:()=>{this.selectChargeMode(this.connectedChargePoints[0])}}),this.connectedChargePoints.length>1&&(e.push({id:"charge-point-2",class:{base:"charge-point",valueLabel:"",animated:this.chargePoint2Discharging,animatedReverse:this.chargePoint2Charging},position:{row:2,column:this.connectedChargePoints.length>2?1:2},label:[this.chargePoint2Name,this.absoluteValue(this.chargePoint2Power).textValue],icon:"icons/owbChargePoint.svg"}),this.chargePoint2VehicleConnected&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_vehicles&&e.push({id:"vehicle-2",class:{base:"vehicle",valueLabel:"fill-"+((g=this.chargePoint2ConnectedVehicleChargeMode)==null?void 0:g.class),animated:this.chargePoint2Discharging,animatedReverse:this.chargePoint2Charging},position:{row:3,column:this.connectedChargePoints.length>2?1:2},label:[this.chargePoint2ConnectedVehicleName||"---",((o=this.chargePoint2ConnectedVehicleChargeMode)==null?void 0:o.label)||"---"],soc:this.chargePoint2ConnectedVehicleSoc,icon:"icons/owbVehicle.svg"}),this.connectedChargePoints.length>2&&(e.push({id:"charge-point-3",class:{base:"charge-point",valueLabel:"",animated:this.chargePoint3Discharging,animatedReverse:this.chargePoint3Charging},position:{row:2,column:2},label:[this.chargePoint3Name,this.absoluteValue(this.chargePoint3Power).textValue],icon:"icons/owbChargePoint.svg"}),this.chargePoint3VehicleConnected&&this.mqttStore.getThemeConfiguration.enable_dashboard_card_vehicles&&e.push({id:"vehicle-3",class:{base:"vehicle",valueLabel:"fill-"+((n=this.chargePoint3ConnectedVehicleChargeMode)==null?void 0:n.class),animated:this.chargePoint3Discharging,animatedReverse:this.chargePoint3Charging},position:{row:3,column:2},label:[this.chargePoint3ConnectedVehicleName||"---",((c=this.chargePoint3ConnectedVehicleChargeMode)==null?void 0:c.label)||"---"],soc:this.chargePoint3ConnectedVehicleSoc,icon:"icons/owbVehicle.svg"})))):e.push({id:"charge-point-sum",class:{base:"charge-point",valueLabel:"",animated:this.chargePointSumDischarging,animatedReverse:this.chargePointSumCharging},position:{row:2,column:1},label:["Ladepunkte",this.absoluteValue(this.chargePointSumPower).textValue],icon:"icons/owbChargePoint.svg"})),(!this.mqttStore.getThemeConfiguration.enable_dashboard_card_vehicles||this.connectedChargePoints.length===0||this.connectedChargePoints.length>3)&&this.setSvgNumRows(3),e}},watch:{changesLocked(e,t){t!==!0&&e===!0&&(this.modalChargeModeSettingsVisible=!1)}},methods:{absoluteValue(e){let t={...e};return t.textValue&&(t.textValue=t.textValue.replace("-","")),t.value&&(t.value=Math.abs(t.value)),t.scaledValue&&(t.scaledValue=Math.abs(t.scaledValue)),t},setSvgNumRows(e){this.svgSize.numRows=e},calcRowY(e){let t=this.svgSize.yMin+this.svgSize.strokeWidth+this.svgSize.circleRadius;return e*((this.svgSize.yMax-this.svgSize.strokeWidth-this.svgSize.circleRadius-t)/(this.svgSize.numRows-1))+t},calcColumnX(e){let t=this.svgSize.xMin+this.svgSize.strokeWidth+this.svgRectWidth/2;return e*((this.svgSize.xMax-this.svgSize.strokeWidth-this.svgRectWidth/2-t)/(this.svgSize.numColumns-1))+t},calcFlowLineAnchorX(e){let t=this.calcColumnX(e);return e<(this.svgSize.numColumns-1)/2?t+this.svgRectWidth/2-this.svgSize.circleRadius:e>(this.svgSize.numColumns-1)/2?t-this.svgRectWidth/2+this.svgSize.circleRadius:t},calcSvgElementBoundingBox(e){let t=document.getElementById(e);if(t==null)return{x:0,y:0,width:0,height:0};let a=t.getBBox();return{x:a.x,y:a.y,width:a.width,height:a.height}},beginAnimation(e){var t;this.$refs[e]!=null&&((t=this.$refs[e][0])==null||t.beginElement())},selectChargeMode(e){this.changesLocked||(this.modalChargePointId=e,this.modalChargeModeSettingsVisible=!0)}}},V=()=>{M(e=>({"4830d832":e.svgStrokeWidth,"4cb129ac":e.svgFontSize}))},x=S.setup;S.setup=x?(e,t)=>(V(),x(e,t)):V;const k={class:"svg-container"},W=["viewBox"],$={id:"layer1",style:{display:"inline"}},L=["d"],N={id:"layer2",style:{display:"inline"}},B=["cx","cy","r"],D=["transform","onClick"],I=["id"],F=["x","y","width","height"],A=["id"],j=["x","y","width","height","rx","ry"],T=["x","y","width","height","rx","ry"],X=["clip-path"],E=["id","x","y"],Y=["values"],H=["id","x","y"],G=["transform"],U=["r"],O=["r","clip-path"],J=["href","x","y","height","width"],ne=p({name:"EnergyFlowView",components:{FlowCard:p(S,[["render",function(e,t,a,g,o,n){const c=l("charge-mode-modal"),z=l("i-container"),R=l("dashboard-card");return r(),h(v,null,[u(c,{modelValue:o.modalChargeModeSettingsVisible,"onUpdate:modelValue":t[0]||(t[0]=i=>o.modalChargeModeSettingsVisible=i),"charge-point-id":o.modalChargePointId},null,8,["modelValue","charge-point-id"]),u(R,{color:"primary"},{headerLeft:m(()=>t[1]||(t[1]=[b(" Übersicht - Energiefluss ",-1)])),default:m(()=>[u(z,null,{default:m(()=>[s("div",k,[(r(),h("svg",{viewBox:n.svgViewBox,version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},[s("g",$,[(r(!0),h(v,null,C(n.svgComponents,i=>(r(),h("path",{key:i.id,class:d([i.class.base,{animated:i.class.animated},{animatedReverse:i.class.animatedReverse}]),d:i.class.base!=="vehicle"?`M ${n.calcFlowLineAnchorX(i.position.column)}, ${n.calcRowY(i.position.row)} ${n.calcColumnX(1)}, ${n.calcRowY(1)}`:`M ${n.calcFlowLineAnchorX(i.position.column)}, ${n.calcRowY(i.position.row)} ${n.calcFlowLineAnchorX(i.position.column)}, ${n.calcRowY(i.position.row-1)}`},null,10,L))),128))]),s("g",N,[s("circle",{id:"center",cx:n.calcColumnX(1),cy:n.calcRowY(1),r:o.svgSize.circleRadius/3},null,8,B),(r(!0),h(v,null,C(n.svgComponents,i=>(r(),h("g",{key:i.id,class:d(i.class.base),transform:`translate(${n.calcColumnX(i.position.column)}, ${n.calcRowY(i.position.row)})`,onClick:K=>{n.beginAnimation(`animate-label-${i.id}`),i.clicked&&i.clicked()}},[s("defs",null,[i.soc?(r(),h("clipPath",{key:0,id:`clip-soc-${i.id}`},[s("rect",{x:-o.svgSize.circleRadius-o.svgSize.strokeWidth,y:(o.svgSize.circleRadius+o.svgSize.strokeWidth)*(1-2*i.soc),width:2*(o.svgSize.circleRadius+o.svgSize.strokeWidth),height:2*(o.svgSize.circleRadius+o.svgSize.strokeWidth)*i.soc},null,8,F)],8,I)):P("",!0),s("clipPath",{id:`clip-label-${i.id}`},[s("rect",{x:-n.svgRectWidth/2,y:-o.svgSize.circleRadius,width:n.svgRectWidth,height:2*o.svgSize.circleRadius,rx:o.svgSize.circleRadius,ry:o.svgSize.circleRadius},null,8,j)],8,A)]),s("rect",{x:-n.svgRectWidth/2,y:-o.svgSize.circleRadius,width:n.svgRectWidth,height:2*o.svgSize.circleRadius,rx:o.svgSize.circleRadius,ry:o.svgSize.circleRadius},null,8,T),s("text",{"clip-path":`url(#clip-label-${i.id})`},[s("tspan",{id:`label-${i.id}`,"text-anchor":"start",x:-n.svgRectWidth/2+2*o.svgSize.circleRadius+o.svgSize.strokeWidth,y:-o.svgSize.textSize/2},[n.calcSvgElementBoundingBox(`label-${i.id}`).width>n.svgRectWidth-2*o.svgSize.circleRadius-2*o.svgSize.strokeWidth?(r(),h("animate",{key:0,ref_for:!0,ref:`animate-label-${i.id}`,xmlns:"http://www.w3.org/2000/svg",attributeName:"x",dur:"5s",values:"0; "+(-n.calcSvgElementBoundingBox(`label-${i.id}`).width+n.svgRectWidth-2.5*o.svgSize.circleRadius-2*o.svgSize.strokeWidth)+"; 0;",repeatCount:"0",begin:"2s",additive:"sum"},null,8,Y)):P("",!0),b(" "+w(i.label[0]),1)],8,E),s("tspan",{id:`value-${i.id}`,class:d(i.class.valueLabel),"text-anchor":"end",x:2*o.svgSize.circleRadius+o.svgSize.strokeWidth,y:o.svgSize.textSize},w(i.label[1]),11,H)],8,X),s("g",{transform:`translate(${o.svgSize.circleRadius-n.svgRectWidth/2}, 0)`},[s("circle",{cx:"0",cy:"0",r:o.svgSize.circleRadius,class:d({soc:i.soc})},null,10,U),i.soc?(r(),h("circle",{key:0,cx:"0",cy:"0",r:o.svgSize.circleRadius,"clip-path":`url(#clip-soc-${i.id})`},null,8,O)):P("",!0),s("image",{href:i.icon,x:-n.svgIconWidth/2,y:-n.svgIconHeight/2,height:n.svgIconHeight,width:n.svgIconWidth},null,8,J)],8,G)],10,D))),128))])],8,W))])]),_:1})]),_:1})],64)}],["__scopeId","data-v-e1dd1722"]])},props:{changesLocked:{required:!1,type:Boolean,default:!1}}},[["render",function(e,t,a,g,o,n){const c=l("FlowCard");return r(),_(c,{"changes-locked":a.changesLocked},null,8,["changes-locked"])}]]);export{ne as default}; diff --git a/packages/modules/display_themes/cards/web/assets/EnergyFlowView-DaFD-dK8.css b/packages/modules/display_themes/cards/web/assets/EnergyFlowView-DaFD-dK8.css new file mode 100644 index 0000000000..a74f029ff2 --- /dev/null +++ b/packages/modules/display_themes/cards/web/assets/EnergyFlowView-DaFD-dK8.css @@ -0,0 +1 @@ +.svg-container[data-v-fbd923af]{display:flex;flex-direction:column;align-items:center}path[data-v-fbd923af]{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-fbd923af]{stroke:#fff;stroke-dasharray:5;animation:dash-fbd923af 1s linear infinite}path.animatedReverse[data-v-fbd923af]{stroke:#fff;stroke-dasharray:5;animation:dashReverse-fbd923af 1s linear infinite}path.animated.grid[data-v-fbd923af]{stroke:var(--color--danger)}path.animatedReverse.grid[data-v-fbd923af]{stroke:var(--color--success)}path.animated.pv[data-v-fbd923af],path.animatedReverse.pv[data-v-fbd923af]{stroke:var(--color--success)}path.animated.battery[data-v-fbd923af],path.animatedReverse.battery[data-v-fbd923af]{stroke:var(--color--warning)}path.animated.charge-point[data-v-fbd923af],path.animatedReverse.charge-point[data-v-fbd923af]{stroke:var(--color--primary)}path.animated.vehicle[data-v-fbd923af],path.animatedReverse.vehicle[data-v-fbd923af]{stroke:var(--color--teal)}circle[data-v-fbd923af]{fill:#000;fill-opacity:1;stroke:gray;stroke-width:var(--4eba3f52);stroke-miterlimit:2;stroke-opacity:1}rect[data-v-fbd923af]{stroke-width:var(--4eba3f52)}@keyframes dash-fbd923af{to{stroke-dashoffset:-20}}@keyframes dashReverse-fbd923af{to{stroke-dashoffset:20}}text[data-v-fbd923af]{font-size:var(--034f9ba7);line-height:1.25;font-family:Arial;fill:#fff;fill-opacity:1}text .fill-success[data-v-fbd923af]{fill:var(--color--success)}text .fill-danger[data-v-fbd923af]{fill:var(--color--danger)}text .fill-dark[data-v-fbd923af]{fill:var(--color--dark)}.grid text[data-v-fbd923af]{fill:var(--color--danger)}.grid circle[data-v-fbd923af],.grid rect[data-v-fbd923af]{stroke:var(--color--danger)}.grid circle[data-v-fbd923af]{fill:var(--color--danger-90)}.pv text[data-v-fbd923af]{fill:var(--color--success)}.pv circle[data-v-fbd923af],.pv rect[data-v-fbd923af]{stroke:var(--color--success)}.pv circle[data-v-fbd923af]{fill:var(--color--success-90)}.battery text[data-v-fbd923af]{fill:var(--color--warning)}.battery circle[data-v-fbd923af],.battery rect[data-v-fbd923af]{stroke:var(--color--warning)}.battery circle[data-v-fbd923af]:not(.soc){fill:var(--color--warning-90)}.home text[data-v-fbd923af]{fill:var(--color--light)}.home circle[data-v-fbd923af],.home rect[data-v-fbd923af]{stroke:var(--color--light)}.home circle[data-v-fbd923af]{fill:var(--color--dark-70)}.charge-point text[data-v-fbd923af]{fill:var(--color--primary)}.charge-point circle[data-v-fbd923af],.charge-point rect[data-v-fbd923af]{stroke:var(--color--primary)}.charge-point circle[data-v-fbd923af]{fill:var(--color--primary-85)}.vehicle text[data-v-fbd923af]{fill:var(--color--teal)}.vehicle circle[data-v-fbd923af],.vehicle rect[data-v-fbd923af]{stroke:var(--color--teal)}.vehicle circle[data-v-fbd923af]:not(.soc){fill:var(--color--teal-85)} diff --git a/packages/modules/display_themes/cards/web/assets/StatusView--LrW5-ZS.js b/packages/modules/display_themes/cards/web/assets/StatusView-UQkd1DRR.js similarity index 99% rename from packages/modules/display_themes/cards/web/assets/StatusView--LrW5-ZS.js rename to packages/modules/display_themes/cards/web/assets/StatusView-UQkd1DRR.js index 406099dbb6..f5ed218ccf 100644 --- a/packages/modules/display_themes/cards/web/assets/StatusView--LrW5-ZS.js +++ b/packages/modules/display_themes/cards/web/assets/StatusView-UQkd1DRR.js @@ -1 +1 @@ -import{u as y}from"./index-Rkba6Ib0.js";import{F as b,l as k,G as C,H as A}from"./vendor-fortawesome-C1Wk2aFl.js";import{_ as p}from"./vendor-inkline-S9CBmrTS.js";import{l as c,q as t,p as l,o as _,k as n,s as o,I as x,i as I,f as M}from"./vendor-Bzn5cd2Y.js";import{D as z}from"./DashboardCard-DS7AgUYm.js";k.add(C);const F=p({name:"ReloadButton",components:{FontAwesomeIcon:b},props:{},data:()=>({}),methods:{reloadDisplay(){location.reload()}}},[["render",function(w,e,f,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-button");return _(),c(a,{color:"success",size:"lg",onClick:e[0]||(e[0]=s=>m.reloadDisplay())},{default:t(()=>[e[1]||(e[1]=n(" Display neu laden ",-1)),o(i,{"fixed-width":"",icon:["fas","fa-undo"]})]),_:1,__:[1]})}]]);k.add(C);const P=p({name:"RebootButton",components:{FontAwesomeIcon:b},props:{},data:()=>({mqttStore:y(),showModal:!1}),methods:{toggleModal(){this.showModal=!this.showModal},cancel(){this.toggleModal()},confirm(){this.toggleModal(),this.mqttStore.settings.parentChargePoint1!==void 0?this.$root.sendSystemCommand("chargepointReboot",{chargePoint:this.mqttStore.settings.parentChargePoint1}):this.$root.sendSystemCommand("systemReboot")}}},[["render",function(w,e,f,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-container"),s=l("i-button"),d=l("i-column"),h=l("i-row"),g=l("i-modal");return _(),c(s,{color:"warning",size:"lg",onClick:e[3]||(e[3]=r=>m.toggleModal())},{default:t(()=>[e[8]||(e[8]=n(" openWB neu starten ",-1)),o(i,{"fixed-width":"",icon:["fas","fa-undo"]}),(_(),c(x,{to:"body"},[o(g,{modelValue:u.showModal,"onUpdate:modelValue":e[2]||(e[2]=r=>u.showModal=r),size:"sm"},{header:t(()=>e[4]||(e[4]=[n(" openWB neu starten... ",-1)])),footer:t(()=>[o(a,null,{default:t(()=>[o(h,null,{default:t(()=>[o(d,{class:"_text-align:right"},{default:t(()=>[o(s,{color:"success",onClick:e[0]||(e[0]=r=>m.cancel())},{default:t(()=>e[6]||(e[6]=[n(" Zurück ",-1)])),_:1,__:[6]})]),_:1}),o(d,null,{default:t(()=>[o(s,{color:"danger",onClick:e[1]||(e[1]=r=>m.confirm())},{default:t(()=>e[7]||(e[7]=[n(" Neustart ",-1)])),_:1,__:[7]})]),_:1})]),_:1})]),_:1})]),default:t(()=>[o(a,null,{default:t(()=>e[5]||(e[5]=[n(" Möchten Sie diese openWB wirklich neu starten? ",-1)])),_:1,__:[5]})]),_:1},8,["modelValue"])]))]),_:1,__:[8]})}]]);k.add(A);const Z=p({name:"StatusView",components:{ReloadButton:F,RebootButton:P,ShutdownButton:p({name:"ShutdownButton",components:{FontAwesomeIcon:b},props:{},data:()=>({mqttStore:y(),showModal:!1}),methods:{toggleModal(){this.showModal=!this.showModal},cancel(){this.toggleModal()},confirm(){this.toggleModal(),this.mqttStore.settings.parentChargePoint1!==void 0?this.$root.sendSystemCommand("chargepointShutdown",{chargePoint:this.mqttStore.settings.parentChargePoint1}):this.$root.sendSystemCommand("systemShutdown")}}},[["render",function(w,e,f,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-container"),s=l("i-button"),d=l("i-column"),h=l("i-row"),g=l("i-modal");return _(),c(s,{color:"danger",size:"lg",onClick:e[3]||(e[3]=r=>m.toggleModal())},{default:t(()=>[e[8]||(e[8]=n(" openWB ausschalten ",-1)),o(i,{"fixed-width":"",icon:["fas","fa-power-off"]}),(_(),c(x,{to:"body"},[o(g,{modelValue:u.showModal,"onUpdate:modelValue":e[2]||(e[2]=r=>u.showModal=r),size:"sm"},{header:t(()=>e[4]||(e[4]=[n(" openWB ausschalten... ",-1)])),footer:t(()=>[o(a,null,{default:t(()=>[o(h,null,{default:t(()=>[o(d,{class:"_text-align:right"},{default:t(()=>[o(s,{color:"success",onClick:e[0]||(e[0]=r=>m.cancel())},{default:t(()=>e[6]||(e[6]=[n(" Zurück ",-1)])),_:1,__:[6]})]),_:1}),o(d,null,{default:t(()=>[o(s,{color:"danger",onClick:e[1]||(e[1]=r=>m.confirm())},{default:t(()=>e[7]||(e[7]=[n(" Ausschalten ",-1)])),_:1,__:[7]})]),_:1})]),_:1})]),_:1})]),default:t(()=>[o(a,null,{default:t(()=>e[5]||(e[5]=[n(" Möchten Sie diese openWB wirklich ausschalten?",-1),I("br",null,null,-1),n(" Nach dem Ausschalten muss die Ladestation komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])),_:1,__:[5]})]),_:1},8,["modelValue"])]))]),_:1,__:[8]})}]]),DashboardCard:z},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:y()})},[["render",function(w,e,f,S,u,m){const i=l("i-form-label"),a=l("i-column"),s=l("i-input"),d=l("i-row"),h=l("i-form-group"),g=l("reload-button"),r=l("reboot-button"),q=l("shutdown-button"),B=l("i-form"),v=l("i-container"),V=l("dashboard-card");return _(),c(V,{color:"primary"},{headerLeft:t(()=>e[0]||(e[0]=[n(" Status ",-1)])),default:t(()=>[o(v,null,{default:t(()=>[o(B,null,{default:t(()=>[o(d,null,{default:t(()=>[o(a,null,{default:t(()=>[o(h,null,{default:t(()=>[o(d,{class:"_margin-top:2"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[1]||(e[1]=[n(" IP-Adresse ",-1)])),_:1,__:[1]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_ip",plaintext:"","model-value":u.mqttStore.getSystemIp},null,8,["model-value"])]),_:1})]),_:1}),o(d,{class:"_margin-top:1"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[2]||(e[2]=[n(" Systemzeit ",-1)])),_:1,__:[2]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_time",plaintext:"","model-value":u.mqttStore.getSystemTime},null,8,["model-value"])]),_:1})]),_:1}),o(d,{class:"_margin-top:1"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[3]||(e[3]=[n(" Version ",-1)])),_:1,__:[3]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_version",plaintext:"","model-value":u.mqttStore.getSystemVersion},null,8,["model-value"])]),_:1})]),_:1}),o(d,{class:"_margin-top:1"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[4]||(e[4]=[n(" Version (Details) ",-1)])),_:1,__:[4]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_commit",plaintext:"","model-value":u.mqttStore.getSystemCurrentCommit},null,8,["model-value"])]),_:1})]),_:1}),o(d,{class:"_margin-top:1"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[5]||(e[5]=[n(" Entwicklungszweig ",-1)])),_:1,__:[5]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_branch",plaintext:"","model-value":u.mqttStore.getSystemBranch},null,8,["model-value"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),f.changesLocked?M("",!0):(_(),c(d,{key:0,class:"_margin-top:5",between:""},{default:t(()=>[o(a,null,{default:t(()=>[o(g,{block:""})]),_:1})]),_:1})),f.changesLocked?M("",!0):(_(),c(d,{key:1,between:""},{default:t(()=>[o(a,null,{default:t(()=>[o(r,{block:"",class:"_margin-top:2"})]),_:1}),o(a,null,{default:t(()=>[o(q,{block:"",class:"_margin-top:2"})]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})}]]);export{Z as default}; +import{u as y}from"./index-B9sId-TF.js";import{F as b,l as k,G as C,H as A}from"./vendor-fortawesome-C1Wk2aFl.js";import{_ as p}from"./vendor-inkline-S9CBmrTS.js";import{l as c,q as t,p as l,o as _,k as n,s as o,I as x,i as I,f as M}from"./vendor-Bzn5cd2Y.js";import{D as z}from"./DashboardCard-DS7AgUYm.js";k.add(C);const F=p({name:"ReloadButton",components:{FontAwesomeIcon:b},props:{},data:()=>({}),methods:{reloadDisplay(){location.reload()}}},[["render",function(w,e,f,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-button");return _(),c(a,{color:"success",size:"lg",onClick:e[0]||(e[0]=s=>m.reloadDisplay())},{default:t(()=>[e[1]||(e[1]=n(" Display neu laden ",-1)),o(i,{"fixed-width":"",icon:["fas","fa-undo"]})]),_:1,__:[1]})}]]);k.add(C);const P=p({name:"RebootButton",components:{FontAwesomeIcon:b},props:{},data:()=>({mqttStore:y(),showModal:!1}),methods:{toggleModal(){this.showModal=!this.showModal},cancel(){this.toggleModal()},confirm(){this.toggleModal(),this.mqttStore.settings.parentChargePoint1!==void 0?this.$root.sendSystemCommand("chargepointReboot",{chargePoint:this.mqttStore.settings.parentChargePoint1}):this.$root.sendSystemCommand("systemReboot")}}},[["render",function(w,e,f,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-container"),s=l("i-button"),d=l("i-column"),h=l("i-row"),g=l("i-modal");return _(),c(s,{color:"warning",size:"lg",onClick:e[3]||(e[3]=r=>m.toggleModal())},{default:t(()=>[e[8]||(e[8]=n(" openWB neu starten ",-1)),o(i,{"fixed-width":"",icon:["fas","fa-undo"]}),(_(),c(x,{to:"body"},[o(g,{modelValue:u.showModal,"onUpdate:modelValue":e[2]||(e[2]=r=>u.showModal=r),size:"sm"},{header:t(()=>e[4]||(e[4]=[n(" openWB neu starten... ",-1)])),footer:t(()=>[o(a,null,{default:t(()=>[o(h,null,{default:t(()=>[o(d,{class:"_text-align:right"},{default:t(()=>[o(s,{color:"success",onClick:e[0]||(e[0]=r=>m.cancel())},{default:t(()=>e[6]||(e[6]=[n(" Zurück ",-1)])),_:1,__:[6]})]),_:1}),o(d,null,{default:t(()=>[o(s,{color:"danger",onClick:e[1]||(e[1]=r=>m.confirm())},{default:t(()=>e[7]||(e[7]=[n(" Neustart ",-1)])),_:1,__:[7]})]),_:1})]),_:1})]),_:1})]),default:t(()=>[o(a,null,{default:t(()=>e[5]||(e[5]=[n(" Möchten Sie diese openWB wirklich neu starten? ",-1)])),_:1,__:[5]})]),_:1},8,["modelValue"])]))]),_:1,__:[8]})}]]);k.add(A);const Z=p({name:"StatusView",components:{ReloadButton:F,RebootButton:P,ShutdownButton:p({name:"ShutdownButton",components:{FontAwesomeIcon:b},props:{},data:()=>({mqttStore:y(),showModal:!1}),methods:{toggleModal(){this.showModal=!this.showModal},cancel(){this.toggleModal()},confirm(){this.toggleModal(),this.mqttStore.settings.parentChargePoint1!==void 0?this.$root.sendSystemCommand("chargepointShutdown",{chargePoint:this.mqttStore.settings.parentChargePoint1}):this.$root.sendSystemCommand("systemShutdown")}}},[["render",function(w,e,f,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-container"),s=l("i-button"),d=l("i-column"),h=l("i-row"),g=l("i-modal");return _(),c(s,{color:"danger",size:"lg",onClick:e[3]||(e[3]=r=>m.toggleModal())},{default:t(()=>[e[8]||(e[8]=n(" openWB ausschalten ",-1)),o(i,{"fixed-width":"",icon:["fas","fa-power-off"]}),(_(),c(x,{to:"body"},[o(g,{modelValue:u.showModal,"onUpdate:modelValue":e[2]||(e[2]=r=>u.showModal=r),size:"sm"},{header:t(()=>e[4]||(e[4]=[n(" openWB ausschalten... ",-1)])),footer:t(()=>[o(a,null,{default:t(()=>[o(h,null,{default:t(()=>[o(d,{class:"_text-align:right"},{default:t(()=>[o(s,{color:"success",onClick:e[0]||(e[0]=r=>m.cancel())},{default:t(()=>e[6]||(e[6]=[n(" Zurück ",-1)])),_:1,__:[6]})]),_:1}),o(d,null,{default:t(()=>[o(s,{color:"danger",onClick:e[1]||(e[1]=r=>m.confirm())},{default:t(()=>e[7]||(e[7]=[n(" Ausschalten ",-1)])),_:1,__:[7]})]),_:1})]),_:1})]),_:1})]),default:t(()=>[o(a,null,{default:t(()=>e[5]||(e[5]=[n(" Möchten Sie diese openWB wirklich ausschalten?",-1),I("br",null,null,-1),n(" Nach dem Ausschalten muss die Ladestation komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])),_:1,__:[5]})]),_:1},8,["modelValue"])]))]),_:1,__:[8]})}]]),DashboardCard:z},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:y()})},[["render",function(w,e,f,S,u,m){const i=l("i-form-label"),a=l("i-column"),s=l("i-input"),d=l("i-row"),h=l("i-form-group"),g=l("reload-button"),r=l("reboot-button"),q=l("shutdown-button"),B=l("i-form"),v=l("i-container"),V=l("dashboard-card");return _(),c(V,{color:"primary"},{headerLeft:t(()=>e[0]||(e[0]=[n(" Status ",-1)])),default:t(()=>[o(v,null,{default:t(()=>[o(B,null,{default:t(()=>[o(d,null,{default:t(()=>[o(a,null,{default:t(()=>[o(h,null,{default:t(()=>[o(d,{class:"_margin-top:2"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[1]||(e[1]=[n(" IP-Adresse ",-1)])),_:1,__:[1]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_ip",plaintext:"","model-value":u.mqttStore.getSystemIp},null,8,["model-value"])]),_:1})]),_:1}),o(d,{class:"_margin-top:1"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[2]||(e[2]=[n(" Systemzeit ",-1)])),_:1,__:[2]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_time",plaintext:"","model-value":u.mqttStore.getSystemTime},null,8,["model-value"])]),_:1})]),_:1}),o(d,{class:"_margin-top:1"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[3]||(e[3]=[n(" Version ",-1)])),_:1,__:[3]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_version",plaintext:"","model-value":u.mqttStore.getSystemVersion},null,8,["model-value"])]),_:1})]),_:1}),o(d,{class:"_margin-top:1"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[4]||(e[4]=[n(" Version (Details) ",-1)])),_:1,__:[4]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_commit",plaintext:"","model-value":u.mqttStore.getSystemCurrentCommit},null,8,["model-value"])]),_:1})]),_:1}),o(d,{class:"_margin-top:1"},{default:t(()=>[o(a,{xl:"2",lg:"3",md:"4"},{default:t(()=>[o(i,null,{default:t(()=>e[5]||(e[5]=[n(" Entwicklungszweig ",-1)])),_:1,__:[5]})]),_:1}),o(a,null,{default:t(()=>[o(s,{id:"input_system_branch",plaintext:"","model-value":u.mqttStore.getSystemBranch},null,8,["model-value"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),f.changesLocked?M("",!0):(_(),c(d,{key:0,class:"_margin-top:5",between:""},{default:t(()=>[o(a,null,{default:t(()=>[o(g,{block:""})]),_:1})]),_:1})),f.changesLocked?M("",!0):(_(),c(d,{key:1,between:""},{default:t(()=>[o(a,null,{default:t(()=>[o(r,{block:"",class:"_margin-top:2"})]),_:1}),o(a,null,{default:t(()=>[o(q,{block:"",class:"_margin-top:2"})]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})}]]);export{Z as default}; diff --git a/packages/modules/display_themes/cards/web/assets/index-B9sId-TF.js b/packages/modules/display_themes/cards/web/assets/index-B9sId-TF.js new file mode 100644 index 0000000000..7763052cce --- /dev/null +++ b/packages/modules/display_themes/cards/web/assets/index-B9sId-TF.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardView-B6dYjK9c.js","assets/DashboardCard-DS7AgUYm.js","assets/vendor-inkline-S9CBmrTS.js","assets/vendor-Bzn5cd2Y.js","assets/vendor-inkline-BxOXWZNy.css","assets/DashboardCard-Cy_vzq6d.css","assets/ChargePointPlugBadge-BNajoz51.js","assets/vendor-fortawesome-C1Wk2aFl.js","assets/ChargePointPlugBadge-HWp2u3dG.css","assets/DashboardView-BYiJMWFT.css","assets/EnergyFlowView-Bg4DjJvn.js","assets/ChargeModeModal-Z93Lcs44.js","assets/ChargeModeModal-CGs_z8ao.css","assets/EnergyFlowView-DaFD-dK8.css","assets/ChargePointsView-_6Oh_6vw.js","assets/ChargePointsView-BREdPiKW.css","assets/StatusView-UQkd1DRR.js"])))=>i.map(i=>d[i]); +import{e as P,k as f,j as V,x as k,F as S,o as p,i as W,H as F,l as C,q as c,p as h,f as w,s,A as D,I as E,z as A,R as H,J as R,K as U,L as z,M as G,N as K}from"./vendor-Bzn5cd2Y.js";import{_ as b,I as J,c as Y}from"./vendor-inkline-S9CBmrTS.js";import{l as $,f as L,a as q,F as O,b as Z,c as Q}from"./vendor-fortawesome-C1Wk2aFl.js";(function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const o of document.querySelectorAll('link[rel="modulepreload"]'))t(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&t(a)}).observe(document,{childList:!0,subtree:!0})}function t(o){if(o.ep)return;o.ep=!0;const n=function(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}(o);fetch(o.href,n)}})();const X=b({name:"DateTime",data:()=>({dateTimeInterval:"",date:"",time:""}),mounted(){this.update(),this.dateTimeInterval=setInterval(this.update,1e3)},beforeUnmount(){clearInterval(this.dateTimeInterval)},methods:{update(){const e=new Date;this.date=e.toLocaleDateString(void 0,{weekday:"short",year:"numeric",month:"2-digit",day:"2-digit"}),this.time=e.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}}},[["render",function(e,t,o,n,a,i){return p(),P(S,null,[f(k(a.time),1),V(e.$slots,"default",{},()=>[t[0]||(t[0]=W("br",null,null,-1))]),f(k(a.date),1)],64)}]]),B=F("mqtt",{state:()=>({settings:{localIp:void 0,localBranch:void 0,localCommit:void 0,localVersion:void 0,parentChargePoint1:void 0,parentChargePoint2:void 0},topics:{},chartData:{}}),getters:{getChargePointFilter:e=>{let t=[];return e.settings.parentChargePoint1!==void 0&&t.push(e.settings.parentChargePoint1),e.settings.parentChargePoint2!==void 0&&t.push(e.settings.parentChargePoint2),t},getWildcardIndexList:e=>(t,o=!1)=>{let n=t;o||(n="^"+t.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let a=Object.keys(e.topics).filter(i=>i.match(n));return a.forEach((i,r,l)=>{l[r]=parseInt(i.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),a},getWildcardTopics:e=>(t,o=!1)=>{let n=t;return o||(n="^"+t.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(e.topics).filter(a=>a.match(n)).reduce((a,i)=>({...a,[i]:e.topics[i]}),{})},getObjectIds:e=>t=>function o(n){let a=[];return n!==void 0&&n.forEach(i=>{i.type==t&&a.push(i.id),a=[...a,...o(i.children)]}),a}(e.topics["openWB/counter/get/hierarchy"]),getValueBool:e=>(t,o=!1)=>{let n=e.topics[t];return n!==void 0?n:o},getValueString:e=>(t,o="W",n="",a=!0,i=!1,r="---",l=void 0)=>{var g=!1,d=e.topics[t];if(d===void 0||l!==void 0&&d[l]===void 0)m=r;else{l!==void 0&&(d=d[l]),i&&(d*=-1);for(var m=d.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0}),u=d;a&&(u>999||u<-999);)switch(u/=1e3,g=!0,n){case"":n="k";break;case"k":n="M";break;case"M":n="G"}m=u.toLocaleString(void 0,{minimumFractionDigits:g?2:0,maximumFractionDigits:g?2:0})}return{textValue:`${m} ${n}${o}`,value:d,unit:o,scaledValue:u,scaledUnit:`${n}${o}`}},getChartData:e=>t=>e.chartData[t]===void 0?[]:e.chartData[t],getDisplayStandby:e=>e.topics["openWB/optional/int_display/standby"],getThemeConfiguration:e=>{if("openWB/optional/int_display/theme"in e.topics&&e.topics["openWB/optional/int_display/theme"]!==void 0&&"configuration"in e.topics["openWB/optional/int_display/theme"])return e.topics["openWB/optional/int_display/theme"].configuration},getDefaultView:e=>{if(e.getThemeConfiguration){const t={dashboard:e.getThemeConfiguration.enable_dashboard_view,"energy-flow":e.getThemeConfiguration.enable_energy_flow_view,"charge-points":e.getThemeConfiguration.enable_charge_points_view,status:e.getThemeConfiguration.enable_status_view};if(e.getThemeConfiguration.default_view!==void 0&&t[e.getThemeConfiguration.default_view]===!0)return e.getThemeConfiguration.default_view;for(const[o,n]of Object.entries(t))if(n)return o}},getDefaultViewTimeout:e=>e.getThemeConfiguration?e.getThemeConfiguration.default_view_timeout:0,getDashboardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_view,getEnergyFlowEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_energy_flow_view,getChargePointsEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_charge_points_view,getStateEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_status_view,getGridCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_grid,getHomeCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_home_consumption,getBatteryCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_battery_sum,getChargePointsCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_charge_point_sum,getPvCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_inverter_sum,getLockChanges:e=>!e.getThemeConfiguration||e.getThemeConfiguration.lock_changes,getSimpleChargePointView:e=>!!e.getThemeConfiguration&&e.getThemeConfiguration.simple_charge_point_view,getGridId(e){let t=e.topics["openWB/counter/get/hierarchy"];if(t!==void 0&&Object.keys(t).length>0){let o=Object.keys(e.topics["openWB/counter/get/hierarchy"])[0];if(e.topics["openWB/counter/get/hierarchy"][o].type=="counter")return e.topics["openWB/counter/get/hierarchy"][o].id}},getGridPower:e=>(t="textValue")=>{let o=e.getGridId;if(o===void 0)return"---";let n=e.getValueString(`openWB/counter/${o}/get/power`,"W");return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getGridPowerChartData(e){let t=e.getGridId;return t===void 0?[]:e.getChartData(`openWB/counter/${t}/get/power`)},getHomePower:e=>(t="textValue")=>{let o=e.getValueString("openWB/counter/set/home_consumption","W");return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getHomePowerChartData:e=>e.getChartData("openWB/counter/set/home_consumption"),getBatteryConfigured:e=>e.getValueBool("openWB/bat/config/configured"),getBatteryPower:e=>(t="textValue")=>{let o=e.getValueString("openWB/bat/get/power","W");return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getBatteryPowerChartData:e=>e.getChartData("openWB/bat/get/power"),getBatterySoc:e=>(t="textValue")=>{let o=e.getValueString("openWB/bat/get/soc","%","",!1);return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getBatterySocChartData:e=>e.getChartData("openWB/bat/get/soc"),getPvConfigured:e=>e.getValueBool("openWB/pv/config/configured"),getPvPower:e=>(t="textValue")=>{var o=e.getValueString("openWB/pv/get/power","W","");return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getPvPowerChartData:e=>e.getChartData("openWB/pv/get/power").map(t=>-1*t),getChargePointSumPower:e=>(t="textValue")=>{var o=e.getValueString("openWB/chargepoint/get/power","W");return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getChargePointSumPowerChartData:e=>e.getChartData("openWB/chargepoint/get/power"),getChargePointIds(e){let t=e.getObjectIds("cp"),o=this.getChargePointFilter;return o.length>0?t.filter(n=>o.includes(n)):t},getChargePointName:e=>t=>e.topics[`openWB/chargepoint/${t}/config`]!==void 0?e.topics[`openWB/chargepoint/${t}/config`].name:"---",getChargePointPower:e=>(t,o="textValue")=>{var n=e.getValueString(`openWB/chargepoint/${t}/get/power`,"W");return Object.hasOwnProperty.call(n,o)?n[o]:o=="object"?n:void 0},getChargePointImportedSincePlugged:e=>t=>({energy:e.getValueString(`openWB/chargepoint/${t}/set/log`,"Wh","",!0,!1,"---","imported_since_plugged").textValue,range:e.getValueString(`openWB/chargepoint/${t}/set/log`,"m","k",!1,!1,"---","range_charged").textValue}),getChargePointPowerChartData:e=>t=>e.getChartData(`openWB/chargepoint/${t}/get/power`),getChargePointSetCurrent:e=>(t,o="textValue")=>{let n=e.getValueString(`openWB/chargepoint/${t}/set/current`,"A");return Object.hasOwnProperty.call(n,o)?n[o]:o=="object"?n:void 0},getChargePointPhasesInUse:e=>t=>{const o=["/","①","②","③"],n=e.topics[`openWB/chargepoint/${t}/get/phases_in_use`];return n!==void 0&&n>=0&&nt=>e.getValueBool(`openWB/chargepoint/${t}/get/plug_state`),getChargePointChargeState:e=>t=>e.getValueBool(`openWB/chargepoint/${t}/get/charge_state`),getChargePointManualLock:e=>t=>e.getValueBool(`openWB/chargepoint/${t}/set/manual_lock`),getChargepointTagState:e=>t=>[void 0,null,""].includes(e.topics[`openWB/chargepoint/${t}/set/rfid`])?[void 0,null,""].includes(e.topics[`openWB/chargepoint/${t}/get/rfid`])?0:1:2,getChargePointConnectedVehicleConfig:e=>t=>e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/config`],getChargePointConnectedVehicleChargeMode:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.translateChargeMode(e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.selected)},getChargePointConnectedVehiclePriority:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).prio},getChargePointConnectedVehicleInfo:e=>t=>e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/info`],getChargePointConnectedVehicleId:e=>t=>{if(e.getChargePointConnectedVehicleInfo(t))return e.getChargePointConnectedVehicleInfo(t).id},getChargePointConnectedVehicleChargeTemplateIndex:e=>t=>{if(e.getChargePointConnectedVehicleConfig(t))return e.getChargePointConnectedVehicleConfig(t).charge_template},getChargePointConnectedVehicleChargeTemplate:e=>t=>e.topics[`openWB/chargepoint/${t}/set/charge_template`],getChargePointConnectedVehicleEvTemplate:e=>t=>{if(e.getChargePointConnectedVehicleConfig(t))return e.getChargePointConnectedVehicleConfig(t).ev_template},getChargePointConnectedVehicleName:e=>t=>{if(e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/info`])return e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/info`].name},getChargePointConnectedVehicleSoc:e=>t=>e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/soc`],getChargePointConnectedVehicleTimeChargingActive:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).time_charging.active},getChargePointConnectedVehicleTimeChargingRunning:e=>t=>{let o=e.getChargePointConnectedVehicleConfig(t).time_charging_in_use;return o!==void 0&&o},getChargePointConnectedVehicleInstantChargingCurrent:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.instant_charging.current},getChargePointConnectedVehicleInstantChargingLimit:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.instant_charging.limit:{selected:void 0},getChargePointConnectedVehicleInstantChargingPhases:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.instant_charging.phases_to_use},getChargePointConnectedVehiclePvChargingFeedInLimit:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.feed_in_limit},getChargePointConnectedVehiclePvChargingMinCurrent:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.min_current},getChargePointConnectedVehiclePvChargingPhases:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.phases_to_use},getChargePointConnectedVehiclePvChargingLimit:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.limit:{selected:void 0},getChargePointConnectedVehiclePvChargingMinSoc:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.min_soc},getChargePointConnectedVehiclePvChargingMinSocCurrent:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.min_soc_current},getChargePointConnectedVehiclePvChargingMinSocPhases:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.phases_to_use_min_soc},getChargePointConnectedVehicleEcoChargingCurrent:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.eco_charging.current},getChargePointConnectedVehicleEcoChargingPhases:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.eco_charging.phases_to_use},getChargePointConnectedVehicleEcoChargingLimit:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.eco_charging.limit:{selected:void 0},getChargePointConnectedVehicleEcoChargingMaxPrice:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return 1e5*e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.eco_charging.max_price},getChargePointConnectedVehicleScheduledChargingPlans:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.scheduled_charging.plans:{},getChargePointConnectedVehicleTimeChargingPlans:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).time_charging.plans:{},getVehicleList:e=>e.getWildcardTopics("openWB/vehicle/+/name"),getVehicleName:e=>t=>e.topics[`openWB/vehicle/${t}/name`],getVehicleSocConfigured:e=>t=>e.topics[`openWB/vehicle/${t}/soc_module/config`].type!=null,getVehicleSocIsManual:e=>t=>e.topics[`openWB/vehicle/${t}/soc_module/config`].type=="manual",getVehicleFaultState:e=>t=>e.topics[`openWB/vehicle/${t}/get/fault_state`]?e.topics[`openWB/vehicle/${t}/get/fault_state`]:0,getSystemTime(e){if(e.topics["openWB/system/time"])return new Date(1e3*e.topics["openWB/system/time"]).toLocaleString()},getSystemIp:e=>e.settings.localIp!==void 0?e.settings.localIp:e.topics["openWB/system/ip_address"]?e.topics["openWB/system/ip_address"]:void 0,getSystemVersion:e=>e.settings.localVersion!==void 0?e.settings.localVersion:e.topics["openWB/system/version"]?e.topics["openWB/system/version"]:void 0,getSystemBranch:e=>e.settings.localBranch!==void 0?e.settings.localBranch:e.topics["openWB/system/current_branch"]?e.topics["openWB/system/current_branch"]:void 0,getSystemCurrentCommit:e=>e.settings.localCommit!==void 0?e.settings.localCommit:e.topics["openWB/system/current_commit"]?e.topics["openWB/system/current_commit"]:void 0,getRfidEnabled(){return this.getValueBool("openWB/optional/rfid/active")},getEtConfigured:e=>e.topics["openWB/optional/et/provider"]!==void 0&&e.topics["openWB/optional/et/provider"].type!==null,getEtPrices:e=>e.topics["openWB/optional/et/get/prices"]},actions:{updateSetting(e,t){e in this.settings&&(this.settings[e]=t)},initTopic(e,t=void 0){e.includes("#")||e.includes("+")||this.addTopic(e,t)},addTopic(e,t){this.topics[e]=t},removeTopic(e){e.includes("#")||e.includes("+")?Object.keys(this.getWildcardTopics(e)).forEach(t=>{delete this.topics[t]}):delete this.topics[e]},updateTopic(e,t,o=void 0){return e in this.topics?(o!=null?(n=this.topics[e],i=t,(a=o).split(".").reduce((r,l,g)=>r[l]=a.split(".").length===++g?i:r[l]||{},n)):this.topics[e]=t,this.topics[e]):void 0;var n,a,i},updateChartData(){for(const[e,t]of Object.entries(this.topics))(e.endsWith("home_consumption")||e.endsWith("power")||e.endsWith("soc"))&&(this.chartData[e]===void 0&&(this.chartData[e]=[]),t!=null&&(this.chartData[e].push(t),this.chartData[e].slice(-128)))},updateState(e,t,o=void 0){return this.updateTopic(e,t,o)},chargeModeList(){var e=[{id:"instant_charging"},{id:"pv_charging"},{id:"scheduled_charging"},{id:"eco_charging"},{id:"stop"}];return e.forEach(t=>{t.label=this.translateChargeMode(t.id).label,t.class=this.translateChargeMode(t.id).class}),e},translateChargeMode(e){switch(e){case"instant_charging":return{mode:e,label:"Sofort",class:"danger"};case"pv_charging":return{mode:e,label:"PV",class:"success"};case"scheduled_charging":return{mode:e,label:"Ziel",class:"primary"};case"time_charging":return{mode:e,label:"Zeit",class:"warning"};case"eco_charging":return{mode:e,label:"Eco",class:"secondary"};case"stop":return{mode:e,label:"Stop",class:"dark"};default:return{mode:e,label:e,class:e}}},checkChangesLockCode(e){return!(!this.getThemeConfiguration||this.getThemeConfiguration.lock_changes_code!=e)},formatDate:(e,t={year:"numeric",month:"2-digit",day:"2-digit"})=>new Date(e).toLocaleDateString(void 0,t),formatDateRange(e,t="-"){const o={year:"numeric",month:"2-digit",day:"2-digit"};let n={day:"2-digit"};const a=new Date(e[0]),i=new Date(e[1]);return a.getFullYear()==i.getFullYear()?(t=`.${t}`,a.getMonth()!=i.getMonth()&&(n.month=o.month)):n=o,`${this.formatDate(e[0],n)}${t}${this.formatDate(e[1],o)}`},formatWeeklyScheduleDays(e){const t=["Mo","Di","Mi","Do","Fr","Sa","So"];let o=[],n=null;return e.forEach((a,i)=>{a?n===null&&(n=i):n!==null&&(n===i-1?o.push(t[n]):o.push(`${t[n]}-${t[i-1]}`),n=null)}),n!==null&&(n===e.length-1?o.push(t[n]):o.push(`${t[n]}-${t[e.length-1]}`)),o.join(", ")}}}),ee=b({name:"NavBar",components:{NavItem:b({name:"NavItem",props:{to:{type:Object,required:!0}}},[["render",function(e,t,o,n,a,i){const r=h("i-nav-item");return p(),C(r,{to:o.to,"active-class":"-active",class:"_border _border-color:primary _text-align:center"},{default:c(()=>[V(e.$slots,"default",{},void 0,!0)]),_:3},8,["to"])}],["__scopeId","data-v-1db6ae73"]])},data:()=>({mqttStore:B()})},[["render",function(e,t,o,n,a,i){const r=h("nav-item"),l=h("i-nav");return p(),C(l,{vertical:"",class:"_align-items:stretch",size:"lg"},{default:c(()=>[a.mqttStore.getDashboardEnabled?(p(),C(r,{key:0,to:{name:"dashboard"}},{default:c(()=>t[0]||(t[0]=[f(" Übersicht ",-1)])),_:1,__:[0]})):w("",!0),a.mqttStore.getEnergyFlowEnabled?(p(),C(r,{key:1,to:{name:"energy-flow"}},{default:c(()=>t[1]||(t[1]=[f(" Energiefluss ",-1)])),_:1,__:[1]})):w("",!0),a.mqttStore.getChargePointsEnabled&&a.mqttStore.getChargePointIds.length>0?(p(),C(r,{key:2,to:{name:"charge-points"}},{default:c(()=>t[2]||(t[2]=[f(" Ladepunkte ",-1)])),_:1,__:[2]})):w("",!0),a.mqttStore.getStateEnabled?(p(),C(r,{key:3,to:{name:"status"}},{default:c(()=>t[3]||(t[3]=[f(" Status ",-1)])),_:1,__:[3]})):w("",!0)]),_:1})}]]);$.add(L,q);const te=b({name:"NumberPad",components:{FontAwesomeIcon:O},emits:["key:digit","key:clear","key:delete"],data:()=>({buttonRows:[[{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"}],[{value:4,label:"4"},{value:5,label:"5"},{value:6,label:"6"}],[{value:7,label:"7"},{value:8,label:"8"},{value:9,label:"9"}]]}),methods:{emitDigit(e){this.$emit("key:digit",e)},emitClear(){this.$emit("key:clear")},emitDelete(){this.$emit("key:delete")}}},[["render",function(e,t,o,n,a,i){const r=h("i-button"),l=h("i-column"),g=h("i-row"),d=h("FontAwesomeIcon"),m=h("i-container");return p(),C(m,null,{default:c(()=>[(p(!0),P(S,null,D(a.buttonRows,u=>(p(),C(g,{key:u,center:"",class:"_padding-bottom:1"},{default:c(()=>[(p(!0),P(S,null,D(u,_=>(p(),C(l,{key:_.value,class:"pin-button-column"},{default:c(()=>[s(r,{size:"lg",class:"pin-button",onClick:v=>i.emitDigit(_.value)},{default:c(()=>[f(k(_.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:2},1024))),128)),s(g,{center:""},{default:c(()=>[s(l,{class:"pin-button-column"},{default:c(()=>[s(r,{size:"lg",class:"pin-button",onClick:t[0]||(t[0]=u=>i.emitClear())},{default:c(()=>[s(d,{"fixed-width":"",icon:["fas","fa-eraser"]})]),_:1})]),_:1}),s(l,{class:"pin-button-column"},{default:c(()=>[s(r,{size:"lg",class:"pin-button",onClick:t[1]||(t[1]=u=>i.emitDigit("0"))},{default:c(()=>t[3]||(t[3]=[f(" 0 ",-1)])),_:1,__:[3]})]),_:1}),s(l,{class:"pin-button-column"},{default:c(()=>[s(r,{size:"lg",class:"pin-button",onClick:t[2]||(t[2]=u=>i.emitDelete())},{default:c(()=>[s(d,{"fixed-width":"",icon:["fas","fa-delete-left"]})]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-4e2103db"]]),oe=b({name:"CodeInputModal",components:{NumberPad:te},props:{modelValue:{type:Boolean,required:!0},backgroundColor:{type:String,default:"warning"},placeholderCharacter:{type:String,default:"*",validator:e=>e.length==1},inputVisible:{type:Boolean,default:!1},minLength:{type:Number,default:4},maxLength:{type:Number,default:4}},emits:["update:modelValue","update:inputValue"],data(){return{number:"",modalBackground:this.backgroundColor}},computed:{placeholder(){return this.placeholderCharacter.repeat(this.minLength)},enableSubmit(){return this.number.length>=this.minLength&&this.number.length<=this.maxLength}},watch:{modelValue(e,t){e===!1&&t===!0&&this.clear()}},methods:{abort(){this.$emit("update:modelValue",!1)},addDigit(e){this.number.length{this.$emit("update:modelValue",!1),this.modalBackground=this.backgroundColor},500)},error(e="danger"){this.modalBackground=e,setTimeout(()=>{this.clear(),this.modalBackground=this.backgroundColor},2e3)}}},[["render",function(e,t,o,n,a,i){const r=h("i-input"),l=h("i-column"),g=h("i-row"),d=h("NumberPad"),m=h("i-container"),u=h("i-button"),_=h("i-modal");return p(),C(E,{to:"body"},[s(_,{"model-value":o.modelValue,color:a.modalBackground,"onUpdate:modelValue":t[4]||(t[4]=v=>e.$emit("update:modelValue",v))},{header:c(()=>[V(e.$slots,"header",{},()=>[t[5]||(t[5]=f(" **HEADER** ",-1))])]),footer:c(()=>[s(m,null,{default:c(()=>[s(g,null,{default:c(()=>[s(l,null,{default:c(()=>[s(u,{color:"danger",onClick:i.abort},{default:c(()=>[V(e.$slots,"abort",{},()=>[t[6]||(t[6]=f(" Zurück ",-1))])]),_:3},8,["onClick"])]),_:3}),s(l,{class:"_text-align:right"},{default:c(()=>[i.enableSubmit?(p(),C(u,{key:0,color:"success",onClick:i.submit},{default:c(()=>[V(e.$slots,"submit",{},()=>[t[7]||(t[7]=f(" OK ",-1))])]),_:3},8,["onClick"])):w("",!0)]),_:3})]),_:3})]),_:3})]),default:c(()=>[s(m,null,{default:c(()=>[s(g,{center:"",class:"_padding-bottom:1"},{default:c(()=>[s(l,null,{default:c(()=>[s(r,{modelValue:a.number,"onUpdate:modelValue":t[0]||(t[0]=v=>a.number=v),placeholder:i.placeholder,readonly:"",size:"lg",type:o.inputVisible?"text":"password",class:"_text-align:center"},null,8,["modelValue","placeholder","type"])]),_:1})]),_:1}),s(d,{"onKey:digit":t[1]||(t[1]=v=>i.addDigit(v)),"onKey:clear":t[2]||(t[2]=v=>i.clear()),"onKey:delete":t[3]||(t[3]=v=>i.removeDigit(v))})]),_:1})]),_:3},8,["model-value","color"])])}]]);$.add(Z,Q,L,q);const ne={key:0,class:"_padding-left:1"},x="/openWB/web/display/themes/cards/openWB_logo_dark.png",ie=b({name:"OpenwbDisplayCardsApp",components:{RouterView:H,DateTime:X,NavBar:ee,LockNavItem:b({name:"LockNavItem",components:{FontAwesomeIcon:O,CodeInputModal:oe},props:{},data:()=>({mqttStore:B(),modalPinEntryVisible:!1,modalPinEntryColor:"warning",code:"",countdown:0,countdownInterval:void 0,events:["mousemove","touchmove","wheel","click"]}),computed:{changesLocked:{get(){return this.mqttStore.settings.changesLocked},set(e){this.mqttStore.settings.changesLocked=e}},timer(){return Math.trunc(this.countdown/60).toString()+":"+(this.countdown%60).toString().padStart(2,"0")}},mounted(){this.changesLocked=!0},methods:{toggleChangesLock(){this.changesLocked?this.unlockChanges():this.lockChanges()},unlockChanges(){this.modalPinEntryVisible=!0},checkUnlockCode(e){this.mqttStore.checkChangesLockCode(e)?(this.$refs.lockInput.success("success"),this.changesLocked=!1,this.mqttStore.getDisplayStandby>0&&(this.countdown=this.mqttStore.getDisplayStandby,this.countdownInterval=setInterval(this.updateCountdown,1e3),this.events.forEach(t=>{document.addEventListener(t,this.handleDocumentEvent,{passive:!0})}))):this.$refs.lockInput.error("danger")},lockChanges(){this.changesLocked=!0,this.events.forEach(e=>{document.removeEventListener(e,this.handleDocumentEvent,{passive:!0})}),this.countdownInterval!==void 0&&(clearInterval(this.countdownInterval),this.countdownInterval=void 0)},updateCountdown(){this.countdown-=1,this.countdown<1&&this.lockChanges()},handleDocumentEvent(){this.countdown=this.mqttStore.getDisplayStandby}}},[["render",function(e,t,o,n,a,i){const r=h("FontAwesomeIcon"),l=h("i-button"),g=h("CodeInputModal");return p(),P(S,null,[a.mqttStore.getLockChanges?(p(),C(l,{key:0,class:"_padding-left:0 _padding-right:0 _margin-bottom:1",size:"lg",block:"",color:i.changesLocked?"danger":"success",onClick:t[0]||(t[0]=d=>i.toggleChangesLock())},{default:c(()=>[s(r,{"fixed-width":"",icon:i.changesLocked?["fas","fa-lock"]:["fas","fa-lock-open"],class:A(i.changesLocked?"_color:danger-80":"_color:success-80")},null,8,["icon","class"]),!i.changesLocked&&a.countdownInterval?(p(),P("span",ne,k(i.timer),1)):w("",!0)]),_:1},8,["color"])):w("",!0),s(g,{ref:"lockInput",modelValue:a.modalPinEntryVisible,"onUpdate:modelValue":t[1]||(t[1]=d=>a.modalPinEntryVisible=d),"min-length":4,"max-length":10,"onUpdate:inputValue":i.checkUnlockCode},{header:c(()=>t[2]||(t[2]=[f(" Bitte den PIN zur Freigabe von Änderungen eingeben. ",-1)])),_:1},8,["modelValue","onUpdate:inputValue"])],64)}]]),TouchBlocker:b({name:"TouchBlocker",data:()=>({mqttStore:B(),show:!1,touchBlockerCountdown:void 0,touchBlockerCountdownInterval:void 0,defaultViewCountdown:void 0,defaultViewCountdownInterval:void 0,events:["mousemove","touchmove","wheel","click"],eventHandlerSetup:!1}),computed:{configuredDisplayStandby(){if(this.mqttStore.getDisplayStandby!==0&&this.mqttStore.getDisplayStandby!==void 0)return this.mqttStore.getDisplayStandby},configuredDefaultViewTimeout(){if(this.mqttStore.getDefaultViewTimeout!==0&&this.mqttStore.getDefaultViewTimeout!==void 0)return this.mqttStore.getDefaultViewTimeout},touchBlockerTimeout(){return Math.max(this.configuredDisplayStandby-3,1)},defaultViewTimeout(){return this.configuredDefaultViewTimeout}},mounted(){this.setupEventHandler(),this.setupTouchBlockerTimeout(),this.setupDefaultViewTimeout()},unmounted(){this.clearEventHandler(),this.clearTouchBlockerTimeout(),this.clearDefaultViewTimeout()},methods:{handleTouchBlockerClick(e){e===!1&&(this.show=!1,this.setupEventHandler(),this.setupTouchBlockerTimeout(),this.setupDefaultViewTimeout())},setupEventHandler(){this.eventHandlerSetup||(this.events.forEach(e=>{document.addEventListener(e,this.handleDocumentEvent,{passive:!0})}),this.eventHandlerSetup=!0)},clearEventHandler(){this.eventHandlerSetup&&(this.events.forEach(e=>{document.removeEventListener(e,this.handleDocumentEvent,{passive:!0})}),this.eventHandlerSetup=!1)},setupTouchBlockerTimeout(){this.touchBlockerCountdownCountdownInterval===void 0&&(this.touchBlockerCountdownCountdownInterval=setInterval(this.updateTouchBlockerCountdown,1e3))},clearTouchBlockerTimeout(){this.touchBlockerCountdownCountdownInterval!==void 0&&(clearInterval(this.touchBlockerCountdownCountdownInterval),this.touchBlockerCountdownCountdownInterval=void 0)},updateTouchBlockerCountdown(){this.touchBlockerCountdown===void 0?this.touchBlockerCountdown=this.touchBlockerTimeout:(this.touchBlockerCountdown-=1,this.touchBlockerCountdown<1&&this.showTouchBlocker())},setupDefaultViewTimeout(){this.defaultViewCountdownInterval===void 0&&this.mqttStore.getDefaultView!==this.$route.name&&this.defaultViewTimeout!==void 0&&(this.defaultViewCountdownInterval=setInterval(this.updateDefaultViewCountdown,1e3))},clearDefaultViewTimeout(){this.defaultViewCountdownInterval!==void 0&&(clearInterval(this.defaultViewCountdownInterval),this.defaultViewCountdownInterval=void 0)},updateDefaultViewCountdown(){this.defaultViewCountdown===void 0&&this.defaultViewTimeout!==void 0?this.defaultViewCountdown=this.defaultViewTimeout:this.$route.name===this.mqttStore.getDefaultView?this.clearDefaultViewTimeout():(this.defaultViewCountdown-=1,this.defaultViewCountdown<1&&this.showDefaultView())},handleDocumentEvent(){this.touchBlockerCountdown=this.touchBlockerTimeout,this.defaultViewCountdown=this.defaultViewTimeout,this.setupDefaultViewTimeout(),this.show=!1},showTouchBlocker(){this.show=!0,this.clearTouchBlockerTimeout()},showDefaultView(){this.clearDefaultViewTimeout(),this.$route.name!==this.mqttStore.getDefaultView&&this.$router.push({name:this.mqttStore.getDefaultView})}}},[["render",function(e,t,o,n,a,i){const r=h("IModal");return p(),C(E,{to:"body"},[s(r,{class:"touch-blocker",size:"sm",color:"dark","model-value":a.show,"onUpdate:modelValue":t[0]||(t[0]=l=>i.handleTouchBlockerClick(l))},{default:c(()=>t[1]||(t[1]=[W("img",{class:"logo",src:x},null,-1),W("p",null," Bitte das Display berühren. ",-1)])),_:1,__:[1]},8,["model-value"])])}],["__scopeId","data-v-2d58d6dd"]])},data:()=>({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},mqttTopicsToSubscribe:["openWB/bat/config/configured","openWB/bat/get/power","openWB/bat/get/soc","openWB/chargepoint/+/config","openWB/chargepoint/+/get/charge_state","openWB/chargepoint/+/get/connected_vehicle/+","openWB/chargepoint/+/set/charge_template","openWB/chargepoint/+/set/charge_template/chargemode/scheduled_charging/plans/+","openWB/chargepoint/+/set/charge_template/time_charging/plans/+","openWB/chargepoint/+/get/phases_in_use","openWB/chargepoint/+/get/plug_state","openWB/chargepoint/+/get/power","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/set/current","openWB/chargepoint/+/set/manual_lock","openWB/chargepoint/+/set/log","openWB/chargepoint/+/set/rfid","openWB/chargepoint/get/power","openWB/counter/+/get/power","openWB/counter/get/hierarchy","openWB/counter/set/home_consumption","openWB/optional/et/provider","openWB/optional/et/get/prices","openWB/optional/int_display/theme","openWB/optional/int_display/standby","openWB/optional/rfid/active","openWB/pv/config/configured","openWB/pv/get/power","openWB/system/current_branch","openWB/system/current_commit","openWB/system/ip_address","openWB/system/time","openWB/system/version","openWB/vehicle/+/get/fault_state","openWB/vehicle/+/name","openWB/vehicle/+/soc_module/config"],mqttStore:B(),chartInterval:"",clearConsoleHandler:void 0}),computed:{changesLocked(){return this.mqttStore.getLockChanges&&this.mqttStore.settings.changesLocked}},created(){this.createConnection()},mounted(){let e=window.location.search;if(e!=""){let n=new URLSearchParams(e);if(n.has("data")){let a=JSON.parse(n.get("data"));Object.entries(a).forEach(([i,r])=>{i.startsWith("parentChargePoint")?this.mqttStore.updateSetting(i,parseInt(r)):this.mqttStore.updateSetting(i,r)})}}this.doSubscribe(this.mqttTopicsToSubscribe),this.chartInterval=setInterval(this.mqttStore.updateChartData,5e3);const t=new Date,o=new Date(t.getFullYear(),t.getMonth(),t.getDate()+1,0,0,0,0).getTime()-t.getTime();this.clearConsoleHandler=setTimeout(()=>this.clearConsole(),o)},beforeUnmount(){this.doUnsubscribe(this.mqttTopicsToSubscribe),clearInterval(this.chartInterval),clearTimeout(this.clearConsoleHandler)},methods:{clearConsole(){this.clearConsoleHandler=setTimeout(()=>this.clearConsole(),864e5)},createConnection(){const{protocol:e,host:t,port:o,endpoint:n,...a}=this.connection,i=`${e}://${t}:${o}${n}`;try{this.client=R.connect(i,a)}catch{}this.client.on("connect",()=>{}),this.client.on("error",r=>{}),this.client.on("message",(r,l)=>{if(l.toString().length>0){let g;try{g=JSON.parse(l.toString())}catch{g=l.toString()}this.mqttStore.addTopic(r,g)}else this.mqttStore.removeTopic(r)})},doSubscribe(e){e.forEach(t=>{this.mqttStore.initTopic(t)}),this.client.subscribe(e,{},t=>{})},doUnsubscribe(e){e.forEach(t=>{this.mqttStore.removeTopic(t)}),this.client.unsubscribe(e,t=>{})},doPublish(e,t,o=!0,n=2){let a={qos:n,retain:o};this.client.publish(e,JSON.stringify(t),a,i=>{})},sendTopicToBroker(e,t=void 0){let o=e.replace("openWB/","openWB/set/");t===void 0&&(t=this.mqttStore.topics[e]),this.doPublish(o,t)},sendCommand(e){this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},sendSystemCommand(e,t={}){this.sendCommand({command:e,data:t})}}},[["render",function(e,t,o,n,a,i){const r=h("DateTime"),l=h("i-column"),g=h("i-row"),d=h("i-container"),m=h("LockNavItem"),u=h("NavBar"),_=h("TouchBlocker"),v=h("i-layout-aside"),j=h("RouterView"),M=h("i-layout-content"),N=h("i-layout");return p(),C(N,{vertical:""},{default:c(()=>[s(v,{class:"_position:fixed"},{default:c(()=>[s(d,{fluid:"",class:"_margin-bottom:1"},{default:c(()=>[s(g,{center:""},{default:c(()=>[s(l,null,{default:c(()=>[s(r)]),_:1})]),_:1})]),_:1}),s(m),s(u,{"changes-locked":i.changesLocked},null,8,["changes-locked"]),s(_)]),_:1}),s(M,null,{default:c(()=>[s(j,{"changes-locked":i.changesLocked},null,8,["changes-locked"])]),_:1})]),_:1})}],["__scopeId","data-v-6f8bc44f"]]),I={},T=function(e,t,o){let n=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),r=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));n=Promise.allSettled(t.map(l=>{if((l=function(u){return"/openWB/web/display/themes/cards/"+u}(l))in I)return;I[l]=!0;const g=l.endsWith(".css"),d=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const m=document.createElement("link");return m.rel=g?"stylesheet":"modulepreload",g||(m.as="script"),m.crossOrigin="",m.href=l,r&&m.setAttribute("nonce",r),document.head.appendChild(m),g?new Promise((u,_)=>{m.addEventListener("load",u),m.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${l}`)))}):void 0}))}function a(i){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=i,window.dispatchEvent(r),!r.defaultPrevented)throw i}return n.then(i=>{for(const r of i||[])r.status==="rejected"&&a(r.reason);return e().catch(a)})},ae=b({name:"WelcomeView",data:()=>({mqttStore:B()}),mounted(){setTimeout(this.selectFirstRoute,3e3)},methods:{selectFirstRoute(){this.mqttStore.getDefaultView&&this.$router.push({name:this.mqttStore.getDefaultView})}}},[["render",function(e,t,o,n,a,i){const r=h("i-card"),l=h("i-column"),g=h("i-row"),d=h("i-container");return p(),C(d,null,{default:c(()=>[s(g,{center:"",middle:""},{default:c(()=>[s(l,null,{default:c(()=>[s(r,{color:"primary"},{header:c(()=>t[0]||(t[0]=[f(" Cards Theme ",-1)])),default:c(()=>[t[1]||(t[1]=W("img",{class:"logo",src:x},null,-1))]),_:1,__:[1]})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-e364c277"]]),re=U({history:z("/openWB/web/display/themes/cards/"),routes:[{path:"/",name:"welcome",component:ae},{path:"/Dashboard",name:"dashboard",component:()=>T(()=>import("./DashboardView-B6dYjK9c.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))},{path:"/EnergyFlow",name:"energy-flow",component:()=>T(()=>import("./EnergyFlowView-Bg4DjJvn.js"),__vite__mapDeps([10,1,2,3,4,5,11,12,7,13]))},{path:"/ChargePoints",name:"charge-points",component:()=>T(()=>import("./ChargePointsView-_6Oh_6vw.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,11,12,15]))},{path:"/Status",name:"status",component:()=>T(()=>import("./StatusView-UQkd1DRR.js"),__vite__mapDeps([16,7,3,2,4,1,5]))}]}),y=G(ie);y.use(K()),y.use(re),y.use(J,{colorMode:"dark",components:Y}),y.mount("#app");export{oe as C,te as N,B as u}; diff --git a/packages/modules/display_themes/cards/web/assets/index-Rkba6Ib0.js b/packages/modules/display_themes/cards/web/assets/index-Rkba6Ib0.js deleted file mode 100644 index 52e64ccc45..0000000000 --- a/packages/modules/display_themes/cards/web/assets/index-Rkba6Ib0.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardView-D6rYO19_.js","assets/DashboardCard-DS7AgUYm.js","assets/vendor-inkline-S9CBmrTS.js","assets/vendor-Bzn5cd2Y.js","assets/vendor-inkline-BxOXWZNy.css","assets/DashboardCard-Cy_vzq6d.css","assets/ChargePointPlugBadge-Cea5-sTy.js","assets/vendor-fortawesome-C1Wk2aFl.js","assets/ChargePointPlugBadge-HWp2u3dG.css","assets/DashboardView-BYiJMWFT.css","assets/EnergyFlowView-CtSxCBuI.js","assets/ChargeModeModal-D_G7wsgY.js","assets/ChargeModeModal-CGs_z8ao.css","assets/EnergyFlowView-BOyDZ-Ju.css","assets/ChargePointsView-Dcp__6hw.js","assets/ChargePointsView-CWQMPYO-.css","assets/StatusView--LrW5-ZS.js"])))=>i.map(i=>d[i]); -import{e as P,k as f,j as V,x as k,F as S,o as p,i as W,H as F,l as C,q as c,p as h,f as w,s,A as D,I as E,z as A,R as H,J as R,K as U,L as z,M as G,N as K}from"./vendor-Bzn5cd2Y.js";import{_ as b,I as J,c as Y}from"./vendor-inkline-S9CBmrTS.js";import{l as $,f as L,a as q,F as O,b as Z,c as Q}from"./vendor-fortawesome-C1Wk2aFl.js";(function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const o of document.querySelectorAll('link[rel="modulepreload"]'))t(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&t(a)}).observe(document,{childList:!0,subtree:!0})}function t(o){if(o.ep)return;o.ep=!0;const n=function(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}(o);fetch(o.href,n)}})();const X=b({name:"DateTime",data:()=>({dateTimeInterval:"",date:"",time:""}),mounted(){this.update(),this.dateTimeInterval=setInterval(this.update,1e3)},beforeUnmount(){clearInterval(this.dateTimeInterval)},methods:{update(){const e=new Date;this.date=e.toLocaleDateString(void 0,{weekday:"short",year:"numeric",month:"2-digit",day:"2-digit"}),this.time=e.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}}},[["render",function(e,t,o,n,a,i){return p(),P(S,null,[f(k(a.time),1),V(e.$slots,"default",{},()=>[t[0]||(t[0]=W("br",null,null,-1))]),f(k(a.date),1)],64)}]]),B=F("mqtt",{state:()=>({settings:{localIp:void 0,localBranch:void 0,localCommit:void 0,localVersion:void 0,parentChargePoint1:void 0,parentChargePoint2:void 0},topics:{},chartData:{}}),getters:{getChargePointFilter:e=>{let t=[];return e.settings.parentChargePoint1!==void 0&&t.push(e.settings.parentChargePoint1),e.settings.parentChargePoint2!==void 0&&t.push(e.settings.parentChargePoint2),t},getWildcardIndexList:e=>(t,o=!1)=>{let n=t;o||(n="^"+t.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let a=Object.keys(e.topics).filter(i=>i.match(n));return a.forEach((i,r,l)=>{l[r]=parseInt(i.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),a},getWildcardTopics:e=>(t,o=!1)=>{let n=t;return o||(n="^"+t.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(e.topics).filter(a=>a.match(n)).reduce((a,i)=>({...a,[i]:e.topics[i]}),{})},getObjectIds:e=>t=>function o(n){let a=[];return n!==void 0&&n.forEach(i=>{i.type==t&&a.push(i.id),a=[...a,...o(i.children)]}),a}(e.topics["openWB/counter/get/hierarchy"]),getValueBool:e=>(t,o=!1)=>{let n=e.topics[t];return n!==void 0?n:o},getValueString:e=>(t,o="W",n="",a=!0,i=!1,r="---",l=void 0)=>{var g=!1,d=e.topics[t];if(d===void 0||l!==void 0&&d[l]===void 0)m=r;else{l!==void 0&&(d=d[l]),i&&(d*=-1);for(var m=d.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0}),u=d;a&&(u>999||u<-999);)switch(u/=1e3,g=!0,n){case"":n="k";break;case"k":n="M";break;case"M":n="G"}m=u.toLocaleString(void 0,{minimumFractionDigits:g?2:0,maximumFractionDigits:g?2:0})}return{textValue:`${m} ${n}${o}`,value:d,unit:o,scaledValue:u,scaledUnit:`${n}${o}`}},getChartData:e=>t=>e.chartData[t]===void 0?[]:e.chartData[t],getDisplayStandby:e=>e.topics["openWB/optional/int_display/standby"],getThemeConfiguration:e=>{if("openWB/optional/int_display/theme"in e.topics&&e.topics["openWB/optional/int_display/theme"]!==void 0&&"configuration"in e.topics["openWB/optional/int_display/theme"])return e.topics["openWB/optional/int_display/theme"].configuration},getDefaultView:e=>{if(e.getThemeConfiguration){const t={dashboard:e.getThemeConfiguration.enable_dashboard_view,"energy-flow":e.getThemeConfiguration.enable_energy_flow_view,"charge-points":e.getThemeConfiguration.enable_charge_points_view,status:e.getThemeConfiguration.enable_status_view};if(e.getThemeConfiguration.default_view!==void 0&&t[e.getThemeConfiguration.default_view]===!0)return e.getThemeConfiguration.default_view;for(const[o,n]of Object.entries(t))if(n)return o}},getDefaultViewTimeout:e=>e.getThemeConfiguration?e.getThemeConfiguration.default_view_timeout:0,getDashboardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_view,getEnergyFlowEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_energy_flow_view,getChargePointsEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_charge_points_view,getStateEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_status_view,getGridCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_grid,getHomeCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_home_consumption,getBatteryCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_battery_sum,getChargePointsCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_charge_point_sum,getPvCardEnabled:e=>!e.getThemeConfiguration||e.getThemeConfiguration.enable_dashboard_card_inverter_sum,getLockChanges:e=>!e.getThemeConfiguration||e.getThemeConfiguration.lock_changes,getSimpleChargePointView:e=>!!e.getThemeConfiguration&&e.getThemeConfiguration.simple_charge_point_view,getGridId(e){let t=e.topics["openWB/counter/get/hierarchy"];if(t!==void 0&&Object.keys(t).length>0){let o=Object.keys(e.topics["openWB/counter/get/hierarchy"])[0];if(e.topics["openWB/counter/get/hierarchy"][o].type=="counter")return e.topics["openWB/counter/get/hierarchy"][o].id}},getGridPower:e=>(t="textValue")=>{let o=e.getGridId;if(o===void 0)return"---";let n=e.getValueString(`openWB/counter/${o}/get/power`,"W");return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getGridPowerChartData(e){let t=e.getGridId;return t===void 0?[]:e.getChartData(`openWB/counter/${t}/get/power`)},getHomePower:e=>(t="textValue")=>{let o=e.getValueString("openWB/counter/set/home_consumption","W");return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getHomePowerChartData:e=>e.getChartData("openWB/counter/set/home_consumption"),getBatteryConfigured:e=>e.getValueBool("openWB/bat/config/configured"),getBatteryPower:e=>(t="textValue")=>{let o=e.getValueString("openWB/bat/get/power","W");return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getBatteryPowerChartData:e=>e.getChartData("openWB/bat/get/power"),getBatterySoc:e=>(t="textValue")=>{let o=e.getValueString("openWB/bat/get/soc","%","",!1);return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getBatterySocChartData:e=>e.getChartData("openWB/bat/get/soc"),getPvConfigured:e=>e.getValueBool("openWB/pv/config/configured"),getPvPower:e=>(t="textValue")=>{var o=e.getValueString("openWB/pv/get/power","W","",!0,!0);return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getPvPowerChartData:e=>e.getChartData("openWB/pv/get/power").map(t=>-1*t),getChargePointSumPower:e=>(t="textValue")=>{var o=e.getValueString("openWB/chargepoint/get/power","W");return Object.hasOwnProperty.call(o,t)?o[t]:t=="object"?o:void 0},getChargePointSumPowerChartData:e=>e.getChartData("openWB/chargepoint/get/power"),getChargePointIds(e){let t=e.getObjectIds("cp"),o=this.getChargePointFilter;return o.length>0?t.filter(n=>o.includes(n)):t},getChargePointName:e=>t=>e.topics[`openWB/chargepoint/${t}/config`]!==void 0?e.topics[`openWB/chargepoint/${t}/config`].name:"---",getChargePointPower:e=>(t,o="textValue")=>{var n=e.getValueString(`openWB/chargepoint/${t}/get/power`,"W");return Object.hasOwnProperty.call(n,o)?n[o]:o=="object"?n:void 0},getChargePointImportedSincePlugged:e=>t=>({energy:e.getValueString(`openWB/chargepoint/${t}/set/log`,"Wh","",!0,!1,"---","imported_since_plugged").textValue,range:e.getValueString(`openWB/chargepoint/${t}/set/log`,"m","k",!1,!1,"---","range_charged").textValue}),getChargePointPowerChartData:e=>t=>e.getChartData(`openWB/chargepoint/${t}/get/power`),getChargePointSetCurrent:e=>(t,o="textValue")=>{let n=e.getValueString(`openWB/chargepoint/${t}/set/current`,"A");return Object.hasOwnProperty.call(n,o)?n[o]:o=="object"?n:void 0},getChargePointPhasesInUse:e=>t=>{const o=["/","①","②","③"],n=e.topics[`openWB/chargepoint/${t}/get/phases_in_use`];return n!==void 0&&n>=0&&nt=>e.getValueBool(`openWB/chargepoint/${t}/get/plug_state`),getChargePointChargeState:e=>t=>e.getValueBool(`openWB/chargepoint/${t}/get/charge_state`),getChargePointManualLock:e=>t=>e.getValueBool(`openWB/chargepoint/${t}/set/manual_lock`),getChargepointTagState:e=>t=>[void 0,null,""].includes(e.topics[`openWB/chargepoint/${t}/set/rfid`])?[void 0,null,""].includes(e.topics[`openWB/chargepoint/${t}/get/rfid`])?0:1:2,getChargePointConnectedVehicleConfig:e=>t=>e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/config`],getChargePointConnectedVehicleChargeMode:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.translateChargeMode(e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.selected)},getChargePointConnectedVehiclePriority:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).prio},getChargePointConnectedVehicleInfo:e=>t=>e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/info`],getChargePointConnectedVehicleId:e=>t=>{if(e.getChargePointConnectedVehicleInfo(t))return e.getChargePointConnectedVehicleInfo(t).id},getChargePointConnectedVehicleChargeTemplateIndex:e=>t=>{if(e.getChargePointConnectedVehicleConfig(t))return e.getChargePointConnectedVehicleConfig(t).charge_template},getChargePointConnectedVehicleChargeTemplate:e=>t=>e.topics[`openWB/chargepoint/${t}/set/charge_template`],getChargePointConnectedVehicleEvTemplate:e=>t=>{if(e.getChargePointConnectedVehicleConfig(t))return e.getChargePointConnectedVehicleConfig(t).ev_template},getChargePointConnectedVehicleName:e=>t=>{if(e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/info`])return e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/info`].name},getChargePointConnectedVehicleSoc:e=>t=>e.topics[`openWB/chargepoint/${t}/get/connected_vehicle/soc`],getChargePointConnectedVehicleTimeChargingActive:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).time_charging.active},getChargePointConnectedVehicleTimeChargingRunning:e=>t=>{let o=e.getChargePointConnectedVehicleConfig(t).time_charging_in_use;return o!==void 0&&o},getChargePointConnectedVehicleInstantChargingCurrent:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.instant_charging.current},getChargePointConnectedVehicleInstantChargingLimit:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.instant_charging.limit:{selected:void 0},getChargePointConnectedVehicleInstantChargingPhases:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.instant_charging.phases_to_use},getChargePointConnectedVehiclePvChargingFeedInLimit:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.feed_in_limit},getChargePointConnectedVehiclePvChargingMinCurrent:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.min_current},getChargePointConnectedVehiclePvChargingPhases:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.phases_to_use},getChargePointConnectedVehiclePvChargingLimit:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.limit:{selected:void 0},getChargePointConnectedVehiclePvChargingMinSoc:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.min_soc},getChargePointConnectedVehiclePvChargingMinSocCurrent:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.min_soc_current},getChargePointConnectedVehiclePvChargingMinSocPhases:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.phases_to_use_min_soc},getChargePointConnectedVehicleEcoChargingCurrent:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.eco_charging.current},getChargePointConnectedVehicleEcoChargingPhases:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.eco_charging.phases_to_use},getChargePointConnectedVehicleEcoChargingLimit:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.eco_charging.limit:{selected:void 0},getChargePointConnectedVehicleEcoChargingMaxPrice:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return 1e5*e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.eco_charging.max_price},getChargePointConnectedVehicleScheduledChargingPlans:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.scheduled_charging.plans:{},getChargePointConnectedVehicleTimeChargingPlans:e=>t=>e.getChargePointConnectedVehicleChargeTemplate(t)?e.getChargePointConnectedVehicleChargeTemplate(t).time_charging.plans:{},getVehicleList:e=>e.getWildcardTopics("openWB/vehicle/+/name"),getVehicleName:e=>t=>e.topics[`openWB/vehicle/${t}/name`],getVehicleSocConfigured:e=>t=>e.topics[`openWB/vehicle/${t}/soc_module/config`].type!=null,getVehicleSocIsManual:e=>t=>e.topics[`openWB/vehicle/${t}/soc_module/config`].type=="manual",getVehicleFaultState:e=>t=>e.topics[`openWB/vehicle/${t}/get/fault_state`]?e.topics[`openWB/vehicle/${t}/get/fault_state`]:0,getSystemTime(e){if(e.topics["openWB/system/time"])return new Date(1e3*e.topics["openWB/system/time"]).toLocaleString()},getSystemIp:e=>e.settings.localIp!==void 0?e.settings.localIp:e.topics["openWB/system/ip_address"]?e.topics["openWB/system/ip_address"]:void 0,getSystemVersion:e=>e.settings.localVersion!==void 0?e.settings.localVersion:e.topics["openWB/system/version"]?e.topics["openWB/system/version"]:void 0,getSystemBranch:e=>e.settings.localBranch!==void 0?e.settings.localBranch:e.topics["openWB/system/current_branch"]?e.topics["openWB/system/current_branch"]:void 0,getSystemCurrentCommit:e=>e.settings.localCommit!==void 0?e.settings.localCommit:e.topics["openWB/system/current_commit"]?e.topics["openWB/system/current_commit"]:void 0,getRfidEnabled(){return this.getValueBool("openWB/optional/rfid/active")},getEtConfigured:e=>e.topics["openWB/optional/et/provider"]!==void 0&&e.topics["openWB/optional/et/provider"].type!==null,getEtPrices:e=>e.topics["openWB/optional/et/get/prices"]},actions:{updateSetting(e,t){e in this.settings&&(this.settings[e]=t)},initTopic(e,t=void 0){e.includes("#")||e.includes("+")||this.addTopic(e,t)},addTopic(e,t){this.topics[e]=t},removeTopic(e){e.includes("#")||e.includes("+")?Object.keys(this.getWildcardTopics(e)).forEach(t=>{delete this.topics[t]}):delete this.topics[e]},updateTopic(e,t,o=void 0){return e in this.topics?(o!=null?(n=this.topics[e],i=t,(a=o).split(".").reduce((r,l,g)=>r[l]=a.split(".").length===++g?i:r[l]||{},n)):this.topics[e]=t,this.topics[e]):void 0;var n,a,i},updateChartData(){for(const[e,t]of Object.entries(this.topics))(e.endsWith("home_consumption")||e.endsWith("power")||e.endsWith("soc"))&&(this.chartData[e]===void 0&&(this.chartData[e]=[]),t!=null&&(this.chartData[e].push(t),this.chartData[e].slice(-128)))},updateState(e,t,o=void 0){return this.updateTopic(e,t,o)},chargeModeList(){var e=[{id:"instant_charging"},{id:"pv_charging"},{id:"scheduled_charging"},{id:"eco_charging"},{id:"stop"}];return e.forEach(t=>{t.label=this.translateChargeMode(t.id).label,t.class=this.translateChargeMode(t.id).class}),e},translateChargeMode(e){switch(e){case"instant_charging":return{mode:e,label:"Sofort",class:"danger"};case"pv_charging":return{mode:e,label:"PV",class:"success"};case"scheduled_charging":return{mode:e,label:"Ziel",class:"primary"};case"time_charging":return{mode:e,label:"Zeit",class:"warning"};case"eco_charging":return{mode:e,label:"Eco",class:"secondary"};case"stop":return{mode:e,label:"Stop",class:"dark"};default:return{mode:e,label:e,class:e}}},checkChangesLockCode(e){return!(!this.getThemeConfiguration||this.getThemeConfiguration.lock_changes_code!=e)},formatDate:(e,t={year:"numeric",month:"2-digit",day:"2-digit"})=>new Date(e).toLocaleDateString(void 0,t),formatDateRange(e,t="-"){const o={year:"numeric",month:"2-digit",day:"2-digit"};let n={day:"2-digit"};const a=new Date(e[0]),i=new Date(e[1]);return a.getFullYear()==i.getFullYear()?(t=`.${t}`,a.getMonth()!=i.getMonth()&&(n.month=o.month)):n=o,`${this.formatDate(e[0],n)}${t}${this.formatDate(e[1],o)}`},formatWeeklyScheduleDays(e){const t=["Mo","Di","Mi","Do","Fr","Sa","So"];let o=[],n=null;return e.forEach((a,i)=>{a?n===null&&(n=i):n!==null&&(n===i-1?o.push(t[n]):o.push(`${t[n]}-${t[i-1]}`),n=null)}),n!==null&&(n===e.length-1?o.push(t[n]):o.push(`${t[n]}-${t[e.length-1]}`)),o.join(", ")}}}),ee=b({name:"NavBar",components:{NavItem:b({name:"NavItem",props:{to:{type:Object,required:!0}}},[["render",function(e,t,o,n,a,i){const r=h("i-nav-item");return p(),C(r,{to:o.to,"active-class":"-active",class:"_border _border-color:primary _text-align:center"},{default:c(()=>[V(e.$slots,"default",{},void 0,!0)]),_:3},8,["to"])}],["__scopeId","data-v-1db6ae73"]])},data:()=>({mqttStore:B()})},[["render",function(e,t,o,n,a,i){const r=h("nav-item"),l=h("i-nav");return p(),C(l,{vertical:"",class:"_align-items:stretch",size:"lg"},{default:c(()=>[a.mqttStore.getDashboardEnabled?(p(),C(r,{key:0,to:{name:"dashboard"}},{default:c(()=>t[0]||(t[0]=[f(" Übersicht ",-1)])),_:1,__:[0]})):w("",!0),a.mqttStore.getEnergyFlowEnabled?(p(),C(r,{key:1,to:{name:"energy-flow"}},{default:c(()=>t[1]||(t[1]=[f(" Energiefluss ",-1)])),_:1,__:[1]})):w("",!0),a.mqttStore.getChargePointsEnabled&&a.mqttStore.getChargePointIds.length>0?(p(),C(r,{key:2,to:{name:"charge-points"}},{default:c(()=>t[2]||(t[2]=[f(" Ladepunkte ",-1)])),_:1,__:[2]})):w("",!0),a.mqttStore.getStateEnabled?(p(),C(r,{key:3,to:{name:"status"}},{default:c(()=>t[3]||(t[3]=[f(" Status ",-1)])),_:1,__:[3]})):w("",!0)]),_:1})}]]);$.add(L,q);const te=b({name:"NumberPad",components:{FontAwesomeIcon:O},emits:["key:digit","key:clear","key:delete"],data:()=>({buttonRows:[[{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"}],[{value:4,label:"4"},{value:5,label:"5"},{value:6,label:"6"}],[{value:7,label:"7"},{value:8,label:"8"},{value:9,label:"9"}]]}),methods:{emitDigit(e){this.$emit("key:digit",e)},emitClear(){this.$emit("key:clear")},emitDelete(){this.$emit("key:delete")}}},[["render",function(e,t,o,n,a,i){const r=h("i-button"),l=h("i-column"),g=h("i-row"),d=h("FontAwesomeIcon"),m=h("i-container");return p(),C(m,null,{default:c(()=>[(p(!0),P(S,null,D(a.buttonRows,u=>(p(),C(g,{key:u,center:"",class:"_padding-bottom:1"},{default:c(()=>[(p(!0),P(S,null,D(u,_=>(p(),C(l,{key:_.value,class:"pin-button-column"},{default:c(()=>[s(r,{size:"lg",class:"pin-button",onClick:v=>i.emitDigit(_.value)},{default:c(()=>[f(k(_.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:2},1024))),128)),s(g,{center:""},{default:c(()=>[s(l,{class:"pin-button-column"},{default:c(()=>[s(r,{size:"lg",class:"pin-button",onClick:t[0]||(t[0]=u=>i.emitClear())},{default:c(()=>[s(d,{"fixed-width":"",icon:["fas","fa-eraser"]})]),_:1})]),_:1}),s(l,{class:"pin-button-column"},{default:c(()=>[s(r,{size:"lg",class:"pin-button",onClick:t[1]||(t[1]=u=>i.emitDigit("0"))},{default:c(()=>t[3]||(t[3]=[f(" 0 ",-1)])),_:1,__:[3]})]),_:1}),s(l,{class:"pin-button-column"},{default:c(()=>[s(r,{size:"lg",class:"pin-button",onClick:t[2]||(t[2]=u=>i.emitDelete())},{default:c(()=>[s(d,{"fixed-width":"",icon:["fas","fa-delete-left"]})]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-4e2103db"]]),oe=b({name:"CodeInputModal",components:{NumberPad:te},props:{modelValue:{type:Boolean,required:!0},backgroundColor:{type:String,default:"warning"},placeholderCharacter:{type:String,default:"*",validator:e=>e.length==1},inputVisible:{type:Boolean,default:!1},minLength:{type:Number,default:4},maxLength:{type:Number,default:4}},emits:["update:modelValue","update:inputValue"],data(){return{number:"",modalBackground:this.backgroundColor}},computed:{placeholder(){return this.placeholderCharacter.repeat(this.minLength)},enableSubmit(){return this.number.length>=this.minLength&&this.number.length<=this.maxLength}},watch:{modelValue(e,t){e===!1&&t===!0&&this.clear()}},methods:{abort(){this.$emit("update:modelValue",!1)},addDigit(e){this.number.length{this.$emit("update:modelValue",!1),this.modalBackground=this.backgroundColor},500)},error(e="danger"){this.modalBackground=e,setTimeout(()=>{this.clear(),this.modalBackground=this.backgroundColor},2e3)}}},[["render",function(e,t,o,n,a,i){const r=h("i-input"),l=h("i-column"),g=h("i-row"),d=h("NumberPad"),m=h("i-container"),u=h("i-button"),_=h("i-modal");return p(),C(E,{to:"body"},[s(_,{"model-value":o.modelValue,color:a.modalBackground,"onUpdate:modelValue":t[4]||(t[4]=v=>e.$emit("update:modelValue",v))},{header:c(()=>[V(e.$slots,"header",{},()=>[t[5]||(t[5]=f(" **HEADER** ",-1))])]),footer:c(()=>[s(m,null,{default:c(()=>[s(g,null,{default:c(()=>[s(l,null,{default:c(()=>[s(u,{color:"danger",onClick:i.abort},{default:c(()=>[V(e.$slots,"abort",{},()=>[t[6]||(t[6]=f(" Zurück ",-1))])]),_:3},8,["onClick"])]),_:3}),s(l,{class:"_text-align:right"},{default:c(()=>[i.enableSubmit?(p(),C(u,{key:0,color:"success",onClick:i.submit},{default:c(()=>[V(e.$slots,"submit",{},()=>[t[7]||(t[7]=f(" OK ",-1))])]),_:3},8,["onClick"])):w("",!0)]),_:3})]),_:3})]),_:3})]),default:c(()=>[s(m,null,{default:c(()=>[s(g,{center:"",class:"_padding-bottom:1"},{default:c(()=>[s(l,null,{default:c(()=>[s(r,{modelValue:a.number,"onUpdate:modelValue":t[0]||(t[0]=v=>a.number=v),placeholder:i.placeholder,readonly:"",size:"lg",type:o.inputVisible?"text":"password",class:"_text-align:center"},null,8,["modelValue","placeholder","type"])]),_:1})]),_:1}),s(d,{"onKey:digit":t[1]||(t[1]=v=>i.addDigit(v)),"onKey:clear":t[2]||(t[2]=v=>i.clear()),"onKey:delete":t[3]||(t[3]=v=>i.removeDigit(v))})]),_:1})]),_:3},8,["model-value","color"])])}]]);$.add(Z,Q,L,q);const ne={key:0,class:"_padding-left:1"},x="/openWB/web/display/themes/cards/openWB_logo_dark.png",ie=b({name:"OpenwbDisplayCardsApp",components:{RouterView:H,DateTime:X,NavBar:ee,LockNavItem:b({name:"LockNavItem",components:{FontAwesomeIcon:O,CodeInputModal:oe},props:{},data:()=>({mqttStore:B(),modalPinEntryVisible:!1,modalPinEntryColor:"warning",code:"",countdown:0,countdownInterval:void 0,events:["mousemove","touchmove","wheel","click"]}),computed:{changesLocked:{get(){return this.mqttStore.settings.changesLocked},set(e){this.mqttStore.settings.changesLocked=e}},timer(){return Math.trunc(this.countdown/60).toString()+":"+(this.countdown%60).toString().padStart(2,"0")}},mounted(){this.changesLocked=!0},methods:{toggleChangesLock(){this.changesLocked?this.unlockChanges():this.lockChanges()},unlockChanges(){this.modalPinEntryVisible=!0},checkUnlockCode(e){this.mqttStore.checkChangesLockCode(e)?(this.$refs.lockInput.success("success"),this.changesLocked=!1,this.mqttStore.getDisplayStandby>0&&(this.countdown=this.mqttStore.getDisplayStandby,this.countdownInterval=setInterval(this.updateCountdown,1e3),this.events.forEach(t=>{document.addEventListener(t,this.handleDocumentEvent,{passive:!0})}))):this.$refs.lockInput.error("danger")},lockChanges(){this.changesLocked=!0,this.events.forEach(e=>{document.removeEventListener(e,this.handleDocumentEvent,{passive:!0})}),this.countdownInterval!==void 0&&(clearInterval(this.countdownInterval),this.countdownInterval=void 0)},updateCountdown(){this.countdown-=1,this.countdown<1&&this.lockChanges()},handleDocumentEvent(){this.countdown=this.mqttStore.getDisplayStandby}}},[["render",function(e,t,o,n,a,i){const r=h("FontAwesomeIcon"),l=h("i-button"),g=h("CodeInputModal");return p(),P(S,null,[a.mqttStore.getLockChanges?(p(),C(l,{key:0,class:"_padding-left:0 _padding-right:0 _margin-bottom:1",size:"lg",block:"",color:i.changesLocked?"danger":"success",onClick:t[0]||(t[0]=d=>i.toggleChangesLock())},{default:c(()=>[s(r,{"fixed-width":"",icon:i.changesLocked?["fas","fa-lock"]:["fas","fa-lock-open"],class:A(i.changesLocked?"_color:danger-80":"_color:success-80")},null,8,["icon","class"]),!i.changesLocked&&a.countdownInterval?(p(),P("span",ne,k(i.timer),1)):w("",!0)]),_:1},8,["color"])):w("",!0),s(g,{ref:"lockInput",modelValue:a.modalPinEntryVisible,"onUpdate:modelValue":t[1]||(t[1]=d=>a.modalPinEntryVisible=d),"min-length":4,"max-length":10,"onUpdate:inputValue":i.checkUnlockCode},{header:c(()=>t[2]||(t[2]=[f(" Bitte den PIN zur Freigabe von Änderungen eingeben. ",-1)])),_:1},8,["modelValue","onUpdate:inputValue"])],64)}]]),TouchBlocker:b({name:"TouchBlocker",data:()=>({mqttStore:B(),show:!1,touchBlockerCountdown:void 0,touchBlockerCountdownInterval:void 0,defaultViewCountdown:void 0,defaultViewCountdownInterval:void 0,events:["mousemove","touchmove","wheel","click"],eventHandlerSetup:!1}),computed:{configuredDisplayStandby(){if(this.mqttStore.getDisplayStandby!==0&&this.mqttStore.getDisplayStandby!==void 0)return this.mqttStore.getDisplayStandby},configuredDefaultViewTimeout(){if(this.mqttStore.getDefaultViewTimeout!==0&&this.mqttStore.getDefaultViewTimeout!==void 0)return this.mqttStore.getDefaultViewTimeout},touchBlockerTimeout(){return Math.max(this.configuredDisplayStandby-3,1)},defaultViewTimeout(){return this.configuredDefaultViewTimeout}},mounted(){this.setupEventHandler(),this.setupTouchBlockerTimeout(),this.setupDefaultViewTimeout()},unmounted(){this.clearEventHandler(),this.clearTouchBlockerTimeout(),this.clearDefaultViewTimeout()},methods:{handleTouchBlockerClick(e){e===!1&&(this.show=!1,this.setupEventHandler(),this.setupTouchBlockerTimeout(),this.setupDefaultViewTimeout())},setupEventHandler(){this.eventHandlerSetup||(this.events.forEach(e=>{document.addEventListener(e,this.handleDocumentEvent,{passive:!0})}),this.eventHandlerSetup=!0)},clearEventHandler(){this.eventHandlerSetup&&(this.events.forEach(e=>{document.removeEventListener(e,this.handleDocumentEvent,{passive:!0})}),this.eventHandlerSetup=!1)},setupTouchBlockerTimeout(){this.touchBlockerCountdownCountdownInterval===void 0&&(this.touchBlockerCountdownCountdownInterval=setInterval(this.updateTouchBlockerCountdown,1e3))},clearTouchBlockerTimeout(){this.touchBlockerCountdownCountdownInterval!==void 0&&(clearInterval(this.touchBlockerCountdownCountdownInterval),this.touchBlockerCountdownCountdownInterval=void 0)},updateTouchBlockerCountdown(){this.touchBlockerCountdown===void 0?this.touchBlockerCountdown=this.touchBlockerTimeout:(this.touchBlockerCountdown-=1,this.touchBlockerCountdown<1&&this.showTouchBlocker())},setupDefaultViewTimeout(){this.defaultViewCountdownInterval===void 0&&this.mqttStore.getDefaultView!==this.$route.name&&this.defaultViewTimeout!==void 0&&(this.defaultViewCountdownInterval=setInterval(this.updateDefaultViewCountdown,1e3))},clearDefaultViewTimeout(){this.defaultViewCountdownInterval!==void 0&&(clearInterval(this.defaultViewCountdownInterval),this.defaultViewCountdownInterval=void 0)},updateDefaultViewCountdown(){this.defaultViewCountdown===void 0&&this.defaultViewTimeout!==void 0?this.defaultViewCountdown=this.defaultViewTimeout:this.$route.name===this.mqttStore.getDefaultView?this.clearDefaultViewTimeout():(this.defaultViewCountdown-=1,this.defaultViewCountdown<1&&this.showDefaultView())},handleDocumentEvent(){this.touchBlockerCountdown=this.touchBlockerTimeout,this.defaultViewCountdown=this.defaultViewTimeout,this.setupDefaultViewTimeout(),this.show=!1},showTouchBlocker(){this.show=!0,this.clearTouchBlockerTimeout()},showDefaultView(){this.clearDefaultViewTimeout(),this.$route.name!==this.mqttStore.getDefaultView&&this.$router.push({name:this.mqttStore.getDefaultView})}}},[["render",function(e,t,o,n,a,i){const r=h("IModal");return p(),C(E,{to:"body"},[s(r,{class:"touch-blocker",size:"sm",color:"dark","model-value":a.show,"onUpdate:modelValue":t[0]||(t[0]=l=>i.handleTouchBlockerClick(l))},{default:c(()=>t[1]||(t[1]=[W("img",{class:"logo",src:x},null,-1),W("p",null," Bitte das Display berühren. ",-1)])),_:1,__:[1]},8,["model-value"])])}],["__scopeId","data-v-2d58d6dd"]])},data:()=>({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},mqttTopicsToSubscribe:["openWB/bat/config/configured","openWB/bat/get/power","openWB/bat/get/soc","openWB/chargepoint/+/config","openWB/chargepoint/+/get/charge_state","openWB/chargepoint/+/get/connected_vehicle/+","openWB/chargepoint/+/set/charge_template","openWB/chargepoint/+/set/charge_template/chargemode/scheduled_charging/plans/+","openWB/chargepoint/+/set/charge_template/time_charging/plans/+","openWB/chargepoint/+/get/phases_in_use","openWB/chargepoint/+/get/plug_state","openWB/chargepoint/+/get/power","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/set/current","openWB/chargepoint/+/set/manual_lock","openWB/chargepoint/+/set/log","openWB/chargepoint/+/set/rfid","openWB/chargepoint/get/power","openWB/counter/+/get/power","openWB/counter/get/hierarchy","openWB/counter/set/home_consumption","openWB/optional/et/provider","openWB/optional/et/get/prices","openWB/optional/int_display/theme","openWB/optional/int_display/standby","openWB/optional/rfid/active","openWB/pv/config/configured","openWB/pv/get/power","openWB/system/current_branch","openWB/system/current_commit","openWB/system/ip_address","openWB/system/time","openWB/system/version","openWB/vehicle/+/get/fault_state","openWB/vehicle/+/name","openWB/vehicle/+/soc_module/config"],mqttStore:B(),chartInterval:"",clearConsoleHandler:void 0}),computed:{changesLocked(){return this.mqttStore.getLockChanges&&this.mqttStore.settings.changesLocked}},created(){this.createConnection()},mounted(){let e=window.location.search;if(e!=""){let n=new URLSearchParams(e);if(n.has("data")){let a=JSON.parse(n.get("data"));Object.entries(a).forEach(([i,r])=>{i.startsWith("parentChargePoint")?this.mqttStore.updateSetting(i,parseInt(r)):this.mqttStore.updateSetting(i,r)})}}this.doSubscribe(this.mqttTopicsToSubscribe),this.chartInterval=setInterval(this.mqttStore.updateChartData,5e3);const t=new Date,o=new Date(t.getFullYear(),t.getMonth(),t.getDate()+1,0,0,0,0).getTime()-t.getTime();this.clearConsoleHandler=setTimeout(()=>this.clearConsole(),o)},beforeUnmount(){this.doUnsubscribe(this.mqttTopicsToSubscribe),clearInterval(this.chartInterval),clearTimeout(this.clearConsoleHandler)},methods:{clearConsole(){this.clearConsoleHandler=setTimeout(()=>this.clearConsole(),864e5)},createConnection(){const{protocol:e,host:t,port:o,endpoint:n,...a}=this.connection,i=`${e}://${t}:${o}${n}`;try{this.client=R.connect(i,a)}catch{}this.client.on("connect",()=>{}),this.client.on("error",r=>{}),this.client.on("message",(r,l)=>{if(l.toString().length>0){let g;try{g=JSON.parse(l.toString())}catch{g=l.toString()}this.mqttStore.addTopic(r,g)}else this.mqttStore.removeTopic(r)})},doSubscribe(e){e.forEach(t=>{this.mqttStore.initTopic(t)}),this.client.subscribe(e,{},t=>{})},doUnsubscribe(e){e.forEach(t=>{this.mqttStore.removeTopic(t)}),this.client.unsubscribe(e,t=>{})},doPublish(e,t,o=!0,n=2){let a={qos:n,retain:o};this.client.publish(e,JSON.stringify(t),a,i=>{})},sendTopicToBroker(e,t=void 0){let o=e.replace("openWB/","openWB/set/");t===void 0&&(t=this.mqttStore.topics[e]),this.doPublish(o,t)},sendCommand(e){this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},sendSystemCommand(e,t={}){this.sendCommand({command:e,data:t})}}},[["render",function(e,t,o,n,a,i){const r=h("DateTime"),l=h("i-column"),g=h("i-row"),d=h("i-container"),m=h("LockNavItem"),u=h("NavBar"),_=h("TouchBlocker"),v=h("i-layout-aside"),j=h("RouterView"),M=h("i-layout-content"),N=h("i-layout");return p(),C(N,{vertical:""},{default:c(()=>[s(v,{class:"_position:fixed"},{default:c(()=>[s(d,{fluid:"",class:"_margin-bottom:1"},{default:c(()=>[s(g,{center:""},{default:c(()=>[s(l,null,{default:c(()=>[s(r)]),_:1})]),_:1})]),_:1}),s(m),s(u,{"changes-locked":i.changesLocked},null,8,["changes-locked"]),s(_)]),_:1}),s(M,null,{default:c(()=>[s(j,{"changes-locked":i.changesLocked},null,8,["changes-locked"])]),_:1})]),_:1})}],["__scopeId","data-v-6f8bc44f"]]),I={},T=function(e,t,o){let n=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),r=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));n=Promise.allSettled(t.map(l=>{if((l=function(u){return"/openWB/web/display/themes/cards/"+u}(l))in I)return;I[l]=!0;const g=l.endsWith(".css"),d=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const m=document.createElement("link");return m.rel=g?"stylesheet":"modulepreload",g||(m.as="script"),m.crossOrigin="",m.href=l,r&&m.setAttribute("nonce",r),document.head.appendChild(m),g?new Promise((u,_)=>{m.addEventListener("load",u),m.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${l}`)))}):void 0}))}function a(i){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=i,window.dispatchEvent(r),!r.defaultPrevented)throw i}return n.then(i=>{for(const r of i||[])r.status==="rejected"&&a(r.reason);return e().catch(a)})},ae=b({name:"WelcomeView",data:()=>({mqttStore:B()}),mounted(){setTimeout(this.selectFirstRoute,3e3)},methods:{selectFirstRoute(){this.mqttStore.getDefaultView&&this.$router.push({name:this.mqttStore.getDefaultView})}}},[["render",function(e,t,o,n,a,i){const r=h("i-card"),l=h("i-column"),g=h("i-row"),d=h("i-container");return p(),C(d,null,{default:c(()=>[s(g,{center:"",middle:""},{default:c(()=>[s(l,null,{default:c(()=>[s(r,{color:"primary"},{header:c(()=>t[0]||(t[0]=[f(" Cards Theme ",-1)])),default:c(()=>[t[1]||(t[1]=W("img",{class:"logo",src:x},null,-1))]),_:1,__:[1]})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-e364c277"]]),re=U({history:z("/openWB/web/display/themes/cards/"),routes:[{path:"/",name:"welcome",component:ae},{path:"/Dashboard",name:"dashboard",component:()=>T(()=>import("./DashboardView-D6rYO19_.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))},{path:"/EnergyFlow",name:"energy-flow",component:()=>T(()=>import("./EnergyFlowView-CtSxCBuI.js"),__vite__mapDeps([10,1,2,3,4,5,11,12,7,13]))},{path:"/ChargePoints",name:"charge-points",component:()=>T(()=>import("./ChargePointsView-Dcp__6hw.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,11,12,15]))},{path:"/Status",name:"status",component:()=>T(()=>import("./StatusView--LrW5-ZS.js"),__vite__mapDeps([16,7,3,2,4,1,5]))}]}),y=G(ie);y.use(K()),y.use(re),y.use(J,{colorMode:"dark",components:Y}),y.mount("#app");export{oe as C,te as N,B as u}; diff --git a/packages/modules/display_themes/cards/web/index.html b/packages/modules/display_themes/cards/web/index.html index b99ca0a660..fbba802b83 100644 --- a/packages/modules/display_themes/cards/web/index.html +++ b/packages/modules/display_themes/cards/web/index.html @@ -6,7 +6,7 @@ openWB Display - Cards - + diff --git a/packages/modules/display_themes/colors/source/README.md b/packages/modules/display_themes/colors/source/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/modules/display_themes/colors/source/src/components/chargePointList/configPanels/ConfigEco.vue b/packages/modules/display_themes/colors/source/src/components/chargePointList/configPanels/ConfigEco.vue index 880c70eabe..433650a2f8 100644 --- a/packages/modules/display_themes/colors/source/src/components/chargePointList/configPanels/ConfigEco.vue +++ b/packages/modules/display_themes/colors/source/src/components/chargePointList/configPanels/ConfigEco.vue @@ -30,7 +30,7 @@ - + e in t?ha(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var h=(t,e,a)=>ga(t,typeof e!="symbol"?e+"":e,a);import{m as pa,r as Y,a as se,M as dt,d as B,c as v,o as g,n as oe,b as k,e as o,f as re,g as ve,h as m,s as we,i as Qe,j as zt,k as y,w,l as E,p as I,u,t as P,q as jt,v as Nt,x as ma,F as ce,y as _e,z as We,A as _t,B as Te,C as Jt,D as ht,E as ot,G as Je,H as at,I as wt,J as fa,K as Ye,L as Ft,N as va,O as ya,P as Ke,Q as Fe,R as ba,S as _a,T as rt,U as Rt,V as pt,W as wa}from"./vendor-DTwSGpnw.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"]'))n(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const r of i.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function a(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=a(s);fetch(s.href,i)}})();function nt(t,e=1){let a;if(t>=1e3&&e<4){switch(e){case 0:a=Math.round(t/1e3);break;case 1:a=Math.round(t/100)/10;break;case 2:a=Math.round(t/10)/100;break;case 3:a=Math.round(t)/1e3;break;default:a=Math.round(t/100)/10;break}return(a==null?void 0:a.toLocaleString(void 0,{minimumFractionDigits:e}))+" kW"}else return Math.round(t).toLocaleString(void 0)+" W"}function xt(t,e=1,a=!1){let n;if(t>1e6&&(a=!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).toFixed(1);break;case 2:n=(Math.round(t/10)/100).toFixed(2);break;case 3:n=(Math.round(t)/1e3).toFixed(3);break;default:n=Math.round(t/100)/10;break}return n.toLocaleString(void 0,{minimumFractionDigits:e})+(a?" MWh":" kWh")}else return Math.round(t).toLocaleString(void 0)+(a?" kWh":" Wh")}function ka(t){return t.toLocaleTimeString(["de-DE"],{hour:"numeric",minute:"2-digit"})}function xa(t,e){return["Jan","Feb","März","April","Mai","Juni","Juli","Aug","Sep","Okt","Nov","Dez"][t]+" "+e}const Sa=0,Ht={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)},st={topic:"",qos:Sa};let ge;const{host:Ma,port:Pa,endpoint:$a,...Yt}=Ht,Ca=`${Yt.protocol}://${Ma}:${Pa}${$a}`;try{ge=pa.connect(Ca,Yt),ge.on("connect",()=>{console.info("MQTT connection successful.")}),ge.on("disconnect",()=>{console.info("MQTT disconnected")}),ge.on("error",t=>{console.error("MQTT connection failed: ",t)})}catch(t){console.error("MQTT connect error: ",t)}async function Ta(t){await qt(),ge?ge.on("message",t):console.error("MqttRegister: MQTT client not available")}async function Ee(t){st.topic=t;const{topic:e,qos:a}=st;await qt(),ge.subscribe(e,{qos:a},n=>{if(n){console.error("MQTT Subscription error: "+n);return}})}function Ue(t){st.topic=t;const{topic:e}=st;ge.unsubscribe(e,a=>{if(a){console.error("MQTT Unsubscribe from "+t+" failed: "+a);return}})}async function it(t,e){let n=ge.connected,s=0;for(;!n&&s<10;)console.warn("MQTT not connected. Waiting 0.1 seconds"),await Qt(100),n=ge.connected,s+=1;if(s<10)try{ge.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 St(){return Ht.clientId}const It=20;async function qt(){let t=ge.connected,e=0;for(;!t&&e{esetTimeout(e,t))}let Ia=class{constructor(e){h(this,"id");h(this,"name","Ladepunkt");h(this,"icon","Ladepunkt");h(this,"type","");h(this,"ev",0);h(this,"template",0);h(this,"connectedPhases",0);h(this,"phase_1",0);h(this,"autoPhaseSwitchHw",!1);h(this,"controlPilotInterruptionHw",!1);h(this,"isEnabled",!0);h(this,"isPluggedIn",!1);h(this,"isCharging",!1);h(this,"_isLocked",!1);h(this,"_connectedVehicle",0);h(this,"chargeTemplate",null);h(this,"chargeTemplateId",0);h(this,"evTemplate",0);h(this,"currentPlan","");h(this,"averageConsumption",0);h(this,"vehicleName","");h(this,"rangeCharged",0);h(this,"rangeUnit","");h(this,"counter",0);h(this,"dailyYield",0);h(this,"energyPv",0);h(this,"energyBat",0);h(this,"pvPercentage",0);h(this,"faultState",0);h(this,"faultStr","");h(this,"phasesInUse",0);h(this,"power",0);h(this,"chargedSincePlugged",0);h(this,"stateStr","");h(this,"current",0);h(this,"currents",[0,0,0]);h(this,"phasesToUse",0);h(this,"isSocConfigured",!0);h(this,"isSocManual",!1);h(this,"waitingForSoc",!1);h(this,"color","white");this.id=e}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked=e,je("cpLock",e,this.id)}updateIsLocked(e){this._isLocked=e}get connectedVehicle(){return this._connectedVehicle}set connectedVehicle(e){this._connectedVehicle=e,je("cpVehicle",e,this.id)}updateConnectedVehicle(e){this._connectedVehicle=e}get soc(){return X[this.connectedVehicle]?X[this.connectedVehicle].soc:0}set soc(e){X[this.connectedVehicle]&&(X[this.connectedVehicle].soc=e)}get chargeMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.selected)??"stop"}set chargeMode(e){console.log("set mode"),this.chargeTemplate&&(console.log("active"),this.chargeTemplate.chargemode.selected=e,F(this.id))}get hasPriority(){var e;return((e=this.chargeTemplate)==null?void 0:e.prio)??!1}set hasPriority(e){this.chargeTemplate.prio=e,F(this.id)}get timedCharging(){return this.chargeTemplate?this.chargeTemplate.time_charging.active:!1}set timedCharging(e){this.chargeTemplate.time_charging.active=e,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(this.id))}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,F(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,F(this.id))}set pvMinSocPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.phases_to_use_min_soc=e,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(this.id))}get etActive(){return this.chargeTemplate&&this.chargeTemplate.chargemode.selected=="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,power:this.power,energy:this.dailyYield,energyPv:this.energyPv,energyBat:this.energyBat,pvPercentage:this.pvPercentage,color:this.color,icon:this.icon}}};class Ba{constructor(e){h(this,"id");h(this,"name","");h(this,"_chargeTemplateId",0);h(this,"_evTemplateId",0);h(this,"tags",[]);h(this,"config",{});h(this,"soc",0);h(this,"range",0);h(this,"_etActive",!1);h(this,"_etMaxPrice",20);this.id=e}get chargeTemplateId(){return this._chargeTemplateId}set chargeTemplateId(e){this._chargeTemplateId=e,je("vhChargeTemplateId",e,this.id)}updateChargeTemplateId(e){this._chargeTemplateId=e}get evTemplateId(){return this._evTemplateId}set evTemplateId(e){this._evTemplateId=e,je("vhEvTemplateId",e,this.id)}updateEvTemplateId(e){this._evTemplateId=e}get chargepoint(){for(const e of Object.values(S))if(e.connectedVehicle==this.id)return e}}var Ge=(t=>(t.instant_charging="instant_charging",t.pv_charging="pv_charging",t.scheduled_charging="scheduled_charging",t.eco_charging="eco_charging",t.stop="stop",t))(Ge||{});const S=Y({}),X=Y({}),Oa=Y({});Y({});Y({});const Va=Y({});function La(t){t in S||(S[t]=new Ia(t),S[t].color="var(--color-cp"+(Object.values(S).length-1)+")")}function Aa(){Object.keys(S).forEach(t=>{delete S[parseInt(t)]})}const Zt={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",cpTimedPlanActive:"openWB/set/vehicle/template/charge_template/%/time_charging/plans/@/active",cpScheduledPlanActive:"openWB/set/vehicle/template/charge_template/%/chargemode/scheduled_charging/plans/@/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 je(t,e,a=0,n=void 0){if(isNaN(a)){console.warn("Invalid index");return}let s=Zt[t];if(!s){console.warn("No topic for update type "+t);return}switch(t){default:s=s.replace("%",String(a)),n!=null&&(s=s.replace("@",String(n)))}switch(typeof e){case"number":it(s,JSON.stringify(+e));break;default:it(s,JSON.stringify(e))}}function De(t,e={}){console.log("send command "+t+" "+JSON.stringify(e)),it(`openWB/set/command/${St()}/todo`,JSON.stringify({command:t,data:e}))}function F(t){it(Zt.chargeTemplate.replace("%",String(t)),JSON.stringify(S[t].chargeTemplate))}class Da{constructor(){h(this,"batterySoc",0);h(this,"isBatteryConfigured",!0);h(this,"chargeMode","0");h(this,"_pvBatteryPriority","ev_mode");h(this,"displayLiveGraph",!0);h(this,"isEtEnabled",!0);h(this,"etMaxPrice",0);h(this,"etCurrentPrice",0);h(this,"cpDailyExported",0);h(this,"evuId",0);h(this,"etProvider","");h(this,"ipAddress","");h(this,"systemTime",0);h(this,"version","");h(this,"versionDetails","");h(this,"devBranch","")}get pvBatteryPriority(){return this._pvBatteryPriority}set pvBatteryPriority(e){this._pvBatteryPriority=e,je("pvBatteryPriority",e)}updatePvBatteryPriority(e){this._pvBatteryPriority=e}}const Ea=[["EV","ev_mode"],["Speicher","bat_mode"],["MinSoc","min_soc_bat_mode"]],le=Y({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"}});class Xt{constructor(){h(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){this._items[e]=$e(e)}setEnergy(e,a){this.keys().includes(e)||this.addItem(e),this._items[e].energy=a}setEnergyPv(e,a){this.keys().includes(e)||this.addItem(e),this._items[e].energyPv=a}setEnergyBat(e,a){this.keys().includes(e)||this.addItem(e),this._items[e].energyBat=a}setPvPercentage(e,a){this.keys().includes(e)||this.addItem(e),this._items[e].pvPercentage=a}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 M=new Xt;function Mt(){M=new Xt}const J=Y({evuIn:$e("evuIn"),pv:$e("pv"),batOut:$e("batOut")}),L=Y({evuOut:$e("evuOut"),charging:$e("charging"),devices:$e("devices"),batIn:$e("batIn"),house:$e("house")}),H=Y(new Da);se("");const lt=se(!1);function $e(t){return{name:le[t]?le[t].name:"item",power:0,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:le[t]?le[t].color:"var(--color-charging)",icon:le[t]?le[t].icon:""}}const ee=Y({active:!1,locked:!0,usePin:!1,code:"",timeout:60,localCpOnly:!1});function ze(){ee.usePin&&ee.locked?new dt("#numberpad").toggle():(ee.locked=!1,setTimeout(()=>{ee.locked=!0},ee.timeout*1e3))}function Wa(t){return t==ee.code}const Bt=se(new Date),Ga={class:"scaled"},Ua=B({__name:"DisplayButton",props:{icon:{},bgcolor:{},color:{}},emits:["click"],setup(t,{emit:e}){const a=t,n=e;function s(){n("click",!0)}return(i,r)=>(g(),v("div",{style:oe({"background-color":a.bgcolor?a.bgcolor:"var(--color-bg)",color:a.color?a.color:"var(--color-title)"}),class:"displaybutton rounded-pill",type:"button",onClick:s},[a.icon?(g(),v("span",{key:0,class:re(["fas me-2 scaled",a.icon])},null,2)):k("",!0),o("span",Ga,[ve(i.$slots,"default",{},void 0)])],4))}}),j=(t,e)=>{const a=t.__vccOpts||t;for(const[n,s]of e)a[n]=s;return a},be=j(Ua,[["__scopeId","data-v-0f8aebee"]]);class za{constructor(e){h(this,"id");h(this,"name","Gerät");h(this,"power",0);h(this,"status","off");h(this,"energy",0);h(this,"runningTime",0);h(this,"configured",!1);h(this,"_showInGraph",!0);h(this,"color","white");h(this,"canSwitch",!1);h(this,"countAsHouse",!1);h(this,"energyPv",0);h(this,"energyBat",0);h(this,"pvPercentage",0);h(this,"tempConfigured",0);h(this,"temp",[300,300,300]);h(this,"on",!1);h(this,"isAutomatic",!0);h(this,"icon","");this.id=e}get showInGraph(){return this._showInGraph}set showInGraph(e){this._showInGraph=e,Z()}setShowInGraph(e){this._showInGraph=e}}const ne=Y(new Map);function Kt(t){t in ne?console.info("Duplicate sh device message: "+t):(ne.set(t,new za(t)),ne.get(t).color="var(--color-sh"+ne.size+")")}class ja{constructor(){h(this,"graphToShow","powermeter");h(this,"cpToShow",0);h(this,"displayLocked",!0);h(this,"_showRelativeArcs",!1);h(this,"showTodayGraph",!0);h(this,"_graphPreference","live");h(this,"_usageStackOrder",0);h(this,"_displayMode","dark");h(this,"_showGrid",!1);h(this,"_smartHomeColors","normal");h(this,"_decimalPlaces",1);h(this,"_showQuickAccess",!0);h(this,"_simpleCpList",!1);h(this,"_shortCpList","no");h(this,"_showAnimations",!0);h(this,"_preferWideBoxes",!1);h(this,"_maxPower",4e3);h(this,"_fluidDisplay",!1);h(this,"_showClock","no");h(this,"_showButtonBar",!0);h(this,"_showCounters",!1);h(this,"_showVehicles",!1);h(this,"_showPrices",!1);h(this,"_debug",!1);h(this,"isEtEnabled",!1);h(this,"etPrice",20.5);h(this,"showRightButton",!0);h(this,"showLeftButton",!0);h(this,"animationDuration",300);h(this,"animationDelay",100);h(this,"zoomGraph",!1);h(this,"parentChargePoint1");h(this,"parentChargePoint2")}get showRelativeArcs(){return this._showRelativeArcs}set showRelativeArcs(e){this._showRelativeArcs=e,Z()}setShowRelativeArcs(e){this._showRelativeArcs=e}get graphPreference(){return this._graphPreference}set graphPreference(e){this._graphPreference=e,Z()}setGraphPreference(e){this._graphPreference=e}get usageStackOrder(){return this._usageStackOrder}set usageStackOrder(e){this._usageStackOrder=e,Z()}setUsageStackOrder(e){this._usageStackOrder=e}get displayMode(){return this._displayMode}set displayMode(e){this._displayMode=e,Ja(e)}setDisplayMode(e){this._displayMode=e}get showGrid(){return this._showGrid}set showGrid(e){this._showGrid=e,Z()}setShowGrid(e){this._showGrid=e}get decimalPlaces(){return this._decimalPlaces}set decimalPlaces(e){this._decimalPlaces=e,Z()}setDecimalPlaces(e){this._decimalPlaces=e}get smartHomeColors(){return this._smartHomeColors}set smartHomeColors(e){this._smartHomeColors=e,Vt(e),Z()}setSmartHomeColors(e){this._smartHomeColors=e,Vt(e)}get showQuickAccess(){return this._showQuickAccess}set showQuickAccess(e){this._showQuickAccess=e,Z()}setShowQuickAccess(e){this._showQuickAccess=e}get simpleCpList(){return this._simpleCpList}set simpleCpList(e){this._simpleCpList=e,Z()}setSimpleCpList(e){this._simpleCpList=e}get shortCpList(){return this._shortCpList}set shortCpList(e){this._shortCpList=e,Z()}setShortCpList(e){this._shortCpList=e}get showAnimations(){return this._showAnimations}set showAnimations(e){this._showAnimations=e,Z()}setShowAnimations(e){this._showAnimations=e}get preferWideBoxes(){return this._preferWideBoxes}set preferWideBoxes(e){this._preferWideBoxes=e,Z()}setPreferWideBoxes(e){this._preferWideBoxes=e}get maxPower(){return this._maxPower}set maxPower(e){this._maxPower=e,Z()}setMaxPower(e){this._maxPower=e}get fluidDisplay(){return this._fluidDisplay}set fluidDisplay(e){this._fluidDisplay=e,Z()}setFluidDisplay(e){this._fluidDisplay=e}get showClock(){return this._showClock}set showClock(e){this._showClock=e,Z()}setShowClock(e){this._showClock=e}get debug(){return this._debug}set debug(e){this._debug=e,Z()}setDebug(e){this._debug=e}get showButtonBar(){return this._showButtonBar}set showButtonBar(e){this._showButtonBar=e,Z()}setShowButtonBar(e){this._showButtonBar=e}get showCounters(){return this._showCounters}set showCounters(e){this._showCounters=e,Z()}setShowCounters(e){this._showCounters=e}get showVehicles(){return this._showVehicles}set showVehicles(e){this._showVehicles=e,Z()}setShowVehicles(e){this._showVehicles=e}get showPrices(){return this._showPrices}set showPrices(e){this._showPrices=e,Z()}setShowPrices(e){this._showPrices=e}}const _=Y(new ja),Be=Y({localIp:void 0,localBranch:void 0,localCommit:void 0,localVersion:void 0,parentChargePoint1:void 0,parentChargePoint2:void 0}),Na=992,kt=Y({x:document.documentElement.clientWidth,y:document.documentElement.clientHeight});function Ot(){kt.x=document.documentElement.clientWidth,kt.y=document.documentElement.clientHeight}m(()=>kt.x>=Na);const Ne={instant_charging:{mode:Ge.instant_charging,name:"Sofort",color:"var(--color-charging)",icon:"fa-bolt"},pv_charging:{mode:Ge.pv_charging,name:"PV",color:"var(--color-pv",icon:"fa-solar-panel"},scheduled_charging:{mode:Ge.scheduled_charging,name:"Zielladen",color:"var(--color-battery)",icon:"fa-bullseye"},eco_charging:{mode:Ge.eco_charging,name:"Eco",color:"var(--color-devices)",icon:"fa-coins"},stop:{mode:Ge.stop,name:"Stop",color:"var(--color-fg)",icon:"fa-power-off"}};function Z(){Fa()}function Ja(t){const e=we("html");e.classed("theme-dark",t=="dark"),e.classed("theme-light",t=="light"),e.classed("theme-blue",t=="blue"),Z()}function Vt(t){const e=we("html");e.classed("shcolors-normal",t=="normal"),e.classed("shcolors-standard",t=="standard"),e.classed("shcolors-advanced",t=="advanced")}function Fa(){const t={};t.hideSH=[...ne.values()].filter(e=>!e.showInGraph).map(e=>e.id),t.showLG=_.graphPreference=="live",t.displayM=_.displayMode,t.stackO=_.usageStackOrder,t.showGr=_.showGrid,t.decimalP=_.decimalPlaces,t.smartHomeC=_.smartHomeColors,t.relPM=_.showRelativeArcs,t.maxPow=_.maxPower,t.showQA=_.showQuickAccess,t.simpleCP=_.simpleCpList,t.shortCP=_.shortCpList,t.animation=_.showAnimations,t.wideB=_.preferWideBoxes,t.fluidD=_.fluidDisplay,t.clock=_.showClock,t.showButtonBar=_.showButtonBar,t.showCounters=_.showCounters,t.showVehicles=_.showVehicles,t.showPrices=_.showPrices,t.debug=_.debug,document.cookie="openWBColorTheme="+JSON.stringify(t)+";max-age=16000000;samesite=strict"}const Ra={class:"navigation"},Ha={class:"graphbuttons"},Ya={class:"cpbuttons"},qa={class:"timedisplay ms-4"},Qa=B({__name:"NavigationBar",setup(t){let e;function a(){let l=Object.values(S).length;_.cpToShow=(_.cpToShow+1)%l}function n(){let l=Object.values(S).length;_.cpToShow=((_.cpToShow-1)%l+l)%l}function s(){_.graphToShow="powermeter"}function i(){_.graphToShow="powergraph"}function r(){_.graphToShow="energymeter"}function c(){ee.locked?ze():new dt("#statuspage").toggle()}return Qe(()=>{e=setInterval(()=>{Bt.value=new Date},1e3)}),zt(()=>{clearInterval(e)}),(l,d)=>(g(),v("div",Ra,[o("span",Ha,[d[3]||(d[3]=o("span",{class:"brand me-4"},"openWB",-1)),y(be,{icon:"fa-chart-pie",onClick:s},{default:w(()=>d[0]||(d[0]=[E("Leistung")])),_:1}),y(be,{icon:"fa-chart-line",onClick:i},{default:w(()=>d[1]||(d[1]=[E("Verlauf")])),_:1}),y(be,{icon:"fa-chart-column",onClick:r},{default:w(()=>d[2]||(d[2]=[E("Energie")])),_:1})]),y(be,{icon:"fa-rectangle-list",onClick:c},{default:w(()=>d[4]||(d[4]=[E("Status")])),_:1}),o("span",Ya,[Object.values(u(S)).length>1?(g(),I(be,{key:0,color:"var(--color-cp0)",onClick:n},{default:w(()=>d[5]||(d[5]=[o("span",{class:"fas fa-arrow-left px-2"},null,-1),o("span",{class:"fas fa-charging-station pe-2"},null,-1)])),_:1})):k("",!0),y(be,{bgcolor:u(ee).locked?"var(--color-evu)":"var(--color-pv)",onClick:u(ze)},{default:w(()=>d[6]||(d[6]=[o("span",{class:"fas fa-lock px-4"},null,-1)])),_:1},8,["bgcolor","onClick"]),Object.values(u(S)).length>1?(g(),I(be,{key:1,color:"var(--color-cp0)",onClick:a},{default:w(()=>d[7]||(d[7]=[o("span",{class:"fas fa-charging-station px-2"},null,-1),o("span",{class:"fas fa-arrow-right pe-2"},null,-1)])),_:1})):k("",!0),o("span",qa,P(u(ka)(u(Bt))),1)])]))}}),Za=j(Qa,[["__scopeId","data-v-6d0b9541"]]),Xa=["origin"],Ka=B({__name:"PMSourceArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{}},setup(t){const e=t,a=m(()=>{let n={name:"",power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:""},s=J;s["zz-empty"]=n;const i=Object.values(J).length-1,r=jt().value(d=>d.power).startAngle(-Math.PI/2+e.circleGapSize).endAngle(Math.PI/2-e.circleGapSize).sort(null),c=Nt().innerRadius(e.radius/6*5).outerRadius(e.radius).cornerRadius(e.cornerRadius).padAngle(0),l=we("g#pmSourceArc");return l.selectAll("*").remove(),l.selectAll("sources").data(r(Object.values(s))).enter().append("path").attr("d",c).attr("fill",d=>d.data.color).attr("stroke",(d,f)=>f==i?d.data.power>0?"var(--color-scale)":"null":d.data.color),"pmSourceArc.vue"});return ma(()=>{let n=J.pv.power+J.evuIn.power+J.batOut.power;n>_.maxPower&&(_.maxPower=n)}),(n,s)=>(g(),v("g",{id:"pmSourceArc",origin:a.value},null,8,Xa))}}),en=["origin"],tn=B({__name:"PMUsageArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{}},setup(t){const e=t,a=m(()=>{let n={name:"",power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:""};const s=[L.evuOut,L.charging].concat([...ne.values()].filter(d=>d.configured&&!d.countAsHouse).sort((d,f)=>f.power-d.power)).concat([L.batIn,L.house]).concat(n),i=s.length-1,r=jt().value(d=>d.power).startAngle(Math.PI*1.5-e.circleGapSize).endAngle(Math.PI/2+e.circleGapSize).sort(null),c=Nt().innerRadius(e.radius/6*5).outerRadius(e.radius).cornerRadius(e.cornerRadius),l=we("g#pmUsageArc");return l.selectAll("*").remove(),l.selectAll("consumers").data(r(s)).enter().append("path").attr("d",c).attr("fill",d=>d.data.color).attr("stroke",(d,f)=>f==i?d.data.power>0?"var(--color-scale)":"null":d.data.color),"pmUsageArc.vue"});return(n,s)=>(g(),v("g",{id:"pmUsageArc",origin:a.value},null,8,en))}}),ea=B({__name:"FormatWatt",props:{watt:{}},setup(t){const e=t,a=m(()=>nt(e.watt,_.decimalPlaces));return(n,s)=>P(a.value)}}),an={key:0,id:"pmLabel"},nn=["x","y","fill","text-anchor"],on=22,ke=B({__name:"PMLabel",props:{x:{},y:{},data:{},props:{},anchor:{},labeltext:{},labelicon:{},labelcolor:{}},setup(t){const e=t,a=m(()=>e.labeltext?e.labeltext:e.props?e.props.icon+" ":e.labelicon?e.labelicon+" ":""),n=m(()=>e.labelcolor?e.labelcolor:e.props?e.props.color:""),s=m(()=>!e.data||e.data.power>0),i=m(()=>e.labeltext?"":"fas");return(r,c)=>s.value?(g(),v("g",an,[o("text",{x:r.x,y:r.y,fill:n.value,"text-anchor":r.anchor,"font-size":on,class:"pmLabel"},[o("tspan",{class:re(i.value)},P(a.value),3),o("tspan",null,[r.data!==void 0?(g(),I(ea,{key:0,watt:r.data.power},null,8,["watt"])):k("",!0)])],8,nn)])):k("",!0)}}),rn={},sn={class:"p-2 m-0 cont"},ln={class:"wb-widget m-0 pb-2 shadow"},cn={class:"header mt-4 mx-2"},un={class:"titles"},dn={class:"title"},hn={class:"subtitle"},gn={class:"buttons"},pn={class:"wb-subwidget mx-2"},mn={key:0},fn={class:"wb-subwidget mx-2"};function vn(t,e){return g(),v("div",sn,[o("div",ln,[o("div",cn,[o("div",un,[o("div",dn,[ve(t.$slots,"title",{},()=>[e[0]||(e[0]=o("div",{class:"p-0"},"(title goes here)",-1))])]),o("div",hn,[ve(t.$slots,"subtitle",{},void 0)])]),o("div",gn,[ve(t.$slots,"buttons",{},void 0)])]),o("div",pn,[ve(t.$slots,"default",{},void 0)]),t.$slots.footer!=null?(g(),v("div",mn,[e[1]||(e[1]=o("hr",{class:"grid-col-12"},null,-1)),o("div",fn,[ve(t.$slots,"footer",{},void 0)])])):k("",!0)])])}const gt=j(rn,[["render",vn],["__scopeId","data-v-e8292acd"]]);class yn{constructor(){h(this,"active",!1);h(this,"etPriceList",new Map);h(this,"etProvider","");h(this,"etMaxPrice",0)}get etCurrentPriceString(){const[e]=te.etPriceList.values();return(Math.round(e*10)/10).toFixed(1)+" ct"}}const te=Y(new yn),bn={class:"grid-col-12"},_n={id:"powermeter",class:"powermeter p-0 m-0 align-self-stretch"},wn=["viewBox"],kn=["transform"],xn={transform:"scale(0.9294,1)"},Sn=["x"],Se=500,Me=20,Lt=1,Mn=B({__name:"PowerMeter",setup(t){const e=Se,a=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=m(()=>Se/2-Me),r=m(()=>{let D="",G=Object.values(J).filter(Q=>Q.power>0);return G.length==1&&G[0].name=="PV"?D="Aktueller Verbrauch: ":D="Bezug/Verbrauch: ",D+nt(L.house.power+L.charging.power+L.devices.power+L.batIn.power,_.decimalPlaces)}),c=m(()=>{let D=J.pv.power+J.evuIn.power+J.batOut.power;return _.maxPower>D?nt(_.maxPower,_.decimalPlaces):nt(D,_.decimalPlaces)}),l=m(()=>Object.values(S)),d=m(()=>{let D=0;return _.showRelativeArcs&&(D=_.maxPower-(J.pv.power+J.evuIn.power+J.batOut.power)),D<0?0:D}),f=m(()=>[L.evuOut,L.charging,L.devices,L.batIn,L.house].filter(D=>D.power>0)),T=m(()=>n[f.value.length-1]);function b(D){return s[T.value[D]]}function C(D){return Math.round(l.value[D].soc)}function z(D){return D.length>12?D.slice(0,11)+".":D}const ie=m(()=>{const[D]=te.etPriceList.values();return Math.round(D*10)/10});return(D,G)=>(g(),I(gt,null,{title:w(()=>G[0]||(G[0]=[E(" Aktuelle Leistung ")])),default:w(()=>[o("div",bn,[o("figure",_n,[(g(),v("svg",{viewBox:"0 0 "+Se+" "+u(e)},[o("g",{transform:"translate("+Se/2+","+u(e)/2+")"},[o("g",xn,[y(Ka,{radius:i.value,"corner-radius":Lt,"circle-gap-size":a,"empty-power":d.value},null,8,["radius","empty-power"]),y(tn,{"sh-device":u(ne),radius:i.value,"corner-radius":Lt,"circle-gap-size":a,"empty-power":d.value},null,8,["sh-device","radius","empty-power"]),y(ke,{x:0,y:-u(e)/10*2,data:u(J).pv,props:u(le).pv,anchor:"middle",config:u(_)},null,8,["y","data","props","config"]),y(ke,{x:0,y:-u(e)/10*3,data:u(J).evuIn,props:u(le).evuIn,anchor:"middle",config:u(_)},null,8,["y","data","props","config"]),y(ke,{x:0,y:-u(e)/10,data:u(J).batOut,props:u(le).batOut,anchor:"middle",config:u(_)},null,8,["y","data","props","config"]),u(te).active?(g(),I(ke,{key:0,x:0,y:-u(e)/10,data:u(J).batOut,props:u(le).batOut,anchor:"middle",config:u(_)},null,8,["y","data","props","config"])):k("",!0),(g(!0),v(ce,null,_e(f.value,(Q,O)=>(g(),I(ke,{key:O,x:b(O).x,y:b(O).y,data:Q,labelicon:Q.icon,labelcolor:Q.color,anchor:"middle",config:u(_)},null,8,["x","y","data","labelicon","labelcolor","config"]))),128)),l.value.length>0&&u(X)[l.value[0].connectedVehicle]?(g(),I(ke,{key:1,x:-Se/2-Me/4+10,y:-u(e)/2+Me+5,labeltext:z(u(X)[l.value[0].connectedVehicle].name)+": "+C(0)+"%",labelcolor:l.value[0].color,anchor:"start",config:u(_)},null,8,["x","y","labeltext","labelcolor","config"])):k("",!0),l.value.length>1&&u(X)[l.value[1].connectedVehicle]?(g(),I(ke,{key:2,x:Se/2+Me/4-10,y:-u(e)/2+Me+5,labeltext:z(u(X)[l.value[1].connectedVehicle].name)+": "+C(1)+"%",labelcolor:l.value[1].color,anchor:"end",config:u(_)},null,8,["x","y","labeltext","labelcolor","config"])):k("",!0),u(H).batterySoc>0?(g(),I(ke,{key:3,x:-Se/2-Me/4+10,y:u(e)/2-Me+15,labeltext:"Speicher: "+u(H).batterySoc+"%",labelcolor:u(L).batIn.color,anchor:"start",config:u(_)},null,8,["x","y","labeltext","labelcolor","config"])):k("",!0),u(te).active?(g(),I(ke,{key:4,x:Se/2+Me/4-10,y:u(e)/2-Me+15,value:ie.value,labeltext:u(te).etCurrentPriceString,labelcolor:"var(--color-charging)",anchor:"end",config:u(_)},null,8,["x","y","value","labeltext","config"])):k("",!0),y(ke,{x:0,y:0,labeltext:r.value,labelcolor:"var(--color-fg)",anchor:"middle",config:u(_)},null,8,["labeltext","config"]),u(_).showRelativeArcs?(g(),v("text",{key:5,x:Se/2-44,y:"2","text-anchor":"middle",fill:"var(--color-axis)","font-size":"12"}," Peak: "+P(c.value),9,Sn)):k("",!0)])],8,kn)],8,wn))])])]),_:1}))}}),Pe=500,Ie=500,W={top:10,right:20,bottom:10,left:25},Pt=["charging","house","batIn","devices"];class Pn{constructor(){h(this,"data",[]);h(this,"_graphMode","")}get graphMode(){return this._graphMode}set graphMode(e){this._graphMode=e}}const p=Y(new Pn);let ct=!0,qe=!0;function At(){ct=!1}function Dt(){qe=!1}function $n(t){qe=t}function Ze(t){p.data=t}const K=Y({refreshTopicPrefix:"openWB/graph/alllivevaluesJson",updateTopic:"openWB/graph/lastlivevaluesJson",configTopic:"openWB/graph/config/#",initialized:!1,initCounter:0,graphRefreshCounter:0,rawDataPacks:[],duration:0,activate(){p.data=[],this.unsubscribeUpdates(),this.subscribeRefresh(),Ee(this.configTopic),this.initialized=!1,this.initCounter=0,this.graphRefreshCounter=0,this.rawDataPacks=[],On(),lt.value=!0},deactivate(){this.unsubscribeRefresh(),this.unsubscribeUpdates(),Ue(this.configTopic)},subscribeRefresh(){for(let t=1;t<17;t++)Ee(this.refreshTopicPrefix+t)},unsubscribeRefresh(){for(let t=1;t<17;t++)Ue(this.refreshTopicPrefix+t)},subscribeUpdates(){Ee(this.updateTopic)},unsubscribeUpdates(){Ue(this.updateTopic)}}),q=Y({topic:"openWB/log/daily/#",date:new Date,activate(){if(p.graphMode=="day"||p.graphMode=="today"){p.graphMode=="today"&&(this.date=new Date);const t=this.date.getFullYear().toString()+(this.date.getMonth()+1).toString().padStart(2,"0")+this.date.getDate().toString().padStart(2,"0");Ee(this.topic),De("getDailyLog",{day:t})}},deactivate(){Ue(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}}),Ce=Y({topic:"openWB/log/monthly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(){const t=this.year.toString()+this.month.toString().padStart(2,"0");p.data=[],Ee(this.topic),De("getMonthlyLog",{month:t})},deactivate(){Ue(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)}}),Oe=Y({topic:"openWB/log/yearly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(){const t=this.year.toString();p.data=[],Ee(this.topic),De("getYearlyLog",{year:t})},deactivate(){Ue(this.topic)},back(){this.year-=1,this.activate()},forward(){this.year0&&(M.items[t].energyPv+=1e3/12*(e[t]*(e.pv-e.evuOut))/(e.pv-e.evuOut+e.evuIn+e.batOut),M.items[t].energyBat+=1e3/12*(e[t]*e.batOut)/(e.pv-e.evuOut+e.evuIn+e.batOut))}function In(t,e){e[t]>0&&(M.items[t].energyPv+=1e3*(e[t]*(e.pv-e.evuOut))/(e.pv-e.evuOut+e.evuIn+e.batOut),M.items[t].energyBat+=1e3*(e[t]*e.batOut)/(e.pv-e.evuOut+e.evuIn+e.batOut))}const Bn=["evuIn","pv","batIn","evuOut"],Re=se(!1);function $t(t,e){Object.entries(t).length>0?(Re.value=!1,Object.entries(t.counter).forEach(([a,n])=>{(e.length==0||e.includes(a))&&(M.items.evuIn.energy+=n.energy_imported,M.items.evuOut.energy+=n.energy_exported)}),M.items.pv.energy=t.pv.all.energy_exported,t.bat.all&&(M.items.batIn.energy=t.bat.all.energy_imported,M.items.batOut.energy=t.bat.all.energy_exported),Object.entries(t.cp).forEach(([a,n])=>{a=="all"?M.setEnergy("charging",n.energy_imported):M.setEnergy(a,n.energy_imported)}),M.setEnergy("devices",0),Object.entries(t.sh).forEach(([a,n])=>{M.setEnergy(a,n.energy_imported);const s=a.substring(2);ne.get(+s).countAsHouse||(M.items.devices.energy+=n.energy_imported)}),t.hc&&t.hc.all?M.setEnergy("house",t.hc.all.energy_imported):M.calculateHouseEnergy(),M.keys().map(a=>{Bn.includes(a)||(M.setPvPercentage(a,Math.round((M.items[a].energyPv+M.items[a].energyBat)/M.items[a].energy*100)),Pt.includes(a)&&(L[a].energy=M.items[a].energy,L[a].energyPv=M.items[a].energyPv,L[a].energyBat=M.items[a].energyBat,L[a].pvPercentage=M.items[a].pvPercentage))}),p.graphMode=="today"&&(Object.values(S).map(a=>{const n=M.items["cp"+a.id];n&&(a.energyPv=n.energyPv,a.energyBat=n.energyBat,a.pvPercentage=n.pvPercentage)}),ne.forEach(a=>{const n=M.items["sh"+a.id];n&&(a.energy=n.energy,a.energyPv=n.energyPv,a.energyBat=n.energyBat,a.pvPercentage=n.pvPercentage)}))):Re.value=!0,lt.value=!0}function On(){M.keys().map(t=>{Pt.includes(t)&&(L[t].energy=M.items[t].energy,L[t].energyPv=0,L[t].energyBat=0,L[t].pvPercentage=0)}),Object.values(S).map(t=>{t.energyPv=0,t.energyBat=0,t.pvPercentage=0}),ne.forEach(t=>{t.energyPv=0,t.energyBat=0,t.pvPercentage=0})}const xe=m(()=>{const t=We(p.data,e=>e.date);return t[1]?_t().domain(Array.from({length:t[1]},(e,a)=>a+1)).paddingInner(.4).range([0,Pe-W.left-2]):_t().range([0,0])});function Ct(){switch(p.graphMode){case"live":p.graphMode="today",_.showRightButton=!0,ae();break;case"today":p.graphMode="day",q.date=new Date,q.back(),ae();break;case"day":q.back(),ae();break;case"month":Ce.back();break;case"year":Oe.back();break}}function ta(){const t=new Date;switch(p.graphMode){case"live":break;case"today":p.graphMode="live",_.showRightButton=!1,ae();break;case"day":q.forward(),q.date.getDate()==t.getDate()&&q.date.getMonth()==t.getMonth()&&q.date.getFullYear()==t.getFullYear()&&(p.graphMode="today"),ae();break;case"month":Ce.forward();break;case"year":Oe.forward();break}}function aa(){switch(p.graphMode){case"live":Ct();break;case"day":case"today":p.graphMode="month",ae();break;case"month":p.graphMode="year",ae();break}}function na(){switch(p.graphMode){case"year":p.graphMode="month",ae();break;case"month":p.graphMode="today",ae();break;case"today":case"day":p.graphMode="live",ae();break}}function Vn(t){if(p.graphMode=="day"||p.graphMode=="today"){q.setDate(t);const e=new Date;q.date.getDate()==e.getDate()&&q.date.getMonth()==e.getMonth()&&q.date.getFullYear()==e.getFullYear()?p.graphMode="today":p.graphMode="day",ae()}}const Ln=["origin","transform"],An=B({__name:"PGSourceGraph",props:{width:{},height:{},margin:{}},setup(t){const e=t,a={house:"var(--color-house)",batIn:"var(--color-battery)",inverter:"var(--color-pv)",batOut:"var(--color-battery)",selfUsage:"var(--color-pv)",evuOut:"var(--color-export)",evuIn:"var(--color-evu)"};var n,s;const i=_.showAnimations?_.animationDuration:0,r=_.showAnimations?_.animationDelay:0,c=m(()=>{const x=we("g#pgSourceGraph");p.graphMode=="month"||p.graphMode=="year"?O(x):Q(x),x.selectAll(".axis").remove();const $=x.append("g").attr("class","axis");return $.call(ie.value),$.selectAll(".tick").attr("font-size",12),$.selectAll(".tick line").attr("stroke",G.value).attr("stroke-width",D.value),$.select(".domain").attr("stroke","var(--color-bg)"),"pgSourceGraph.vue"}),l=m(()=>p.graphMode=="month"||p.graphMode=="year"?["evuIn","batOut","selfUsage","evuOut"]:["selfUsage","evuOut","batOut","evuIn"]),d=m(()=>Te().domain([0,p.data.length-1]).range([0,e.width])),f=m(()=>Jt().keys(l.value)),T=m(()=>f.value(p.data)),b=m(()=>Te().range([e.height-10,0]).domain(p.graphMode=="year"?[0,Math.ceil(C.value[1]*10)/10]:[0,Math.ceil(C.value[1])])),C=m(()=>{let x=We(p.data,$=>Math.max($.pv+$.evuIn+$.batOut,$.selfUsage+$.evuOut));return x[0]!=null&&x[1]!=null?(p.graphMode=="year"&&(x[0]=x[0]/1e3,x[1]=x[1]/1e3),x):[0,0]}),z=m(()=>p.graphMode=="month"||p.graphMode=="year"?-e.width-e.margin.right-22:-e.width),ie=m(()=>ht(b.value).tickSizeInner(z.value).ticks(4).tickFormat(x=>(x==0?"":Math.round(x*10)/10).toLocaleString(void 0))),D=m(()=>_.showGrid?"0.5":"1"),G=m(()=>_.showGrid?"var(--color-grid)":"var(--color-bg)");function Q(x){const $=ot().x((A,ue)=>d.value(ue)).y(b.value(0)),U=ot().x((A,ue)=>d.value(ue)).y0(A=>b.value(p.graphMode=="year"?A[0]/1e3:A[0])).y1(A=>b.value(p.graphMode=="year"?A[1]/1e3:A[1]));ct?(x.selectAll("*").remove(),n=x.selectAll(".sourceareas").data(T.value).enter().append("path").attr("fill",(A,ue)=>a[l.value[ue]]).attr("d",A=>$(A)),n.transition().duration(i).delay(r).ease(Je).attr("d",A=>U(A)),At()):n.data(T.value).transition().duration(0).ease(Je).attr("d",A=>U(A))}function O(x){ct?(x.selectAll("*").remove(),s=x.selectAll(".sourcebar").data(T.value).enter().append("g").attr("fill",($,U)=>a[l.value[U]]).selectAll("rect").data($=>$).enter().append("rect").attr("x",($,U)=>xe.value(p.data[U].date)??0).attr("y",()=>b.value(0)).attr("height",0).attr("width",xe.value.bandwidth()),s.transition().duration(i).delay(r).ease(Je).attr("height",$=>p.graphMode=="year"?b.value($[0]/1e3)-b.value($[1]/1e3):b.value($[0])-b.value($[1])).attr("y",$=>p.graphMode=="year"?b.value($[1]/1e3):b.value($[1])),At()):(x.selectAll("*").remove(),s=x.selectAll(".sourcebar").data(T.value).enter().append("g").attr("fill",($,U)=>a[l.value[U]]).selectAll("rect").data($=>$).enter().append("rect").attr("x",($,U)=>xe.value(p.data[U].date)??0).attr("y",$=>p.graphMode=="year"?b.value($[1]/1e3):b.value($[1])).attr("width",xe.value.bandwidth()).attr("height",$=>p.graphMode=="year"?b.value($[0]/1e3)-b.value($[1]/1e3):b.value($[0])-b.value($[1])))}return(x,$)=>(g(),v("g",{id:"pgSourceGraph",origin:c.value,transform:"translate("+x.margin.left+","+x.margin.top+")"},null,8,Ln))}}),Dn=["origin","transform"],En=B({__name:"PGUsageGraph",props:{width:{},height:{},margin:{},stackOrder:{}},setup(t){const e=t,a=[["house","charging","devices","batIn"],["charging","devices","house","batIn"],["devices","charging","house","batIn"]],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 r=_.showAnimations?_.animationDuration:0,c=_.showAnimations?_.animationDelay:0,l=m(()=>{const O=we("g#pgUsageGraph");p.graphMode=="month"||p.graphMode=="year"?Q(O):G(O),O.selectAll(".axis").remove();const x=O.append("g").attr("class","axis");return x.call(D.value),x.selectAll(".tick").attr("font-size",12).attr("color","var(--color-axis)"),_.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"}),d=m(()=>Jt().keys(C.value)),f=m(()=>d.value(p.data)),T=m(()=>Te().domain([0,p.data.length-1]).range([0,e.width])),b=m(()=>Te().range([e.height+10,2*e.height]).domain(p.graphMode=="year"?[0,Math.ceil(z.value[1]*10)/10]:[0,Math.ceil(z.value[1])])),C=m(()=>{if(p.graphMode!="today"&&p.graphMode!="day")return a[e.stackOrder];{const O=a[e.stackOrder].slice(),x=O.indexOf("charging");O.splice(x,1);const $=/cp\d+/;let U=[];return p.data.length>0&&(U=Object.keys(p.data[0]).reduce((A,ue)=>(ue.match($)&&A.push(ue),A),[])),U.map((A,ue)=>{O.splice(x+ue,0,A),n[A]="var(--color-cp"+ue+")"}),O}}),z=m(()=>{let O=We(p.data,x=>x.house+x.charging+x.batIn+x.devices);return O[0]!=null&&O[1]!=null?(p.graphMode=="year"&&(O[0]=O[0]/1e3,O[1]=O[1]/1e3),O):[0,0]}),ie=m(()=>p.graphMode=="month"||p.graphMode=="year"?-e.width-e.margin.right-22:-e.width),D=m(()=>ht(b.value).tickSizeInner(ie.value).ticks(4).tickFormat(O=>(O==0?"":Math.round(O*10)/10).toLocaleString(void 0)));function G(O){const x=ot().x((U,A)=>T.value(A)).y(b.value(0)),$=ot().x((U,A)=>T.value(A)).y0(U=>b.value(U[0])).y1(U=>b.value(U[1]));_.showAnimations?qe?(O.selectAll("*").remove(),s=O.selectAll(".usageareas").data(f.value).enter().append("path").attr("d",U=>x(U)).attr("fill",(U,A)=>n[C.value[A]]),s.transition().duration(300).delay(100).ease(Je).attr("d",U=>$(U)),Dt()):(O.selectAll("*").remove(),O.selectAll(".usageareas").data(f.value).enter().append("path").attr("d",U=>$(U)).attr("fill",(U,A)=>n[C.value[A]])):(O.selectAll("*").remove(),O.selectAll(".usageareas").data(f.value).enter().append("path").attr("d",U=>$(U)).attr("fill",(U,A)=>n[C.value[A]]))}function Q(O){qe?(O.selectAll("*").remove(),i=O.selectAll(".usagebar").data(f.value).enter().append("g").attr("fill",(x,$)=>n[a[e.stackOrder][$]]).selectAll("rect").data(x=>x).enter().append("rect").attr("x",(x,$)=>xe.value(p.data[$].date)??0).attr("y",()=>b.value(0)).attr("height",0).attr("width",xe.value.bandwidth()),i.transition().duration(r).delay(c).ease(Je).attr("y",x=>p.graphMode=="year"?b.value(x[0]/1e3):b.value(x[0])).attr("height",x=>p.graphMode=="year"?b.value(x[1]/1e3)-b.value(x[0]/1e3):b.value(x[1])-b.value(x[0])),Dt()):(O.selectAll("*").remove(),i=O.selectAll(".usagebar").data(f.value).enter().append("g").attr("fill",(x,$)=>n[a[e.stackOrder][$]]).selectAll("rect").data(x=>x).enter().append("rect").attr("x",(x,$)=>xe.value(p.data[$].date)??0).attr("y",x=>p.graphMode=="year"?b.value(x[0]/1e3):b.value(x[0])).attr("height",x=>p.graphMode=="year"?b.value(x[1]/1e3)-b.value(x[0]/1e3):b.value(x[1])-b.value(x[0])).attr("width",xe.value.bandwidth()))}return(O,x)=>(g(),v("g",{id:"pgUsageGraph",origin:l.value,transform:"translate("+O.margin.left+","+O.margin.top+")"},null,8,Dn))}}),Wn=["transform"],Gn=["origin","transform"],Un=["origin","transform"],zn={key:0},jn=["width","height"],Nn={key:1},Jn=["y","width","height"],mt=12,Fn=B({__name:"PGXAxis",props:{width:{},height:{},margin:{}},setup(t){const e=t,a=m(()=>at(c.value).ticks(4).tickSizeInner(r.value).tickFormat(wt("%H:%M"))),n=m(()=>fa(c.value).ticks(4).tickSizeInner(r.value+3).tickFormat(wt(""))),s=m(()=>at(xe.value).ticks(4).tickSizeInner(r.value).tickFormat(f=>f.toString())),i=m(()=>at(xe.value).ticks(4).tickSizeInner(r.value).tickFormat(()=>"")),r=m(()=>p.graphMode!=="month"&&p.graphMode!=="year"?_.showGrid?-(e.height/2-7):-10:0),c=m(()=>{let f=We(p.data,T=>T.date);return f[0]&&f[1]?Ye().domain(f).range([0,e.width]):Ye().range([0,0])}),l=m(()=>{let f=we("g#PGXAxis");return f.selectAll("*").remove(),p.graphMode=="month"||p.graphMode=="year"?f.call(s.value):f.call(a.value),f.selectAll(".tick > text").attr("fill",(T,b)=>b>0||p.graphMode=="month"||p.graphMode=="year"?"var(--color-axis)":"var(--color-bg)").attr("font-size",mt),_.showGrid?f.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):f.selectAll(".tick line").attr("stroke","var(--color-bg)"),f.select(".domain").attr("stroke","var(--color-bg)"),f.append("text").attr("x",-e.margin.left).attr("y",12).attr("fill","var(--color-axis)").attr("font-size",mt).text(p.graphMode=="year"?"MW":"kW").attr("text-anchor","start"),"PGXAxis.vue"}),d=m(()=>{let f=we("g#PGXAxis2");return f.selectAll("*").remove(),p.graphMode=="month"||p.graphMode=="year"?f.call(i.value):f.call(n.value),f.selectAll(".tick > text").attr("fill",(T,b)=>b>0||p.graphMode=="month"||p.graphMode=="year"?"var(--color-axis)":"var(--color-bg)").attr("font-size",mt),_.showGrid?(f.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"),f.select(".domain").attr("stroke","var(--color-bg)")):f.selectAll(".tick line").attr("stroke","var(--color-bg)"),f.select(".domain").attr("stroke","var(--color-bg)"),"PGXAxis2.vue"});return(f,T)=>(g(),v("g",{transform:"translate("+f.margin.left+","+f.margin.top+")"},[o("g",{id:"PGXAxis",class:"axis",origin:l.value,transform:"translate(0,"+(f.height/2-6)+")"},null,8,Gn),o("g",{id:"PGXAxis2",class:"axis",origin:d.value,transform:"translate(0,"+(f.height/2+10)+")"},null,8,Un),u(_).showGrid?(g(),v("g",zn,[o("rect",{x:"0",y:"0",width:f.width,height:f.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,jn)])):k("",!0),u(_).showGrid?(g(),v("g",Nn,[o("rect",{x:"0",y:f.height/2+10,width:f.width,height:f.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,Jn)])):k("",!0)],8,Wn))}}),Rn=["d"],Hn=["d","stroke"],Yn=["x","y","text-anchor"],ft=B({__name:"PgSoc",props:{width:{},height:{},margin:{},order:{}},setup(t){const e=t,a=m(()=>{let b=We(p.data,C=>C.date);return b[0]&&b[1]?Ye().domain(b).range([0,e.width]):Ye().range([0,0])}),n=m(()=>Te().range([e.height-10,0]).domain([0,100])),s=m(()=>Ft().x(z=>a.value(z.date)).y(z=>n.value(e.order==2?z.batSoc:z["soc"+d.value.connectedVehicle])??n.value(0))(p.data)??""),i=m(()=>e.order==2?"Speicher":d.value.connectedVehicle),r=m(()=>e.order==2?"Speicher":d.value.vehicleName),c=m(()=>{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=m(()=>{switch(e.order){case 0:return e.width-3;case 1:return 3;case 2:return e.width/2;default:return 0}}),d=m(()=>{const b=e.order==2?0:e.order;return Object.values(S)[b]}),f=m(()=>{var b;if(p.data.length>0){let C;switch(e.order){case 0:return C=p.data.length-1,n.value(p.data[C]["soc"+i.value]+2);case 1:return C=0,n.value(p.data[C]["soc"+i.value]+2);case 2:return C=Math.round(p.data.length/2),n.value((((b=p.data[C])==null?void 0:b.batSoc)??0)+2);default:return 0}}else return 0}),T=m(()=>{switch(e.order){case 0:return"end";case 1:return"start";case 2:return"middle";default:return"middle"}});return(b,C)=>(g(),v(ce,null,[o("path",{class:"soc-baseline",d:s.value,stroke:"var(--color-bg)","stroke-width":"1",fill:"none"},null,8,Rn),o("path",{class:"soc-dashes",d:s.value,stroke:c.value,"stroke-width":"1",style:{strokeDasharray:"3,3"},fill:"none"},null,8,Hn),o("text",{class:"cpname",x:l.value,y:f.value,style:oe({fill:c.value,fontSize:10}),"text-anchor":T.value},P(r.value),13,Yn)],64))}}),qn=["transform"],Qn=B({__name:"PgSocAxis",props:{width:{},height:{},margin:{}},setup(t){const e=t,a=m(()=>Te().range([e.height-10,0]).domain([0,100])),n=m(()=>va(a.value).ticks(5).tickFormat(i=>i.toString()+"%"));function s(){let i=we("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 Qe(()=>{s()}),(i,r)=>(g(),v("g",{id:"PGSocAxis",class:"axis",transform:"translate("+(i.width-20)+",0)"},null,8,qn))}}),Zn={class:"btn-group m-0",role:"group","aria-label":"radiobar"},Xn=["id","value"],Kn=B({__name:"RadioBarInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=e,s=m({get(){return a.modelValue},set(c){n("update:modelValue",c)}});function i(c){let l=a.options[c].color?a.options[c].color:"var(--color-fg)";return a.options[c].active?{color:"var(--color-bg)",background:l}:{color:l}}function r(c){let l=c.target;for(;l&&!l.value&&l.parentElement;)l=l.parentElement;l.value&&(s.value=l.value)}return(c,l)=>(g(),v("div",null,[o("div",Zn,[(g(!0),v(ce,null,_e(c.options,(d,f)=>(g(),v("button",{id:"radio-"+d.value,key:f,class:re(["btn btn-outline-secondary btn-sm radiobutton mx-0 mb-0 px-2",d.value==s.value?"active":""]),value:d.value,style:oe(i(f)),onClick:r},[o("span",{style:oe(i(f)),class:"scaled d-flex flex-column pt-2"},[d.icon?(g(),v("i",{key:0,class:re(["fa-solid",d.icon])},null,2)):k("",!0),E(" "+P(d.text),1)],4)],14,Xn))),128))])]))}}),oa=j(Kn,[["__scopeId","data-v-270067ed"]]),eo={key:0,class:"fa-solid fa-xl fa-chevron-circle-down p-1",style:{color:"var(--color-bg)"}},to=B({__name:"PgSelector",props:{widgetid:{},showLeftButton:{type:Boolean},showRightButton:{type:Boolean},ignoreLive:{type:Boolean}},emits:["shiftLeft","shiftRight","shiftUp","shiftDown"],setup(t){const e=t,a=se(0),n=m(()=>{switch(p.graphMode){case"live":return e.ignoreLive?"heute":`${K.duration} min`;case"today":return"heute";case"day":return q.date.getDate()+"."+(q.date.getMonth()+1)+".";case"month":return xa(Ce.month-1,Ce.year);case"year":return Oe.year.toString();default:return"???"}}),s=["live","today","day","month","year"],i=["Live","Heute","Tag","Monat","Jahr"],r=m({get(){return p.graphMode},set(D){switch(D){case"day":d();break;case"today":f();break;case"live":l();break;case"month":T();break;case"year":b()}}});function c(){a.value+=1,a.value>1&&(a.value=0)}function l(){p.graphMode!="live"&&(p.graphMode="live",ae())}function d(){p.graphMode!="day"&&p.graphMode!="today"&&(p.graphMode="day",ae())}function f(){p.graphMode!="today"&&(p.graphMode="today",Vn(new Date),ae())}function T(){p.graphMode!="month"&&(p.graphMode="month",ae())}function b(){p.graphMode!="year"&&(p.graphMode="year",ae())}const C=m(()=>a.value>0?{border:"1px solid var(--color-frame)"}:""),z=m(()=>a.value==1?"justify-content-between":"justify-content-end"),ie=m(()=>a.value==1?"justify-content-between":"justify-content-center");return(D,G)=>(g(),v("div",{class:"d-flex flex-column justify-content-center pgselector rounded",style:oe(C.value)},[a.value==2?(g(),I(oa,{key:0,id:"pgm2",modelValue:r.value,"onUpdate:modelValue":G[0]||(G[0]=Q=>r.value=Q),class:"m-2",options:s.map((Q,O)=>({text:i[O],value:Q,color:"var(--color-menu)",active:Q==u(p).graphMode}))},null,8,["modelValue","options"])):k("",!0),a.value==1?(g(),v("span",{key:1,type:"button",class:re(["arrowButton d-flex align-self-center mb-3 mt-3",{disabled:!e.showLeftButton}]),onClick:G[1]||(G[1]=Q=>D.$emit("shiftUp"))},G[6]||(G[6]=[o("i",{class:"fa-solid fa-xl fa-chevron-circle-up"},null,-1)]),2)):k("",!0),o("div",{class:re(["d-flex align-items-center",ie.value])},[a.value==1?(g(),v("span",{key:0,type:"button",class:re(["p-1",{disabled:!e.showLeftButton}]),onClick:G[2]||(G[2]=Q=>D.$emit("shiftLeft"))},G[7]||(G[7]=[o("span",{class:"fa-solid fa-xl fa-chevron-circle-left arrowButton"},null,-1)]),2)):k("",!0),a.value<2?(g(),v("span",{key:1,type:"button",class:"btn-outline-secondary p-2 px-3 badge rounded-pill datebadge",onClick:c},P(n.value),1)):k("",!0),a.value==1?(g(),v("span",{key:2,id:"graphRightButton",type:"button",class:re(["arrowButton fa-solid fa-xl fa-chevron-circle-right p-1",{disabled:!e.showRightButton}]),onClick:G[3]||(G[3]=Q=>D.$emit("shiftRight"))},null,2)):k("",!0)],2),o("div",{class:re(["d-flex align-items-center",z.value])},[a.value==1?(g(),v("span",eo)):k("",!0),a.value==1?(g(),v("span",{key:1,id:"graphLeftButton",type:"button",class:re(["arrowButton fa-solid fa-xl fa-chevron-circle-down p-1",{disabled:!e.showLeftButton}]),onClick:G[4]||(G[4]=Q=>D.$emit("shiftDown"))},null,2)):k("",!0),a.value>0?(g(),v("span",{key:2,type:"button",class:"p-1",onClick:G[5]||(G[5]=Q=>a.value=0)},G[8]||(G[8]=[o("span",{class:"fa-solid fa-xl fa-circle-check"},null,-1)]))):k("",!0)],2)],4))}}),ra=j(to,[["__scopeId","data-v-7fd067cd"]]),ao={class:"d-flex justify-content-end"},no={class:"grid-col-12"},oo=["viewBox"],ro=["transform"],so=2,io="Leistung / Ladestand ",lo=B({__name:"PowerGraph",setup(t){function e(){let a=_.usageStackOrder+1;a>so&&(a=0),_.usageStackOrder=a,$n(!0)}return(a,n)=>(g(),I(gt,null,{title:w(()=>[E(P(io))]),buttons:w(()=>[o("div",ao,[y(ra,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!1,onShiftLeft:u(Ct),onShiftRight:u(ta),onShiftUp:u(aa),onShiftDown:u(na)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"])])]),default:w(()=>[o("div",no,[o("figure",{id:"powergraph",class:"p-0 m-0 align-self-stretch",onClick:e},[(g(),v("svg",{viewBox:"0 0 "+u(Pe)+" "+u(Ie)},[y(An,{width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W)},null,8,["width","height","margin"]),y(En,{width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W),"stack-order":u(_).usageStackOrder},null,8,["width","height","margin","stack-order"]),y(Fn,{width:u(Pe)-u(W).left-2*u(W).right,height:u(Ie)-u(W).top-u(W).bottom,margin:u(W),"graph-data":u(p)},null,8,["width","height","margin","graph-data"]),o("g",{transform:"translate("+u(W).left+","+u(W).top+")"},[(u(p).graphMode=="day"||u(p).graphMode=="today"||u(p).graphMode=="live")&&Object.values(u(S)).length>0?(g(),I(ft,{key:0,width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W),order:0},null,8,["width","height","margin"])):k("",!0),(u(p).graphMode=="day"||u(p).graphMode=="today"||u(p).graphMode=="live")&&Object.values(u(S)).length>1?(g(),I(ft,{key:1,width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W),order:1},null,8,["width","height","margin"])):k("",!0),["day","today","live"].includes(u(p).graphMode)&&u(H).isBatteryConfigured?(g(),I(ft,{key:2,width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W),order:2},null,8,["width","height","margin"])):k("",!0),["day","today","live"].includes(u(p).graphMode)?(g(),I(Qn,{key:3,width:u(Pe)-u(W).left-u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W)},null,8,["width","height","margin"])):k("",!0)],8,ro)],8,oo))])])]),_:1}))}}),co=j(lo,[["__scopeId","data-v-ba892fa4"]]),uo=["id"],ho=["x","width","height","fill"],go=["x","width","height"],po=["x","y","width","height"],mo=B({__name:"EmBar",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(t){const e=t,a=m(()=>e.height-e.yScale(e.item.energy)-e.margin.top-e.margin.bottom),n=m(()=>e.item.energyPv>0?e.height-e.yScale(e.item.energyPv)-e.margin.top-e.margin.bottom:0),s=m(()=>e.item.energyPv>0?e.height-e.yScale(e.item.energyBat)-e.margin.top-e.margin.bottom:0);return(i,r)=>(g(),v("g",{id:"bar-"+e.item.name,transform:"scale(1,-1) translate (0,-445)"},[o("rect",{class:"bar",x:e.xScale(i.item.name),y:"0",width:e.xScale.bandwidth(),height:a.value,fill:i.item.color},null,8,ho),o("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,go),o("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,po)],8,uo))}}),fo={id:"emBargraph"},vo=B({__name:"EMBarGraph",props:{plotdata:{},xScale:{},yScale:{},margin:{},height:{}},setup(t){const e=t;function a(s){if(s.name=="PV"){const i=p.graphMode=="live"||p.graphMode=="day"?J:M.items,c=(p.graphMode=="live"||p.graphMode=="day"?L:M.items).evuOut.energy,l=i.pv.energy;return Math.round((l-c)/l*100)}else if(s.name=="Netz"){const i=p.graphMode=="live"||p.graphMode=="day"?J:M.items,r=p.graphMode=="live"||p.graphMode=="day"?L:M.items,c=r.evuOut.energy,l=i.evuIn.energy,d=i.pv.energy,f=i.batOut.energy,T=r.batIn.energy;return Math.round((d+f-c-T)/(d+f+l-c-T)*100)}else return s.pvPercentage}function n(s){return s.name=="PV"?"Eigen":"Aut"}return(s,i)=>(g(),v("g",fo,[(g(!0),v(ce,null,_e(e.plotdata,(r,c)=>(g(),v("g",{key:c},[y(mo,{item:r,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":n(r),autarchy:a(r)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128)),i[0]||(i[0]=o("animateTransform",{"attribute-name":"transform",type:"scale",from:"1 0",to:"1 1",begin:"0s",dur:"2s"},null,-1))]))}}),yo=["origin"],bo=B({__name:"EMYAxis",props:{yScale:{type:[Function,Object]},width:{},fontsize:{}},setup(t){const e=t,a=m(()=>ht(e.yScale).tickFormat(s=>s>0?(s/1e3).toString():"").ticks(6).tickSizeInner(-e.width)),n=m(()=>{const s=we("g#emYAxis");return s.attr("class","axis").call(a.value),s.append("text").attr("y",6).attr("dy","0.71em").attr("text-anchor","end").text("energy"),s.selectAll(".tick").attr("font-size",e.fontsize),_.showGrid?s.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):s.selectAll(".tick line").attr("stroke","var(--color-bg)"),s.select(".domain").attr("stroke","var(--color-bg)"),"emYAxis.vue"});return(s,i)=>(g(),v("g",{id:"emYAxis",class:"axis",origin:n.value},null,8,yo))}}),_o=["id"],wo=["x","y","font-size"],ko=["x","y","font-size","fill"],xo=["x","y","font-size","fill"],So=B({__name:"EmLabel",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(t){const e=t,a=m(()=>e.autarchy?e.yScale(e.item.energy)-25:e.yScale(e.item.energy)-10),n=m(()=>{let l=16,d=e.barcount;return d<=5?l=16:d==6?l=14:d>6&&d<=8?l=13:d==9?l=11:d==10?l=10:l=9,l}),s=m(()=>{let l=12,d=e.barcount;return d<=5?l=12:d==6?l=11:d>6&&d<=8||d==9?l=8:d==10?l=7:l=6,l});function i(l,d){return d.length>s.value?d.substring(0,s.value)+".":d}function r(){return e.autarchy?e.autText+": "+e.autarchy.toLocaleString(void 0)+" %":""}function c(){return"var(--color-pv)"}return(l,d)=>(g(),v("g",{id:"barlabel-"+e.item.name},[o("text",{x:e.xScale(l.item.name)+e.xScale.bandwidth()/2,y:a.value,"font-size":n.value,"text-anchor":"middle",fill:"var(--color-menu)"},P(u(xt)(l.item.energy,u(_).decimalPlaces,!1)),9,wo),o("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:c()},P(r()),9,ko),o("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:re(l.item.icon.length<=2?"fas":"")},P(i(l.item.name,l.item.icon)),11,xo)],8,_o))}}),Mo={id:"emBarLabels"},Po=B({__name:"EMLabels",props:{plotdata:{},xScale:{},yScale:{},height:{},margin:{}},setup(t){const e=t;function a(s){if(s.name=="PV"){const i=p.graphMode=="live"||p.graphMode=="day"?J:M.items,c=(p.graphMode=="live"||p.graphMode=="day"?L:M.items).evuOut.energy,l=i.pv.energy;return Math.round((l-c)/l*100)}else if(s.name=="Netz"){const i=p.graphMode=="live"||p.graphMode=="day"?J:M.items,r=p.graphMode=="live"||p.graphMode=="day"?L:M.items,c=r.evuOut.energy,l=i.evuIn.energy,d=i.pv.energy,f=i.batOut.energy,T=r.batIn.energy;return d+f-c-T>0?Math.round((d+f-c-T)/(d+f+l-c-T)*100):0}else return s.pvPercentage}function n(s){return s.name=="PV"?"Eigen":"Aut"}return(s,i)=>(g(),v("g",Mo,[(g(!0),v(ce,null,_e(e.plotdata,(r,c)=>(g(),v("g",{key:c},[y(So,{item:r,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":n(r),autarchy:a(r)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128))]))}}),$o={class:"grid-col-12"},Co={id:"energymeter",class:"energymeter p-0 m-0 align-self-stretch"},To={viewBox:"0 0 500 500"},Io=["transform"],Bo=["x"],Oo={key:0},Et=500,vt=500,Wt=12,Vo="Energie",Lo=B({__name:"EnergyMeter",setup(t){const e={top:25,bottom:30,left:25,right:0},a=m(()=>{let r=Object.values(J),c=i.value,l=M.values(),d=[];switch(_.debug&&(console.debug("----------------------- source summary -----------------"),console.debug(J),console.debug("----------------------- usage details ------------------"),console.debug(i.value),console.debug("----------------------- historic summary ---------------"),console.debug(M),console.debug("--------------------------------------------------------")),lt.value==!0&&(lt.value=!1),p.graphMode){default:case"live":case"today":d=r.concat(c).filter(f=>f.energy>0);break;case"day":case"month":case"year":l.length==0?Re.value=!0:(Re.value=!1,d=l.filter(f=>f.energy>0))}return d}),n=m(()=>_t().range([0,Et-e.left-e.right]).domain(a.value.map(r=>r.name)).padding(.4)),s=m(()=>Te().range([vt-e.bottom-e.top,15]).domain([0,ya(a.value,r=>r.energy)])),i=m(()=>{const r=Object.values(S).length,c=[...ne.values()].filter(l=>l.configured).length;return[L.evuOut,L.devices,L.charging].concat(r>1?Object.values(S).map(l=>l.toPowerItem()):[]).concat(c>1?[...ne.values()].filter(l=>l.configured&&l.showInGraph):[]).concat([L.batIn,L.house])});return(r,c)=>(g(),I(gt,null,{title:w(()=>[E(P(Vo))]),buttons:w(()=>[y(ra,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!0,onShiftLeft:u(Ct),onShiftRight:u(ta),onShiftUp:u(aa),onShiftDown:u(na)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"])]),default:w(()=>[o("div",$o,[o("figure",Co,[(g(),v("svg",To,[o("g",{transform:"translate("+e.left+","+e.top+")"},[y(vo,{plotdata:a.value,"x-scale":n.value,"y-scale":s.value,height:vt,margin:e},null,8,["plotdata","x-scale","y-scale"]),y(bo,{"y-scale":s.value,width:Et,fontsize:Wt,config:u(_)},null,8,["y-scale","config"]),o("text",{x:-e.left,y:"-15",fill:"var(--color-axis)","font-size":Wt},P(u(p).graphMode=="year"?"MWh":"kWh"),9,Bo),y(Po,{plotdata:a.value,"x-scale":n.value,"y-scale":s.value,height:vt,margin:e,config:u(_)},null,8,["plotdata","x-scale","y-scale","config"])],8,Io)]))])]),u(Re)?(g(),v("p",Oo,"No data")):k("",!0)]),_:1}))}}),Ao=j(Lo,[["__scopeId","data-v-35f92695"]]),Do=["id"],Eo={class:"modal-dialog modal-lg modal-fullscreen-lg-down"},Wo={class:"modal-content"},Go={class:"modal-header"},Uo={class:"modal-title scaled"},zo=["id"],jo=B({__name:"ModalComponent",props:{modalId:{}},setup(t){const e=t;return(a,n)=>(g(),v("div",{id:e.modalId,class:"modal fade"},[o("div",Eo,[o("div",Wo,[o("div",Go,[o("h3",Uo,[ve(a.$slots,"title",{},void 0)]),n[0]||(n[0]=o("button",{type:"button",class:"btn-close buttonTextSize d-flex justify-content-center pt-3 pb-0","data-bs-dismiss":"modal"},[o("i",{class:"fa-solid fa-lg fa-circle-check m-0 p-0"})],-1))]),o("div",{id:"modal-body-"+e.modalId,class:"modal-body"},[ve(a.$slots,"default",{},void 0)],8,zo),n[1]||(n[1]=o("div",{class:"modal-footer"},null,-1))])])],8,Do))}}),yt=j(jo,[["__scopeId","data-v-9e5993e8"]]),No={class:"digit scaled",type:"button"},Jo=B({__name:"PadButton",props:{modelValue:{},color:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=se(!1);function s(){n.value=!0,r("update:modelValue",a.modelValue),setTimeout(()=>{n.value=!1},300)}const i=m(()=>n.value?{"background-color":"white",color:"black"}:{"background-color":a.color??"var(--color-axis)"}),r=e;return(c,l)=>(g(),v("div",{class:"padbutton",style:oe(i.value),onClick:s},[o("span",No,[ve(c.$slots,"default",{},void 0)])],4))}}),et=j(Jo,[["__scopeId","data-v-cc256a6f"]]),Fo={class:"numberpad"},Ro={class:"codedisplay scaled"},Ho={class:"numberentry"},Yo=B({__name:"NumberPad",props:{modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const n=se(t.modelValue),s=e,i=m(()=>n.value.length==0?"Bitte geben Sie die PIN ein":"*".repeat(n.value.length));function r(c){c==-1?n.value=n.value.slice(0,-1):c==-2?(s("update:modelValue",n.value),n.value=""):n.value=n.value+c.toString()}return(c,l)=>(g(),v("div",Fo,[o("p",Ro,P(i.value),1),o("div",Ho,[(g(),v(ce,null,_e(9,d=>y(et,{key:d,"model-value":d,"onUpdate:modelValue":r},{default:w(()=>[E(P(d),1)]),_:2},1032,["model-value"])),64)),y(et,{"model-value":0,"onUpdate:modelValue":r},{default:w(()=>l[0]||(l[0]=[E("0")])),_:1}),y(et,{"model-value":-1,color:"var(--color-devices)","onUpdate:modelValue":r},{default:w(()=>l[1]||(l[1]=[o("span",{class:"fas fa-delete-left"},null,-1)])),_:1}),y(et,{"model-value":-2,color:"var(--color-devices)","data-bs-dismiss":"modal","onUpdate:modelValue":r},{default:w(()=>l[2]||(l[2]=[o("span",{class:"fas fa-circle-check"},null,-1)])),_:1})])]))}}),qo=j(Yo,[["__scopeId","data-v-63c8fa5c"]]),Qo={class:"statustable"},Zo={key:0,class:"controlbuttons d-flex justify-content-between p-5"},Xo={key:1,class:"confirmationBox rounded m-5 p-5 d-flex flex-column align-items-center"},Ko={class:"d-flex justify-content-between mt-3"},er={key:2,class:"confirmationBox rounded m-5 p-5 d-flex flex-column align-items-center"},tr={class:"d-flex justify-content-between mt-3"},ar={key:3,class:"confirmationBox rounded m-5 p-5 d-flex flex-column align-items-center"},nr={key:4,class:"confirmationBox rounded m-5 p-5 d-flex flex-column align-items-center"},or=B({__name:"StatusPage",setup(t){let e=se(0);function a(){e.value=4,Be.parentChargePoint1!==void 0?(console.log("Shutting down secondary charge point: ",Be.parentChargePoint1),De("chargepointShutdown",{chargePoint:Be.parentChargePoint1})):(console.log("Shutting down primary system"),De("systemShutdown"))}function n(){e.value=3,Be.parentChargePoint1!==void 0?(console.log("Rebooting secondary charge point:",Be.parentChargePoint1),De("chargepointReboot",{chargePoint:Be.parentChargePoint1})):(console.log("Rebooting primary system"),De("systemReboot"))}function s(){location.reload()}return(i,r)=>(g(),v(ce,null,[o("div",Qo,[r[7]||(r[7]=o("span",{class:"header"},"IP-Adresse:",-1)),o("span",null,P(u(H).ipAddress),1),r[8]||(r[8]=o("span",{class:"header"},"Systemzeit:",-1)),o("span",null,P(new Date(u(H).systemTime*1e3).toLocaleString(void 0)),1),r[9]||(r[9]=o("span",{class:"header"},"Version:",-1)),o("span",null,P(u(H).version),1),r[10]||(r[10]=o("span",{class:"header"},"Version (Details):",-1)),o("span",null,P(u(H).versionDetails),1),r[11]||(r[11]=o("span",{class:"header"},"Entwicklungszweig:",-1)),o("span",null,P(u(H).devBranch),1)]),u(e)==0?(g(),v("div",Zo,[o("button",{class:"btn controlbutton",style:{"background-color":"var(--color-battery)"},onClick:r[0]||(r[0]=c=>s())},r[12]||(r[12]=[o("i",{class:"fa-solid fa-rotate-left"},null,-1),E(" Display neu laden ")])),o("button",{class:"btn controlbutton",style:{"background-color":"var(--color-evu)"},onClick:r[1]||(r[1]=c=>Ke(e)?e.value=1:e=1)},r[13]||(r[13]=[o("i",{class:"fa-solid fa-power-off"},null,-1),E(" openWB neu starten ")])),o("button",{class:"btn controlbutton",style:{"background-color":"var(--color-evu)"},onClick:r[2]||(r[2]=c=>Ke(e)?e.value=2:e=2)},r[14]||(r[14]=[o("i",{class:"fa-solid fa-power-off"},null,-1),E(" openWB abschalten ")]))])):k("",!0),u(e)==1?(g(),v("div",Xo,[r[15]||(r[15]=o("span",{class:"confirmTitle"},"Neustart",-1)),r[16]||(r[16]=o("span",{class:"confirmQuestion"},"Die openWB jetzt neu starten?",-1)),o("div",Ko,[o("button",{class:"btn cancelButton mx-3 px-3",onClick:r[3]||(r[3]=c=>Ke(e)?e.value=0:e=0)}," Abbrechen "),o("button",{class:"btn confirmButton mx-3 px-3",onClick:r[4]||(r[4]=c=>n())}," Neustart ")])])):k("",!0),u(e)==2?(g(),v("div",er,[r[17]||(r[17]=o("span",{class:"confirmTitle"},"Abschalten",-1)),r[18]||(r[18]=o("span",{class:"confirmQuestion"},"Die openWB jetzt abschalten?",-1)),o("div",tr,[o("button",{class:"btn cancelButton mx-3 px-3",onClick:r[5]||(r[5]=c=>Ke(e)?e.value=0:e=0)}," Abbrechen "),o("button",{class:"btn confirmButton mx-3 px-3",onClick:r[6]||(r[6]=c=>a())}," Abschalten ")])])):k("",!0),u(e)==3?(g(),v("div",ar,r[19]||(r[19]=[o("span",{class:"confirmTitle"},"Die openWB startet jetzt neu. Bitte warten.",-1)]))):k("",!0),u(e)==4?(g(),v("div",nr,r[20]||(r[20]=[o("span",{class:"confirmTitle"},"Die openWB wird heruntergefahren. Zum Starten die Stromversorgung aus- und wieder einschalten.",-1)]))):k("",!0)],64))}}),rr=j(or,[["__scopeId","data-v-74ffcddc"]]),sr={class:"d-flex align-items-baseline m-0 p-0 scaled"},ir={class:"configwidget ms-1 mb-2 p-0 pt-2 d-flex justify-content-stretch align-items-center"},lr={class:"configslot justify-content-stretch d-flex"},cr=B({__name:"ConfigItem",props:{title:{},infotext:{},icon:{},iconcolor:{},fullwidth:{type:Boolean}},setup(t){const e=t;return(a,n)=>(g(),v(ce,null,[o("span",sr,[e.icon?(g(),v("i",{key:0,class:re(["fa-solid fa-sm m-0 p-0 me-2 item-icon",e.icon]),style:oe({color:e.iconcolor?e.iconcolor:"var(--color-charging)"})},null,6)):k("",!0),E(" "+P(a.title),1)]),o("div",ir,[o("span",lr,[ve(a.$slots,"default",{},void 0)])])],64))}}),R=j(cr,[["__scopeId","data-v-b438f667"]]),ur={class:"rangewidget d-flex flex-column"},dr={class:"rangeslider d-flex flex-fill justify-content-between align-items-center"},hr={class:"d-flex flex-fill flex-column justify-content-center m-0 p-0"},gr={key:0,id:"rangeIndicator",class:"rangeIndicator"},pr={viewBox:"0 0 100 2"},mr=["width"],fr=["x","width"],vr=["x","width"],yr=["id","min","max","step"],br={class:"d-flex justify-content-between align-items-center"},_r={class:"minlabel ps-4"},wr={class:"valuelabel"},kr={class:"maxlabel pe-4"},xr=B({__name:"RangeInput",props:{id:{},min:{},max:{},step:{},unit:{},decimals:{},showSubrange:{type:Boolean},subrangeMin:{},subrangeMax:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=a.decimals??0,s=e,i=m({get(){return Math.round(a.modelValue*Math.pow(10,n))/Math.pow(10,n)},set(b){s("update:modelValue",b)}});function r(){i.value>a.min&&(i.value=Math.round((i.value-a.step)*Math.pow(10,n))/Math.pow(10,n))}function c(){i.valueTe().domain([a.min,a.max]).range([0,100])),d=m(()=>l.value(a.subrangeMin?a.subrangeMin:0)),f=m(()=>a.subrangeMin&&a.subrangeMax?l.value(a.subrangeMax)-l.value(a.subrangeMin):0),T=m(()=>a.subrangeMax&&a.max?l.value(a.max)-l.value(a.subrangeMax):0);return(b,C)=>(g(),v("span",ur,[o("span",dr,[o("span",{type:"button",class:"minusButton",onClick:r},C[1]||(C[1]=[o("i",{class:"fa fa-xl fa-minus-square me-2"},null,-1)])),o("div",hr,[a.showSubrange?(g(),v("figure",gr,[(g(),v("svg",pr,[o("g",null,[o("rect",{class:"below",x:0,y:"0",width:d.value,height:"2",rx:"1",ry:"1",fill:"var(--color-evu)"},null,8,mr),o("rect",{class:"bar",x:d.value,y:"0",width:f.value,height:"2",rx:"1",ry:"1",fill:"var(--color-charging)"},null,8,fr),o("rect",{class:"above",x:d.value+f.value,y:"0",width:T.value,height:"2",rx:"1",ry:"1",fill:"var(--color-pv)"},null,8,vr)])]))])):k("",!0),Fe(o("input",{id:b.id,"onUpdate:modelValue":C[0]||(C[0]=z=>i.value=z),type:"range",class:"form-range flex-fill",min:b.min,max:b.max,step:b.step},null,8,yr),[[ba,i.value,void 0,{number:!0}]])]),o("span",{type:"button",class:"plusButton",onClick:c},C[2]||(C[2]=[o("i",{class:"fa fa-xl fa-plus-square ms-2"},null,-1)]))]),o("span",br,[o("span",_r,P(b.min),1),o("span",wr,P(i.value)+" "+P(b.unit),1),o("span",kr,P(b.max),1)])]))}}),he=j(xr,[["__scopeId","data-v-41dc3794"]]),Sr=["id","value"],Mr=B({__name:"RadioInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=e,s=m({get(){return a.modelValue},set(c){console.log(a.options),console.log("set value",c),n("update:modelValue",c)}});function i(c){return a.options[c][2]?{color:a.options[c][2]}:{color:"var(--color-fg)"}}function r(c){console.log(c);let l=c.target;for(;l&&!l.value&&l.parentElement;)l=l.parentElement;l.value&&(typeof a.options[0][1]=="number"?s.value=Number(l.value):s.value=l.value)}return(c,l)=>(g(),v("div",null,[(g(!0),v(ce,null,_e(c.options,(d,f)=>(g(),v("button",{id:"radio-"+d[1],key:f,class:re(["btn btn-outline-secondary radiobutton me-2 mb-0 px-2",d[1]==s.value?"active":""]),value:d[1],style:oe(i(f)),onClick:r},[o("span",{style:oe(i(f)),class:"scaled"},[d[3]?(g(),v("i",{key:0,class:re(["fa-solid",d[3]])},null,2)):k("",!0),E(" "+P(d[0]),1)],4)],14,Sr))),128))]))}}),Le=j(Mr,[["__scopeId","data-v-1e5bd3af"]]),Pr={class:"instantsettings"},$r={key:0,class:"fullwidth"},Cr=B({__name:"ConfigInstant",props:{chargepointId:{}},setup(t){const e=t,a=m(()=>S[e.chargepointId]),n=[{name:"keine",id:"none"},{name:"EV-SoC",id:"soc"},{name:"Energiemenge",id:"amount"}],s=m({get(){return a.value.instantMaxEnergy/1e3},set(i){a.value.instantMaxEnergy=i*1e3}});return(i,r)=>(g(),v("div",Pr,[y(R,{title:"Stromstärke",icon:"fa-bolt",fullwidth:!0},{default:w(()=>[y(he,{id:"targetCurrent",modelValue:a.value.instantTargetCurrent,"onUpdate:modelValue":r[0]||(r[0]=c=>a.value.instantTargetCurrent=c),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1}),y(R,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:w(()=>[y(Le,{id:"targetPhases",modelValue:a.value.instantTargetPhases,"onUpdate:modelValue":r[1]||(r[1]=c=>a.value.instantTargetPhases=c),options:[["Eine",1],["Max",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),a.value.instantChargeLimitMode!="none"?(g(),v("hr",$r)):k("",!0),y(R,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:a.value.instantChargeLimitMode,"onUpdate:modelValue":r[2]||(r[2]=c=>a.value.instantChargeLimitMode=c),options:n.map(c=>[c.name,c.id])},null,8,["modelValue","options"])]),_:1}),a.value.instantChargeLimitMode=="soc"?(g(),I(R,{key:1,title:"Maximaler SoC",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxSoc",modelValue:a.value.instantTargetSoc,"onUpdate:modelValue":r[3]||(r[3]=c=>a.value.instantTargetSoc=c),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):k("",!0),a.value.instantChargeLimitMode=="amount"?(g(),I(R,{key:2,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxEnergy",modelValue:s.value,"onUpdate:modelValue":r[4]||(r[4]=c=>s.value=c),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):k("",!0)]))}}),Tr=j(Cr,[["__scopeId","data-v-49084b39"]]),Ir={class:"form-check form-switch d-flex align-items-center justify-content-center"},Br=B({__name:"SwitchInput",props:{modelValue:{type:Boolean},onColor:{},offColor:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=e,s=m({get(){return a.modelValue},set(i){n("update:modelValue",i)}});return(i,r)=>(g(),v("div",Ir,[Fe(o("input",{"onUpdate:modelValue":r[0]||(r[0]=c=>s.value=c),class:"form-check-input",type:"checkbox",role:"switch"},null,512),[[_a,s.value]])]))}}),Ve=j(Br,[["__scopeId","data-v-547e6de4"]]),Or={class:"pvsettings pt-2"},Vr={key:3,class:"fullwidth"},Lr=B({__name:"ConfigPv",props:{chargepointId:{}},setup(t){const e=t,a=m(()=>S[e.chargepointId]),n=[{name:"keine",id:"none"},{name:"EV-SoC",id:"soc"},{name:"Energiemenge",id:"amount"}],s=m({get(){return a.value.pvMaxEnergy/1e3},set(c){a.value.pvMaxEnergy=c*1e3}}),i=m({get(){return a.value.pvMinCurrent>5},set(c){c?a.value.pvMinCurrent=6:a.value.pvMinCurrent=0}}),r=m({get(){return a.value.pvMinSoc>0},set(c){c?a.value.pvMinSoc=50:a.value.pvMinSoc=0}});return(c,l)=>(g(),v("div",Or,[y(R,{title:"Minimaler Ladestrom",icon:"fa-bolt",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:i.value,"onUpdate:modelValue":l[0]||(l[0]=d=>i.value=d)},null,8,["modelValue"])]),_:1}),i.value?(g(),I(R,{key:0,title:"...bei Ladestrom (minimal)",fullwidth:!0},{default:w(()=>[y(he,{id:"minCurrent",modelValue:a.value.pvMinCurrent,"onUpdate:modelValue":l[1]||(l[1]=d=>a.value.pvMinCurrent=d),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1})):k("",!0),y(R,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:w(()=>[y(Le,{id:"targetPhases",modelValue:a.value.pvTargetPhases,"onUpdate:modelValue":l[2]||(l[2]=d=>a.value.pvTargetPhases=d),options:[["Eine",1],["Max",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),y(R,{title:"Mindest-Ladestand",icon:"fa-battery-half",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:r.value,"onUpdate:modelValue":l[3]||(l[3]=d=>r.value=d)},null,8,["modelValue"])]),_:1}),r.value?(g(),I(R,{key:1,title:"...bis SoC",fullwidth:!0},{default:w(()=>[y(he,{id:"minSoc",modelValue:a.value.pvMinSoc,"onUpdate:modelValue":l[4]||(l[4]=d=>a.value.pvMinSoc=d),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):k("",!0),r.value?(g(),I(R,{key:2,title:"...mit Ladestrom",fullwidth:!0},{default:w(()=>[y(he,{id:"minSocCurrent",modelValue:a.value.pvMinSocCurrent,"onUpdate:modelValue":l[5]||(l[5]=d=>a.value.pvMinSocCurrent=d),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1})):k("",!0),a.value.pvChargeLimitMode!="none"?(g(),v("hr",Vr)):k("",!0),y(R,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:a.value.pvChargeLimitMode,"onUpdate:modelValue":l[6]||(l[6]=d=>a.value.pvChargeLimitMode=d),options:n.map(d=>[d.name,d.id])},null,8,["modelValue","options"])]),_:1}),a.value.pvChargeLimitMode=="soc"?(g(),I(R,{key:4,title:"Maximaler SoC",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxSoc",modelValue:a.value.pvTargetSoc,"onUpdate:modelValue":l[7]||(l[7]=d=>a.value.pvTargetSoc=d),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):k("",!0),a.value.pvChargeLimitMode=="amount"?(g(),I(R,{key:5,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxEnergy",modelValue:s.value,"onUpdate:modelValue":l[8]||(l[8]=d=>s.value=d),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):k("",!0),y(R,{title:"Einspeisegrenze beachten",icon:"fa-hand",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:a.value.pvFeedInLimit,"onUpdate:modelValue":l[9]||(l[9]=d=>a.value.pvFeedInLimit=d)},null,8,["modelValue"])]),_:1})]))}}),Ar=j(Lr,[["__scopeId","data-v-54a8d955"]]),Dr={class:"d-flex flex-column p-3"},Er={key:0,class:"info p-5"},Wr={key:1,class:"table table-dark"},Gr=B({__name:"ConfigScheduled",props:{chargePoint:{}},setup(t){const e={daily:"Täglich",once:"Einmal",weekly:"Wöchentlich"},a=t,n=m(()=>{var c;return((c=a.chargePoint.chargeTemplate)==null?void 0:c.chargemode.scheduled_charging.plans)??[]});function s(c){return n.value[c].time}function i(c){return{"font-weight":n.value[c].active?"bold":"regular"}}function r(c){a.chargePoint.chargeTemplate.chargemode.scheduled_charging.plans[c].active=n.value[c].active,F(a.chargePoint.id)}return(c,l)=>(g(),v("div",Dr,[l[1]||(l[1]=o("div",{class:"subtitle mb-4"},"Pläne für Zielladen:",-1)),n.value.length==0?(g(),v("div",Er," Pläne für das Zielladen können in den Einstellungen des Ladeprofils angelegt werden. ")):(g(),v("table",Wr,[l[0]||(l[0]=o("thead",null,[o("tr",null,[o("th"),o("th",null,"Plan"),o("th",null,"Zielzeit"),o("th",null,"Ladeziel"),o("th",null,"Wiederholung")])],-1)),o("tbody",null,[(g(!0),v(ce,null,_e(n.value,(d,f)=>(g(),v("tr",{key:f,style:oe(i(f))},[o("td",null,[y(Ve,{modelValue:d.active,"onUpdate:modelValue":[T=>d.active=T,T=>r(f)]},null,8,["modelValue","onUpdate:modelValue"])]),o("td",null,P(d.name),1),o("td",null,P(s(f)),1),o("td",null,P(d.limit.selected=="soc"?d.limit.soc_scheduled+"%":u(xt)(d.limit.amount,0)),1),o("td",null,P(e[d.frequency.selected]),1)],4))),128))])]))]))}}),Ur=j(Gr,[["__scopeId","data-v-f5100bdc"]]),zr={class:"digit scaled",type:"button"},jr=B({__name:"PadButtonSmall",props:{modelValue:{},color:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=se(!1);function s(){n.value=!0,r("update:modelValue",a.modelValue),setTimeout(()=>{n.value=!1},300)}const i=m(()=>n.value?{"background-color":"white",color:"black"}:{"background-color":a.color??"var(--color-axis)"}),r=e;return(c,l)=>(g(),v("div",{class:"padbutton",style:oe(i.value),onClick:s},[o("span",zr,[ve(c.$slots,"default",{},void 0)])],4))}}),Ae=j(jr,[["__scopeId","data-v-c4e8b67a"]]),Nr={class:"numberpad"},Jr={class:"codedisplay scaled px-3 py-1 mb-4"},Fr={class:"numberentry"},Rr=B({__name:"PricePad",props:{modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const n=se(t.modelValue),s=e;function i(r){r==-1?n.value=n.value.slice(0,-1):r==-2?(s("update:modelValue",n.value),n.value=""):r==-3?n.value.indexOf(".")==-1&&(n.value=n.value+"."):n.value=n.value+r.toString()}return(r,c)=>(g(),v("div",Nr,[o("p",Jr,P(n.value)+" ct",1),o("div",Fr,[(g(),v(ce,null,_e(3,l=>y(Ae,{key:l,"model-value":l,"onUpdate:modelValue":i},{default:w(()=>[E(P(l),1)]),_:2},1032,["model-value"])),64)),y(Ae,{"model-value":-2,color:"var(--color-devices)","onUpdate:modelValue":i},{default:w(()=>c[0]||(c[0]=[o("span",{class:"fas fa-circle-check"},null,-1)])),_:1}),(g(),v(ce,null,_e([4,5,6],l=>y(Ae,{key:l,"model-value":l,"onUpdate:modelValue":i},{default:w(()=>[E(P(l),1)]),_:2},1032,["model-value"])),64)),y(Ae,{"model-value":-1,color:"var(--color-devices)","onUpdate:modelValue":i},{default:w(()=>c[1]||(c[1]=[o("span",{class:"fas fa-delete-left"},null,-1)])),_:1}),(g(),v(ce,null,_e([7,8,9],l=>y(Ae,{key:l,"model-value":l,"onUpdate:modelValue":i},{default:w(()=>[E(P(l),1)]),_:2},1032,["model-value"])),64)),c[4]||(c[4]=o("div",null,null,-1)),c[5]||(c[5]=o("div",null,null,-1)),y(Ae,{"model-value":0,"onUpdate:modelValue":i},{default:w(()=>c[2]||(c[2]=[E("0")])),_:1}),y(Ae,{"model-value":-3,"onUpdate:modelValue":i},{default:w(()=>c[3]||(c[3]=[E(",")])),_:1})])]))}}),Hr=j(Rr,[["__scopeId","data-v-2cdf4e9c"]]),Yr={class:"pricesettings"},qr={class:"grapharea rounded shadow p-2"},Qr={id:"pricechart"},Zr={viewBox:"0 0 400 270"},Xr=["id","origin","transform"],Kr={class:"controlarea rounded shadow p-2"},es={class:"pt-1 pb-2 d-flex justify-content-between"},ts={key:1,class:"sliderarea"},bt=400,Gt=250,Ut=12,as=B({__name:"PriceChart",props:{chargePointId:{},globalview:{type:Boolean}},setup(t){const e=t,a=m(()=>S[e.chargePointId]),n=se(!1),s=se(!1);let i=a.value?se(a.value.etMaxPrice):se(0);const r=m({get(){return i.value},set(V){i.value=V,n.value=!0}}),c=m({get(){return(Math.round(i.value*10)/10).toString()},set(V){r.value=parseFloat(V)??r.value,s.value=!1}});function l(){a.value&&(a.value.etMaxPrice=r.value),n.value=!1}const d=se(!1),f={top:0,bottom:15,left:20,right:15},T=m(()=>{let V=[];return te.etPriceList.size>0&&te.etPriceList.forEach((N,pe)=>{V.push([pe,N])}),V}),b=m(()=>T.value.length>1?(bt-f.left-f.right)/T.value.length-1:0),C=m(()=>n.value?{background:"var(--color-charging)",color:"var(--color-fg)"}:{background:"var(--color-menu)"});function z(){s.value=!s.value}const ie=m(()=>{let V=We(T.value,N=>N[0]);return V[1]&&(V[1]=new Date(V[1]),V[1].setTime(V[1].getTime()+36e5)),Ye().range([f.left,bt-f.right]).domain(V)}),D=m(()=>{let V=We(T.value,N=>N[1]);return V[0]=V[0]?Math.floor(V[0]-1):0,V[1]=V[1]?Math.floor(V[1]+1):0,V}),G=m(()=>Te().range([Gt-f.bottom,0]).domain(D.value)),Q=m(()=>{const V=Ft(),N=[[f.left,G.value(r.value)],[bt-f.right-1,G.value(r.value)]];return V(N)}),O=m(()=>at(ie.value).ticks(T.value.length).tickSize(5).tickSizeInner(-250).tickFormat(V=>V.getHours()%6==0?wt("%H:%M")(V):"")),x=m(()=>ht(G.value).ticks(6).tickSizeInner(-365).tickFormat(V=>V.toString())),$=m(()=>{d.value==!0;const V=we("g#"+U.value);V.selectAll("*").remove(),V.selectAll("bar").data(T.value).enter().append("g").append("rect").attr("class","bar").attr("x",ye=>ie.value(ye[0])).attr("y",ye=>G.value(ye[1])).attr("width",b.value).attr("height",ye=>G.value(D.value[0])-G.value(ye[1])).attr("fill",ye=>ye[1]<=r.value?"var(--color-charging)":"var(--color-axis)");const pe=V.append("g").attr("class","axis").call(O.value);pe.attr("transform","translate(0,"+(Gt-f.bottom)+")"),pe.selectAll(".tick").attr("font-size",Ut).attr("color","var(--color-bg)"),pe.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",ye=>ye.getHours()%6==0?"2":"0.5"),pe.select(".domain").attr("stroke","var(--color-bg");const Xe=V.append("g").attr("class","axis").call(x.value);return Xe.attr("transform","translate("+f.left+",0)"),Xe.selectAll(".tick").attr("font-size",Ut).attr("color","var(--color-bg)"),Xe.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",ye=>ye%5==0?"2":"0.5"),Xe.select(".domain").attr("stroke","var(--color-bg)"),V.append("path").attr("d",Q.value).attr("stroke","yellow"),"PriceChart.vue"}),U=m(()=>a.value?"priceChartCanvas"+a.value.id:"priceChartCanvasGlobal"),A=m(()=>{let V=[];return te.etPriceList.forEach(N=>{V.push(N)}),V.sort((N,pe)=>N-pe)});function ue(){let V=A.value[0];for(let N of A.value){if(N>=r.value)break;V=N}r.value=V}function da(){let V=A.value[0];for(let N of A.value)if(N>r.value){V=N;break}else V=N;r.value=V}return Qe(()=>{d.value=!d.value}),(V,N)=>(g(),v("div",Yr,[o("div",qr,[o("span",null,"Anbieter: "+P(u(te).etProvider),1),o("figure",Qr,[(g(),v("svg",Zr,[o("g",{id:U.value,origin:$.value,transform:"translate("+f.top+","+f.right+")"},null,8,Xr)]))])]),o("div",Kr,[o("span",es,[o("button",{type:"button",class:"btn btn-lg keypadbutton me-3",onClick:z},N[2]||(N[2]=[o("i",{class:"fa fa-xl fa-keyboard"},null,-1)])),s.value?k("",!0):(g(),v("button",{key:0,type:"button",class:"btn btn-lg confirmbutton",style:oe(C.value),"data-bs-dismiss":"modal",onClick:l}," Bestätigen ",4))]),s.value?(g(),I(Hr,{key:0,modelValue:c.value,"onUpdate:modelValue":N[0]||(N[0]=pe=>c.value=pe),decimals:1,class:"mb-3"},null,8,["modelValue"])):(g(),v("div",ts,[y(he,{id:"etmaxprice",modelValue:r.value,"onUpdate:modelValue":N[1]||(N[1]=pe=>r.value=pe),min:Math.floor(A.value[0]-1),max:Math.ceil(A.value[A.value.length-1]+1),step:.1,decimals:1,"show-subrange":!0,"subrange-min":A.value[0],"subrange-max":A.value[A.value.length-1],unit:"ct"},null,8,["modelValue","min","max","subrange-min","subrange-max"]),o("div",{class:"d-flex justify-content-between pb-2 pt-0 mt-0"},[o("button",{type:"button",class:"btn jumpbutton",onClick:ue},N[3]||(N[3]=[o("i",{class:"fa fa-xl fa-arrow-left"},null,-1)])),o("button",{type:"button",class:"btn jumpbutton",onClick:da},N[4]||(N[4]=[o("i",{class:"fa fa-xl fa-arrow-right"},null,-1)]))])]))])]))}}),ns=j(as,[["__scopeId","data-v-7e771d75"]]),os={class:"ecosettings"},rs={key:1,class:"fullwidth"},ss=B({__name:"ConfigEco",props:{chargepoint:{}},setup(t){const e=t,a=m(()=>S[e.chargepoint.id]),n=[{name:"keine",id:"none"},{name:"EV-SoC",id:"soc"},{name:"Energiemenge",id:"amount"}],s=m({get(){return a.value.ecoMaxEnergy/1e3},set(c){a.value.ecoMaxEnergy=c*1e3}});function i(){const c=document.getElementById("modal-body-settingspage");c?c.scrollTo({top:c.scrollHeight,behavior:"smooth"}):console.warn("modalbody not found")}function r(){const c=document.getElementById("modal-body-settingspage");window.scrollTo(0,0),c?c.scrollTo({top:0,behavior:"smooth"}):console.warn("modalbody not found")}return(c,l)=>(g(),v("div",os,[u(te).active&&u(te).etPriceList.size>0?(g(),I(ns,{key:0,"charge-point-id":e.chargepoint.id,class:"fullwidth"},null,8,["charge-point-id"])):k("",!0),o("span",{class:"fullwidth mb-4 mt-2"},[o("button",{type:"button",class:"btn btn-secondary",onClick:i},l[5]||(l[5]=[o("i",{class:"fa-solid fa-circle-down me-2"},null,-1),E(" Abwärts ")]))]),y(R,{title:"Minimaler Ladestrom unter der Preisgrenze",icon:"fa-bolt",fullwidth:!0},{default:w(()=>[y(he,{id:"minCurrent",modelValue:a.value.ecoMinCurrent,"onUpdate:modelValue":l[0]||(l[0]=d=>a.value.ecoMinCurrent=d),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1}),y(R,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:w(()=>[y(Le,{id:"targetPhases",modelValue:a.value.ecoTargetPhases,"onUpdate:modelValue":l[1]||(l[1]=d=>a.value.ecoTargetPhases=d),options:[["Eine",1],["Max",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),a.value.ecoChargeLimitMode!="none"?(g(),v("hr",rs)):k("",!0),y(R,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:a.value.ecoChargeLimitMode,"onUpdate:modelValue":l[2]||(l[2]=d=>a.value.ecoChargeLimitMode=d),options:n.map(d=>[d.name,d.id])},null,8,["modelValue","options"])]),_:1}),a.value.ecoChargeLimitMode=="soc"?(g(),I(R,{key:2,title:"Maximaler SoC",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxSoc",modelValue:a.value.ecoTargetSoc,"onUpdate:modelValue":l[3]||(l[3]=d=>a.value.ecoTargetSoc=d),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):k("",!0),a.value.ecoChargeLimitMode=="amount"?(g(),I(R,{key:3,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxEnergy",modelValue:s.value,"onUpdate:modelValue":l[4]||(l[4]=d=>s.value=d),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):k("",!0),o("span",{class:"fullwidth"},[o("button",{type:"button",class:"btn btn-secondary",onClick:r},l[6]||(l[6]=[o("i",{class:"fa-solid fa-circle-up me-2"},null,-1),E(" Aufwärts ")]))])]))}}),is=j(ss,[["__scopeId","data-v-b46bd22a"]]),ls={class:"d-flex flex-column p-3"},cs={key:0,class:"warning p-5"},us={class:"table table-dark"},ds=B({__name:"ConfigTimed",props:{chargePoint:{}},setup(t){const e={daily:"Täglich",once:"Einmal",weekly:"Wöchentlich"},a=t,n=m(()=>{var r;return((r=a.chargePoint.chargeTemplate)==null?void 0:r.time_charging.plans)??[]});function s(r){a.chargePoint.chargeTemplate.chargemode.scheduled_charging.plans[r].active=n.value[r].active,F(a.chargePoint.id)}function i(r){return{"font-weight":n.value[r].active?"bold":"regular"}}return(r,c)=>(g(),v("div",ls,[c[1]||(c[1]=o("div",{class:"subtitle mb-4"},"Zeitpläne:",-1)),n.value.length==0?(g(),v("div",cs," Es sind noch keine Pläne definiert. Zeitpläne können in der Web-App festgelegt werden. ")):k("",!0),o("table",us,[c[0]||(c[0]=o("thead",null,[o("tr",null,[o("th"),o("th",null,"Von"),o("th",null,"Bis"),o("th",null,"Ladestrom"),o("th",null,"Wiederholung")])],-1)),o("tbody",null,[(g(!0),v(ce,null,_e(n.value,(l,d)=>(g(),v("tr",{key:d,style:oe(i(d))},[o("td",null,[y(Ve,{modelValue:l.active,"onUpdate:modelValue":[f=>l.active=f,f=>s(d)]},null,8,["modelValue","onUpdate:modelValue"])]),o("td",null,P(l.time[0]),1),o("td",null,P(l.time[1]),1),o("td",null,P(l.current)+"A",1),o("td",null,P(e[l.frequency.selected]),1)],4))),128))])])]))}}),hs=j(ds,[["__scopeId","data-v-7817e508"]]),gs={class:"chargesettings pt-2"},ps={key:1,class:"grid-col-2 my-2"},ms=B({__name:"ChargeConfig",props:{chargepointId:{}},setup(t){const e=t,a=m(()=>S[e.chargepointId]),n=m({get:()=>a.value.connectedVehicle,set:i=>{S[a.value.id].connectedVehicle=i}}),s=m({get:()=>a.value.timedCharging,set:i=>{S[a.value.id].timedCharging=i}});return(i,r)=>(g(),v("div",gs,[Object.keys(u(X)).length>1?(g(),I(R,{key:0,title:"Fahrzeug wechseln",icon:"fa-car",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:n.value,"onUpdate:modelValue":r[0]||(r[0]=c=>n.value=c),modelModifiers:{number:!0},options:Object.values(u(X)).map(c=>[c.name,c.id])},null,8,["modelValue","options"])]),_:1})):k("",!0),r[5]||(r[5]=o("hr",{class:"grid-col-2 my-2"},null,-1)),y(R,{title:"Priorität",icon:"fa-star",iconcolor:"var(--color-evu)",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:a.value.hasPriority,"onUpdate:modelValue":r[1]||(r[1]=c=>a.value.hasPriority=c)},null,8,["modelValue"])]),_:1}),y(R,{title:"Zeitplan aktivieren",icon:"fa-clock",iconcolor:"var(--color-battery)"},{default:w(()=>[y(Ve,{modelValue:s.value,"onUpdate:modelValue":r[2]||(r[2]=c=>s.value=c)},null,8,["modelValue"])]),_:1}),y(R,{title:"Sperren",icon:"fa-lock",iconcolor:"var(--color-evu)",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:a.value.isLocked,"onUpdate:modelValue":r[3]||(r[3]=c=>a.value.isLocked=c)},null,8,["modelValue"])]),_:1}),u(H).isBatteryConfigured?(g(),v("hr",ps)):k("",!0),u(H).isBatteryConfigured?(g(),I(R,{key:2,title:"PV-Priorität (global)",icon:"fa-car-battery",iconcolor:"var(--color-battery)",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:u(H).pvBatteryPriority,"onUpdate:modelValue":r[4]||(r[4]=c=>u(H).pvBatteryPriority=c),options:u(Ea)},null,8,["modelValue","options"])]),_:1})):k("",!0)]))}}),fs=j(ms,[["__scopeId","data-v-276daf1f"]]),vs=["id"],ys={class:"nav nav-tabs nav-justified mx-1 mt-1",role:"tablist"},bs=["id","data-bs-target"],_s=["id","data-bs-target"],ws=["id","data-bs-target"],ks=["id","data-bs-target"],xs=["id","data-bs-target"],Ss=["id","data-bs-target"],Ms={id:"settingsPanes",class:"tab-content mt-2"},Ps=["id"],$s=["id"],Cs=["id"],Ts=["id"],Is=["id"],Bs=["id"],Os=B({__name:"SettingsPage",props:{chargepoint:{}},setup(t){const e=t,a=m(()=>e.chargepoint.chargeTemplate),n=m(()=>e.chargepoint.id);return(s,i)=>(g(),v("div",{id:`tabarea-${n.value}`,class:"m-0 mt-1 p-0 grid-col-12 tabarea"},[o("nav",ys,[o("a",{id:"chSettings"+n.value,class:"nav-link active","data-bs-toggle":"tab","data-bs-target":"#chargeSettings"+n.value},i[0]||(i[0]=[o("i",{class:"fa-solid fa-charging-station"},null,-1),E(" Allgemein ")]),8,bs),o("a",{id:"inSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#instantSettings"+n.value},i[1]||(i[1]=[o("i",{class:"fa-solid fa-lg fa-bolt"},null,-1),E(" Sofort ")]),8,_s),o("a",{id:"phvSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#pvSettings"+n.value},i[2]||(i[2]=[o("i",{class:"fa-solid fa-solar-panel me-1"},null,-1),E(" PV ")]),8,ws),o("a",{id:"scSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#scheduledSettings"+n.value},i[3]||(i[3]=[o("i",{class:"fa-solid fa-bullseye me-1"},null,-1),E(" Zielladen ")]),8,ks),o("a",{id:"ecSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#ecoSettings"+n.value},i[4]||(i[4]=[o("i",{class:"fa-solid fa-coins me-1"},null,-1),E(" Eco ")]),8,xs),o("a",{id:"tmSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#timeSettings"+n.value},i[5]||(i[5]=[o("i",{class:"fa-solid fa-clock"},null,-1),E(" Zeitpläne ")]),8,Ss)]),o("div",Ms,[o("div",{id:"chargeSettings"+n.value,class:"tab-pane active",role:"tabpanel","aria-labelledby":"instant-tab"},[y(fs,{"chargepoint-id":n.value},null,8,["chargepoint-id"])],8,Ps),o("div",{id:"instantSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"instant-tab"},[y(Tr,{"chargepoint-id":n.value},null,8,["chargepoint-id"])],8,$s),o("div",{id:"pvSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"pv-tab"},[y(Ar,{"chargepoint-id":n.value},null,8,["chargepoint-id"])],8,Cs),o("div",{id:"scheduledSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"scheduled-tab"},[a.value!=null?(g(),I(Ur,{key:0,"charge-point":e.chargepoint},null,8,["charge-point"])):k("",!0)],8,Ts),o("div",{id:"ecoSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"eco-tab"},[a.value!=null?(g(),I(is,{key:0,chargepoint:e.chargepoint},null,8,["chargepoint"])):k("",!0)],8,Is),o("div",{id:"timeSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"time-tab"},[a.value!=null?(g(),I(hs,{key:0,"charge-point":e.chargepoint},null,8,["charge-point"])):k("",!0)],8,Bs)])],8,vs))}}),Vs=j(Os,[["__scopeId","data-v-cbeeb183"]]);function Ls(t,e){t=="openWB/graph/boolDisplayLiveGraph"?H.displayLiveGraph=+e==1:t.match(/^openwb\/graph\/alllivevaluesJson[1-9][0-9]*$/i)?As(t,e):t=="openWB/graph/lastlivevaluesJson"?Ds(t,e):t=="openWB/graph/config/duration"&&(K.duration=JSON.parse(e))}function As(t,e){if(!K.initialized){let a=[];const n=e.toString().split(` +var ha=Object.defineProperty;var ga=(t,e,a)=>e in t?ha(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var h=(t,e,a)=>ga(t,typeof e!="symbol"?e+"":e,a);import{m as pa,r as Y,a as se,M as dt,d as B,c as v,o as g,n as oe,b as k,e as o,f as re,g as ve,h as m,s as we,i as Qe,j as zt,k as y,w,l as E,p as I,u,t as P,q as jt,v as Nt,x as ma,F as ce,y as _e,z as We,A as _t,B as Te,C as Jt,D as ht,E as ot,G as Je,H as at,I as wt,J as fa,K as Ye,L as Ft,N as va,O as ya,P as Ke,Q as Fe,R as ba,S as _a,T as rt,U as Rt,V as pt,W as wa}from"./vendor-DTwSGpnw.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"]'))n(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const r of i.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function a(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=a(s);fetch(s.href,i)}})();function nt(t,e=1){let a;if(t>=1e3&&e<4){switch(e){case 0:a=Math.round(t/1e3);break;case 1:a=Math.round(t/100)/10;break;case 2:a=Math.round(t/10)/100;break;case 3:a=Math.round(t)/1e3;break;default:a=Math.round(t/100)/10;break}return(a==null?void 0:a.toLocaleString(void 0,{minimumFractionDigits:e}))+" kW"}else return Math.round(t).toLocaleString(void 0)+" W"}function xt(t,e=1,a=!1){let n;if(t>1e6&&(a=!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).toFixed(1);break;case 2:n=(Math.round(t/10)/100).toFixed(2);break;case 3:n=(Math.round(t)/1e3).toFixed(3);break;default:n=Math.round(t/100)/10;break}return n.toLocaleString(void 0,{minimumFractionDigits:e})+(a?" MWh":" kWh")}else return Math.round(t).toLocaleString(void 0)+(a?" kWh":" Wh")}function ka(t){return t.toLocaleTimeString(["de-DE"],{hour:"numeric",minute:"2-digit"})}function xa(t,e){return["Jan","Feb","März","April","Mai","Juni","Juli","Aug","Sep","Okt","Nov","Dez"][t]+" "+e}const Sa=0,Ht={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)},st={topic:"",qos:Sa};let ge;const{host:Ma,port:Pa,endpoint:$a,...Yt}=Ht,Ca=`${Yt.protocol}://${Ma}:${Pa}${$a}`;try{ge=pa.connect(Ca,Yt),ge.on("connect",()=>{console.info("MQTT connection successful.")}),ge.on("disconnect",()=>{console.info("MQTT disconnected")}),ge.on("error",t=>{console.error("MQTT connection failed: ",t)})}catch(t){console.error("MQTT connect error: ",t)}async function Ta(t){await qt(),ge?ge.on("message",t):console.error("MqttRegister: MQTT client not available")}async function Ee(t){st.topic=t;const{topic:e,qos:a}=st;await qt(),ge.subscribe(e,{qos:a},n=>{if(n){console.error("MQTT Subscription error: "+n);return}})}function Ue(t){st.topic=t;const{topic:e}=st;ge.unsubscribe(e,a=>{if(a){console.error("MQTT Unsubscribe from "+t+" failed: "+a);return}})}async function it(t,e){let n=ge.connected,s=0;for(;!n&&s<10;)console.warn("MQTT not connected. Waiting 0.1 seconds"),await Qt(100),n=ge.connected,s+=1;if(s<10)try{ge.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 St(){return Ht.clientId}const It=20;async function qt(){let t=ge.connected,e=0;for(;!t&&e{esetTimeout(e,t))}let Ia=class{constructor(e){h(this,"id");h(this,"name","Ladepunkt");h(this,"icon","Ladepunkt");h(this,"type","");h(this,"ev",0);h(this,"template",0);h(this,"connectedPhases",0);h(this,"phase_1",0);h(this,"autoPhaseSwitchHw",!1);h(this,"controlPilotInterruptionHw",!1);h(this,"isEnabled",!0);h(this,"isPluggedIn",!1);h(this,"isCharging",!1);h(this,"_isLocked",!1);h(this,"_connectedVehicle",0);h(this,"chargeTemplate",null);h(this,"chargeTemplateId",0);h(this,"evTemplate",0);h(this,"currentPlan","");h(this,"averageConsumption",0);h(this,"vehicleName","");h(this,"rangeCharged",0);h(this,"rangeUnit","");h(this,"counter",0);h(this,"dailyYield",0);h(this,"energyPv",0);h(this,"energyBat",0);h(this,"pvPercentage",0);h(this,"faultState",0);h(this,"faultStr","");h(this,"phasesInUse",0);h(this,"power",0);h(this,"chargedSincePlugged",0);h(this,"stateStr","");h(this,"current",0);h(this,"currents",[0,0,0]);h(this,"phasesToUse",0);h(this,"isSocConfigured",!0);h(this,"isSocManual",!1);h(this,"waitingForSoc",!1);h(this,"color","white");this.id=e}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked=e,je("cpLock",e,this.id)}updateIsLocked(e){this._isLocked=e}get connectedVehicle(){return this._connectedVehicle}set connectedVehicle(e){this._connectedVehicle=e,je("cpVehicle",e,this.id)}updateConnectedVehicle(e){this._connectedVehicle=e}get soc(){return X[this.connectedVehicle]?X[this.connectedVehicle].soc:0}set soc(e){X[this.connectedVehicle]&&(X[this.connectedVehicle].soc=e)}get chargeMode(){var e;return((e=this.chargeTemplate)==null?void 0:e.chargemode.selected)??"stop"}set chargeMode(e){console.log("set mode"),this.chargeTemplate&&(console.log("active"),this.chargeTemplate.chargemode.selected=e,F(this.id))}get hasPriority(){var e;return((e=this.chargeTemplate)==null?void 0:e.prio)??!1}set hasPriority(e){this.chargeTemplate.prio=e,F(this.id)}get timedCharging(){return this.chargeTemplate?this.chargeTemplate.time_charging.active:!1}set timedCharging(e){this.chargeTemplate.time_charging.active=e,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(this.id))}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,F(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,F(this.id))}set pvMinSocPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.phases_to_use_min_soc=e,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(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,F(this.id))}get etActive(){return this.chargeTemplate&&this.chargeTemplate.chargemode.selected=="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,power:this.power,energy:this.dailyYield,energyPv:this.energyPv,energyBat:this.energyBat,pvPercentage:this.pvPercentage,color:this.color,icon:this.icon}}};class Ba{constructor(e){h(this,"id");h(this,"name","");h(this,"_chargeTemplateId",0);h(this,"_evTemplateId",0);h(this,"tags",[]);h(this,"config",{});h(this,"soc",0);h(this,"range",0);h(this,"_etActive",!1);h(this,"_etMaxPrice",20);this.id=e}get chargeTemplateId(){return this._chargeTemplateId}set chargeTemplateId(e){this._chargeTemplateId=e,je("vhChargeTemplateId",e,this.id)}updateChargeTemplateId(e){this._chargeTemplateId=e}get evTemplateId(){return this._evTemplateId}set evTemplateId(e){this._evTemplateId=e,je("vhEvTemplateId",e,this.id)}updateEvTemplateId(e){this._evTemplateId=e}get chargepoint(){for(const e of Object.values(S))if(e.connectedVehicle==this.id)return e}}var Ge=(t=>(t.instant_charging="instant_charging",t.pv_charging="pv_charging",t.scheduled_charging="scheduled_charging",t.eco_charging="eco_charging",t.stop="stop",t))(Ge||{});const S=Y({}),X=Y({}),Oa=Y({});Y({});Y({});const Va=Y({});function La(t){t in S||(S[t]=new Ia(t),S[t].color="var(--color-cp"+(Object.values(S).length-1)+")")}function Aa(){Object.keys(S).forEach(t=>{delete S[parseInt(t)]})}const Zt={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",cpTimedPlanActive:"openWB/set/vehicle/template/charge_template/%/time_charging/plans/@/active",cpScheduledPlanActive:"openWB/set/vehicle/template/charge_template/%/chargemode/scheduled_charging/plans/@/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 je(t,e,a=0,n=void 0){if(isNaN(a)){console.warn("Invalid index");return}let s=Zt[t];if(!s){console.warn("No topic for update type "+t);return}switch(t){default:s=s.replace("%",String(a)),n!=null&&(s=s.replace("@",String(n)))}switch(typeof e){case"number":it(s,JSON.stringify(+e));break;default:it(s,JSON.stringify(e))}}function De(t,e={}){console.log("send command "+t+" "+JSON.stringify(e)),it(`openWB/set/command/${St()}/todo`,JSON.stringify({command:t,data:e}))}function F(t){it(Zt.chargeTemplate.replace("%",String(t)),JSON.stringify(S[t].chargeTemplate))}class Da{constructor(){h(this,"batterySoc",0);h(this,"isBatteryConfigured",!0);h(this,"chargeMode","0");h(this,"_pvBatteryPriority","ev_mode");h(this,"displayLiveGraph",!0);h(this,"isEtEnabled",!0);h(this,"etMaxPrice",0);h(this,"etCurrentPrice",0);h(this,"cpDailyExported",0);h(this,"evuId",0);h(this,"etProvider","");h(this,"ipAddress","");h(this,"systemTime",0);h(this,"version","");h(this,"versionDetails","");h(this,"devBranch","")}get pvBatteryPriority(){return this._pvBatteryPriority}set pvBatteryPriority(e){this._pvBatteryPriority=e,je("pvBatteryPriority",e)}updatePvBatteryPriority(e){this._pvBatteryPriority=e}}const Ea=[["EV","ev_mode"],["Speicher","bat_mode"],["MinSoc","min_soc_bat_mode"]],le=Y({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"}});class Xt{constructor(){h(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){this._items[e]=$e(e)}setEnergy(e,a){this.keys().includes(e)||this.addItem(e),this._items[e].energy=a}setEnergyPv(e,a){this.keys().includes(e)||this.addItem(e),this._items[e].energyPv=a}setEnergyBat(e,a){this.keys().includes(e)||this.addItem(e),this._items[e].energyBat=a}setPvPercentage(e,a){this.keys().includes(e)||this.addItem(e),this._items[e].pvPercentage=a}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 M=new Xt;function Mt(){M=new Xt}const J=Y({evuIn:$e("evuIn"),pv:$e("pv"),batOut:$e("batOut")}),L=Y({evuOut:$e("evuOut"),charging:$e("charging"),devices:$e("devices"),batIn:$e("batIn"),house:$e("house")}),H=Y(new Da);se("");const lt=se(!1);function $e(t){return{name:le[t]?le[t].name:"item",power:0,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:le[t]?le[t].color:"var(--color-charging)",icon:le[t]?le[t].icon:""}}const ee=Y({active:!1,locked:!0,usePin:!1,code:"",timeout:60,localCpOnly:!1});function ze(){ee.usePin&&ee.locked?new dt("#numberpad").toggle():(ee.locked=!1,setTimeout(()=>{ee.locked=!0},ee.timeout*1e3))}function Wa(t){return t==ee.code}const Bt=se(new Date),Ga={class:"scaled"},Ua=B({__name:"DisplayButton",props:{icon:{},bgcolor:{},color:{}},emits:["click"],setup(t,{emit:e}){const a=t,n=e;function s(){n("click",!0)}return(i,r)=>(g(),v("div",{style:oe({"background-color":a.bgcolor?a.bgcolor:"var(--color-bg)",color:a.color?a.color:"var(--color-title)"}),class:"displaybutton rounded-pill",type:"button",onClick:s},[a.icon?(g(),v("span",{key:0,class:re(["fas me-2 scaled",a.icon])},null,2)):k("",!0),o("span",Ga,[ve(i.$slots,"default",{},void 0)])],4))}}),j=(t,e)=>{const a=t.__vccOpts||t;for(const[n,s]of e)a[n]=s;return a},be=j(Ua,[["__scopeId","data-v-0f8aebee"]]);class za{constructor(e){h(this,"id");h(this,"name","Gerät");h(this,"power",0);h(this,"status","off");h(this,"energy",0);h(this,"runningTime",0);h(this,"configured",!1);h(this,"_showInGraph",!0);h(this,"color","white");h(this,"canSwitch",!1);h(this,"countAsHouse",!1);h(this,"energyPv",0);h(this,"energyBat",0);h(this,"pvPercentage",0);h(this,"tempConfigured",0);h(this,"temp",[300,300,300]);h(this,"on",!1);h(this,"isAutomatic",!0);h(this,"icon","");this.id=e}get showInGraph(){return this._showInGraph}set showInGraph(e){this._showInGraph=e,Z()}setShowInGraph(e){this._showInGraph=e}}const ne=Y(new Map);function Kt(t){t in ne?console.info("Duplicate sh device message: "+t):(ne.set(t,new za(t)),ne.get(t).color="var(--color-sh"+ne.size+")")}class ja{constructor(){h(this,"graphToShow","powermeter");h(this,"cpToShow",0);h(this,"displayLocked",!0);h(this,"_showRelativeArcs",!1);h(this,"showTodayGraph",!0);h(this,"_graphPreference","live");h(this,"_usageStackOrder",0);h(this,"_displayMode","dark");h(this,"_showGrid",!1);h(this,"_smartHomeColors","normal");h(this,"_decimalPlaces",1);h(this,"_showQuickAccess",!0);h(this,"_simpleCpList",!1);h(this,"_shortCpList","no");h(this,"_showAnimations",!0);h(this,"_preferWideBoxes",!1);h(this,"_maxPower",4e3);h(this,"_fluidDisplay",!1);h(this,"_showClock","no");h(this,"_showButtonBar",!0);h(this,"_showCounters",!1);h(this,"_showVehicles",!1);h(this,"_showPrices",!1);h(this,"_debug",!1);h(this,"isEtEnabled",!1);h(this,"etPrice",20.5);h(this,"showRightButton",!0);h(this,"showLeftButton",!0);h(this,"animationDuration",300);h(this,"animationDelay",100);h(this,"zoomGraph",!1);h(this,"parentChargePoint1");h(this,"parentChargePoint2")}get showRelativeArcs(){return this._showRelativeArcs}set showRelativeArcs(e){this._showRelativeArcs=e,Z()}setShowRelativeArcs(e){this._showRelativeArcs=e}get graphPreference(){return this._graphPreference}set graphPreference(e){this._graphPreference=e,Z()}setGraphPreference(e){this._graphPreference=e}get usageStackOrder(){return this._usageStackOrder}set usageStackOrder(e){this._usageStackOrder=e,Z()}setUsageStackOrder(e){this._usageStackOrder=e}get displayMode(){return this._displayMode}set displayMode(e){this._displayMode=e,Ja(e)}setDisplayMode(e){this._displayMode=e}get showGrid(){return this._showGrid}set showGrid(e){this._showGrid=e,Z()}setShowGrid(e){this._showGrid=e}get decimalPlaces(){return this._decimalPlaces}set decimalPlaces(e){this._decimalPlaces=e,Z()}setDecimalPlaces(e){this._decimalPlaces=e}get smartHomeColors(){return this._smartHomeColors}set smartHomeColors(e){this._smartHomeColors=e,Vt(e),Z()}setSmartHomeColors(e){this._smartHomeColors=e,Vt(e)}get showQuickAccess(){return this._showQuickAccess}set showQuickAccess(e){this._showQuickAccess=e,Z()}setShowQuickAccess(e){this._showQuickAccess=e}get simpleCpList(){return this._simpleCpList}set simpleCpList(e){this._simpleCpList=e,Z()}setSimpleCpList(e){this._simpleCpList=e}get shortCpList(){return this._shortCpList}set shortCpList(e){this._shortCpList=e,Z()}setShortCpList(e){this._shortCpList=e}get showAnimations(){return this._showAnimations}set showAnimations(e){this._showAnimations=e,Z()}setShowAnimations(e){this._showAnimations=e}get preferWideBoxes(){return this._preferWideBoxes}set preferWideBoxes(e){this._preferWideBoxes=e,Z()}setPreferWideBoxes(e){this._preferWideBoxes=e}get maxPower(){return this._maxPower}set maxPower(e){this._maxPower=e,Z()}setMaxPower(e){this._maxPower=e}get fluidDisplay(){return this._fluidDisplay}set fluidDisplay(e){this._fluidDisplay=e,Z()}setFluidDisplay(e){this._fluidDisplay=e}get showClock(){return this._showClock}set showClock(e){this._showClock=e,Z()}setShowClock(e){this._showClock=e}get debug(){return this._debug}set debug(e){this._debug=e,Z()}setDebug(e){this._debug=e}get showButtonBar(){return this._showButtonBar}set showButtonBar(e){this._showButtonBar=e,Z()}setShowButtonBar(e){this._showButtonBar=e}get showCounters(){return this._showCounters}set showCounters(e){this._showCounters=e,Z()}setShowCounters(e){this._showCounters=e}get showVehicles(){return this._showVehicles}set showVehicles(e){this._showVehicles=e,Z()}setShowVehicles(e){this._showVehicles=e}get showPrices(){return this._showPrices}set showPrices(e){this._showPrices=e,Z()}setShowPrices(e){this._showPrices=e}}const _=Y(new ja),Be=Y({localIp:void 0,localBranch:void 0,localCommit:void 0,localVersion:void 0,parentChargePoint1:void 0,parentChargePoint2:void 0}),Na=992,kt=Y({x:document.documentElement.clientWidth,y:document.documentElement.clientHeight});function Ot(){kt.x=document.documentElement.clientWidth,kt.y=document.documentElement.clientHeight}m(()=>kt.x>=Na);const Ne={instant_charging:{mode:Ge.instant_charging,name:"Sofort",color:"var(--color-charging)",icon:"fa-bolt"},pv_charging:{mode:Ge.pv_charging,name:"PV",color:"var(--color-pv",icon:"fa-solar-panel"},scheduled_charging:{mode:Ge.scheduled_charging,name:"Zielladen",color:"var(--color-battery)",icon:"fa-bullseye"},eco_charging:{mode:Ge.eco_charging,name:"Eco",color:"var(--color-devices)",icon:"fa-coins"},stop:{mode:Ge.stop,name:"Stop",color:"var(--color-fg)",icon:"fa-power-off"}};function Z(){Fa()}function Ja(t){const e=we("html");e.classed("theme-dark",t=="dark"),e.classed("theme-light",t=="light"),e.classed("theme-blue",t=="blue"),Z()}function Vt(t){const e=we("html");e.classed("shcolors-normal",t=="normal"),e.classed("shcolors-standard",t=="standard"),e.classed("shcolors-advanced",t=="advanced")}function Fa(){const t={};t.hideSH=[...ne.values()].filter(e=>!e.showInGraph).map(e=>e.id),t.showLG=_.graphPreference=="live",t.displayM=_.displayMode,t.stackO=_.usageStackOrder,t.showGr=_.showGrid,t.decimalP=_.decimalPlaces,t.smartHomeC=_.smartHomeColors,t.relPM=_.showRelativeArcs,t.maxPow=_.maxPower,t.showQA=_.showQuickAccess,t.simpleCP=_.simpleCpList,t.shortCP=_.shortCpList,t.animation=_.showAnimations,t.wideB=_.preferWideBoxes,t.fluidD=_.fluidDisplay,t.clock=_.showClock,t.showButtonBar=_.showButtonBar,t.showCounters=_.showCounters,t.showVehicles=_.showVehicles,t.showPrices=_.showPrices,t.debug=_.debug,document.cookie="openWBColorTheme="+JSON.stringify(t)+";max-age=16000000;samesite=strict"}const Ra={class:"navigation"},Ha={class:"graphbuttons"},Ya={class:"cpbuttons"},qa={class:"timedisplay ms-4"},Qa=B({__name:"NavigationBar",setup(t){let e;function a(){let l=Object.values(S).length;_.cpToShow=(_.cpToShow+1)%l}function n(){let l=Object.values(S).length;_.cpToShow=((_.cpToShow-1)%l+l)%l}function s(){_.graphToShow="powermeter"}function i(){_.graphToShow="powergraph"}function r(){_.graphToShow="energymeter"}function c(){ee.locked?ze():new dt("#statuspage").toggle()}return Qe(()=>{e=setInterval(()=>{Bt.value=new Date},1e3)}),zt(()=>{clearInterval(e)}),(l,d)=>(g(),v("div",Ra,[o("span",Ha,[d[3]||(d[3]=o("span",{class:"brand me-4"},"openWB",-1)),y(be,{icon:"fa-chart-pie",onClick:s},{default:w(()=>d[0]||(d[0]=[E("Leistung")])),_:1}),y(be,{icon:"fa-chart-line",onClick:i},{default:w(()=>d[1]||(d[1]=[E("Verlauf")])),_:1}),y(be,{icon:"fa-chart-column",onClick:r},{default:w(()=>d[2]||(d[2]=[E("Energie")])),_:1})]),y(be,{icon:"fa-rectangle-list",onClick:c},{default:w(()=>d[4]||(d[4]=[E("Status")])),_:1}),o("span",Ya,[Object.values(u(S)).length>1?(g(),I(be,{key:0,color:"var(--color-cp0)",onClick:n},{default:w(()=>d[5]||(d[5]=[o("span",{class:"fas fa-arrow-left px-2"},null,-1),o("span",{class:"fas fa-charging-station pe-2"},null,-1)])),_:1})):k("",!0),y(be,{bgcolor:u(ee).locked?"var(--color-evu)":"var(--color-pv)",onClick:u(ze)},{default:w(()=>d[6]||(d[6]=[o("span",{class:"fas fa-lock px-4"},null,-1)])),_:1},8,["bgcolor","onClick"]),Object.values(u(S)).length>1?(g(),I(be,{key:1,color:"var(--color-cp0)",onClick:a},{default:w(()=>d[7]||(d[7]=[o("span",{class:"fas fa-charging-station px-2"},null,-1),o("span",{class:"fas fa-arrow-right pe-2"},null,-1)])),_:1})):k("",!0),o("span",qa,P(u(ka)(u(Bt))),1)])]))}}),Za=j(Qa,[["__scopeId","data-v-6d0b9541"]]),Xa=["origin"],Ka=B({__name:"PMSourceArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{}},setup(t){const e=t,a=m(()=>{let n={name:"",power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:""},s=J;s["zz-empty"]=n;const i=Object.values(J).length-1,r=jt().value(d=>d.power).startAngle(-Math.PI/2+e.circleGapSize).endAngle(Math.PI/2-e.circleGapSize).sort(null),c=Nt().innerRadius(e.radius/6*5).outerRadius(e.radius).cornerRadius(e.cornerRadius).padAngle(0),l=we("g#pmSourceArc");return l.selectAll("*").remove(),l.selectAll("sources").data(r(Object.values(s))).enter().append("path").attr("d",c).attr("fill",d=>d.data.color).attr("stroke",(d,f)=>f==i?d.data.power>0?"var(--color-scale)":"null":d.data.color),"pmSourceArc.vue"});return ma(()=>{let n=J.pv.power+J.evuIn.power+J.batOut.power;n>_.maxPower&&(_.maxPower=n)}),(n,s)=>(g(),v("g",{id:"pmSourceArc",origin:a.value},null,8,Xa))}}),en=["origin"],tn=B({__name:"PMUsageArc",props:{radius:{},cornerRadius:{},circleGapSize:{},emptyPower:{}},setup(t){const e=t,a=m(()=>{let n={name:"",power:e.emptyPower,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:"var(--color-bg)",icon:""};const s=[L.evuOut,L.charging].concat([...ne.values()].filter(d=>d.configured&&!d.countAsHouse).sort((d,f)=>f.power-d.power)).concat([L.batIn,L.house]).concat(n),i=s.length-1,r=jt().value(d=>d.power).startAngle(Math.PI*1.5-e.circleGapSize).endAngle(Math.PI/2+e.circleGapSize).sort(null),c=Nt().innerRadius(e.radius/6*5).outerRadius(e.radius).cornerRadius(e.cornerRadius),l=we("g#pmUsageArc");return l.selectAll("*").remove(),l.selectAll("consumers").data(r(s)).enter().append("path").attr("d",c).attr("fill",d=>d.data.color).attr("stroke",(d,f)=>f==i?d.data.power>0?"var(--color-scale)":"null":d.data.color),"pmUsageArc.vue"});return(n,s)=>(g(),v("g",{id:"pmUsageArc",origin:a.value},null,8,en))}}),ea=B({__name:"FormatWatt",props:{watt:{}},setup(t){const e=t,a=m(()=>nt(e.watt,_.decimalPlaces));return(n,s)=>P(a.value)}}),an={key:0,id:"pmLabel"},nn=["x","y","fill","text-anchor"],on=22,ke=B({__name:"PMLabel",props:{x:{},y:{},data:{},props:{},anchor:{},labeltext:{},labelicon:{},labelcolor:{}},setup(t){const e=t,a=m(()=>e.labeltext?e.labeltext:e.props?e.props.icon+" ":e.labelicon?e.labelicon+" ":""),n=m(()=>e.labelcolor?e.labelcolor:e.props?e.props.color:""),s=m(()=>!e.data||e.data.power>0),i=m(()=>e.labeltext?"":"fas");return(r,c)=>s.value?(g(),v("g",an,[o("text",{x:r.x,y:r.y,fill:n.value,"text-anchor":r.anchor,"font-size":on,class:"pmLabel"},[o("tspan",{class:re(i.value)},P(a.value),3),o("tspan",null,[r.data!==void 0?(g(),I(ea,{key:0,watt:r.data.power},null,8,["watt"])):k("",!0)])],8,nn)])):k("",!0)}}),rn={},sn={class:"p-2 m-0 cont"},ln={class:"wb-widget m-0 pb-2 shadow"},cn={class:"header mt-4 mx-2"},un={class:"titles"},dn={class:"title"},hn={class:"subtitle"},gn={class:"buttons"},pn={class:"wb-subwidget mx-2"},mn={key:0},fn={class:"wb-subwidget mx-2"};function vn(t,e){return g(),v("div",sn,[o("div",ln,[o("div",cn,[o("div",un,[o("div",dn,[ve(t.$slots,"title",{},()=>[e[0]||(e[0]=o("div",{class:"p-0"},"(title goes here)",-1))])]),o("div",hn,[ve(t.$slots,"subtitle",{},void 0)])]),o("div",gn,[ve(t.$slots,"buttons",{},void 0)])]),o("div",pn,[ve(t.$slots,"default",{},void 0)]),t.$slots.footer!=null?(g(),v("div",mn,[e[1]||(e[1]=o("hr",{class:"grid-col-12"},null,-1)),o("div",fn,[ve(t.$slots,"footer",{},void 0)])])):k("",!0)])])}const gt=j(rn,[["render",vn],["__scopeId","data-v-e8292acd"]]);class yn{constructor(){h(this,"active",!1);h(this,"etPriceList",new Map);h(this,"etProvider","");h(this,"etMaxPrice",0)}get etCurrentPriceString(){const[e]=te.etPriceList.values();return(Math.round(e*10)/10).toFixed(1)+" ct"}}const te=Y(new yn),bn={class:"grid-col-12"},_n={id:"powermeter",class:"powermeter p-0 m-0 align-self-stretch"},wn=["viewBox"],kn=["transform"],xn={transform:"scale(0.9294,1)"},Sn=["x"],Se=500,Me=20,Lt=1,Mn=B({__name:"PowerMeter",setup(t){const e=Se,a=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=m(()=>Se/2-Me),r=m(()=>{let D="",G=Object.values(J).filter(Q=>Q.power>0);return G.length==1&&G[0].name=="PV"?D="Aktueller Verbrauch: ":D="Bezug/Verbrauch: ",D+nt(L.house.power+L.charging.power+L.devices.power+L.batIn.power,_.decimalPlaces)}),c=m(()=>{let D=J.pv.power+J.evuIn.power+J.batOut.power;return _.maxPower>D?nt(_.maxPower,_.decimalPlaces):nt(D,_.decimalPlaces)}),l=m(()=>Object.values(S)),d=m(()=>{let D=0;return _.showRelativeArcs&&(D=_.maxPower-(J.pv.power+J.evuIn.power+J.batOut.power)),D<0?0:D}),f=m(()=>[L.evuOut,L.charging,L.devices,L.batIn,L.house].filter(D=>D.power>0)),T=m(()=>n[f.value.length-1]);function b(D){return s[T.value[D]]}function C(D){return Math.round(l.value[D].soc)}function z(D){return D.length>12?D.slice(0,11)+".":D}const ie=m(()=>{const[D]=te.etPriceList.values();return Math.round(D*10)/10});return(D,G)=>(g(),I(gt,null,{title:w(()=>G[0]||(G[0]=[E(" Aktuelle Leistung ")])),default:w(()=>[o("div",bn,[o("figure",_n,[(g(),v("svg",{viewBox:"0 0 "+Se+" "+u(e)},[o("g",{transform:"translate("+Se/2+","+u(e)/2+")"},[o("g",xn,[y(Ka,{radius:i.value,"corner-radius":Lt,"circle-gap-size":a,"empty-power":d.value},null,8,["radius","empty-power"]),y(tn,{"sh-device":u(ne),radius:i.value,"corner-radius":Lt,"circle-gap-size":a,"empty-power":d.value},null,8,["sh-device","radius","empty-power"]),y(ke,{x:0,y:-u(e)/10*2,data:u(J).pv,props:u(le).pv,anchor:"middle",config:u(_)},null,8,["y","data","props","config"]),y(ke,{x:0,y:-u(e)/10*3,data:u(J).evuIn,props:u(le).evuIn,anchor:"middle",config:u(_)},null,8,["y","data","props","config"]),y(ke,{x:0,y:-u(e)/10,data:u(J).batOut,props:u(le).batOut,anchor:"middle",config:u(_)},null,8,["y","data","props","config"]),u(te).active?(g(),I(ke,{key:0,x:0,y:-u(e)/10,data:u(J).batOut,props:u(le).batOut,anchor:"middle",config:u(_)},null,8,["y","data","props","config"])):k("",!0),(g(!0),v(ce,null,_e(f.value,(Q,O)=>(g(),I(ke,{key:O,x:b(O).x,y:b(O).y,data:Q,labelicon:Q.icon,labelcolor:Q.color,anchor:"middle",config:u(_)},null,8,["x","y","data","labelicon","labelcolor","config"]))),128)),l.value.length>0&&u(X)[l.value[0].connectedVehicle]?(g(),I(ke,{key:1,x:-Se/2-Me/4+10,y:-u(e)/2+Me+5,labeltext:z(u(X)[l.value[0].connectedVehicle].name)+": "+C(0)+"%",labelcolor:l.value[0].color,anchor:"start",config:u(_)},null,8,["x","y","labeltext","labelcolor","config"])):k("",!0),l.value.length>1&&u(X)[l.value[1].connectedVehicle]?(g(),I(ke,{key:2,x:Se/2+Me/4-10,y:-u(e)/2+Me+5,labeltext:z(u(X)[l.value[1].connectedVehicle].name)+": "+C(1)+"%",labelcolor:l.value[1].color,anchor:"end",config:u(_)},null,8,["x","y","labeltext","labelcolor","config"])):k("",!0),u(H).batterySoc>0?(g(),I(ke,{key:3,x:-Se/2-Me/4+10,y:u(e)/2-Me+15,labeltext:"Speicher: "+u(H).batterySoc+"%",labelcolor:u(L).batIn.color,anchor:"start",config:u(_)},null,8,["x","y","labeltext","labelcolor","config"])):k("",!0),u(te).active?(g(),I(ke,{key:4,x:Se/2+Me/4-10,y:u(e)/2-Me+15,value:ie.value,labeltext:u(te).etCurrentPriceString,labelcolor:"var(--color-charging)",anchor:"end",config:u(_)},null,8,["x","y","value","labeltext","config"])):k("",!0),y(ke,{x:0,y:0,labeltext:r.value,labelcolor:"var(--color-fg)",anchor:"middle",config:u(_)},null,8,["labeltext","config"]),u(_).showRelativeArcs?(g(),v("text",{key:5,x:Se/2-44,y:"2","text-anchor":"middle",fill:"var(--color-axis)","font-size":"12"}," Peak: "+P(c.value),9,Sn)):k("",!0)])],8,kn)],8,wn))])])]),_:1}))}}),Pe=500,Ie=500,W={top:10,right:20,bottom:10,left:25},Pt=["charging","house","batIn","devices"];class Pn{constructor(){h(this,"data",[]);h(this,"_graphMode","")}get graphMode(){return this._graphMode}set graphMode(e){this._graphMode=e}}const p=Y(new Pn);let ct=!0,qe=!0;function At(){ct=!1}function Dt(){qe=!1}function $n(t){qe=t}function Ze(t){p.data=t}const K=Y({refreshTopicPrefix:"openWB/graph/alllivevaluesJson",updateTopic:"openWB/graph/lastlivevaluesJson",configTopic:"openWB/graph/config/#",initialized:!1,initCounter:0,graphRefreshCounter:0,rawDataPacks:[],duration:0,activate(){p.data=[],this.unsubscribeUpdates(),this.subscribeRefresh(),Ee(this.configTopic),this.initialized=!1,this.initCounter=0,this.graphRefreshCounter=0,this.rawDataPacks=[],On(),lt.value=!0},deactivate(){this.unsubscribeRefresh(),this.unsubscribeUpdates(),Ue(this.configTopic)},subscribeRefresh(){for(let t=1;t<17;t++)Ee(this.refreshTopicPrefix+t)},unsubscribeRefresh(){for(let t=1;t<17;t++)Ue(this.refreshTopicPrefix+t)},subscribeUpdates(){Ee(this.updateTopic)},unsubscribeUpdates(){Ue(this.updateTopic)}}),q=Y({topic:"openWB/log/daily/#",date:new Date,activate(){if(p.graphMode=="day"||p.graphMode=="today"){p.graphMode=="today"&&(this.date=new Date);const t=this.date.getFullYear().toString()+(this.date.getMonth()+1).toString().padStart(2,"0")+this.date.getDate().toString().padStart(2,"0");Ee(this.topic),De("getDailyLog",{day:t})}},deactivate(){Ue(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}}),Ce=Y({topic:"openWB/log/monthly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(){const t=this.year.toString()+this.month.toString().padStart(2,"0");p.data=[],Ee(this.topic),De("getMonthlyLog",{month:t})},deactivate(){Ue(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)}}),Oe=Y({topic:"openWB/log/yearly/#",month:new Date().getMonth()+1,year:new Date().getFullYear(),activate(){const t=this.year.toString();p.data=[],Ee(this.topic),De("getYearlyLog",{year:t})},deactivate(){Ue(this.topic)},back(){this.year-=1,this.activate()},forward(){this.year0&&(M.items[t].energyPv+=1e3/12*(e[t]*(e.pv-e.evuOut))/(e.pv-e.evuOut+e.evuIn+e.batOut),M.items[t].energyBat+=1e3/12*(e[t]*e.batOut)/(e.pv-e.evuOut+e.evuIn+e.batOut))}function In(t,e){e[t]>0&&(M.items[t].energyPv+=1e3*(e[t]*(e.pv-e.evuOut))/(e.pv-e.evuOut+e.evuIn+e.batOut),M.items[t].energyBat+=1e3*(e[t]*e.batOut)/(e.pv-e.evuOut+e.evuIn+e.batOut))}const Bn=["evuIn","pv","batIn","evuOut"],Re=se(!1);function $t(t,e){Object.entries(t).length>0?(Re.value=!1,Object.entries(t.counter).forEach(([a,n])=>{(e.length==0||e.includes(a))&&(M.items.evuIn.energy+=n.energy_imported,M.items.evuOut.energy+=n.energy_exported)}),M.items.pv.energy=t.pv.all.energy_exported,t.bat.all&&(M.items.batIn.energy=t.bat.all.energy_imported,M.items.batOut.energy=t.bat.all.energy_exported),Object.entries(t.cp).forEach(([a,n])=>{a=="all"?M.setEnergy("charging",n.energy_imported):M.setEnergy(a,n.energy_imported)}),M.setEnergy("devices",0),Object.entries(t.sh).forEach(([a,n])=>{M.setEnergy(a,n.energy_imported);const s=a.substring(2);ne.get(+s).countAsHouse||(M.items.devices.energy+=n.energy_imported)}),t.hc&&t.hc.all?M.setEnergy("house",t.hc.all.energy_imported):M.calculateHouseEnergy(),M.keys().map(a=>{Bn.includes(a)||(M.setPvPercentage(a,Math.round((M.items[a].energyPv+M.items[a].energyBat)/M.items[a].energy*100)),Pt.includes(a)&&(L[a].energy=M.items[a].energy,L[a].energyPv=M.items[a].energyPv,L[a].energyBat=M.items[a].energyBat,L[a].pvPercentage=M.items[a].pvPercentage))}),p.graphMode=="today"&&(Object.values(S).map(a=>{const n=M.items["cp"+a.id];n&&(a.energyPv=n.energyPv,a.energyBat=n.energyBat,a.pvPercentage=n.pvPercentage)}),ne.forEach(a=>{const n=M.items["sh"+a.id];n&&(a.energy=n.energy,a.energyPv=n.energyPv,a.energyBat=n.energyBat,a.pvPercentage=n.pvPercentage)}))):Re.value=!0,lt.value=!0}function On(){M.keys().map(t=>{Pt.includes(t)&&(L[t].energy=M.items[t].energy,L[t].energyPv=0,L[t].energyBat=0,L[t].pvPercentage=0)}),Object.values(S).map(t=>{t.energyPv=0,t.energyBat=0,t.pvPercentage=0}),ne.forEach(t=>{t.energyPv=0,t.energyBat=0,t.pvPercentage=0})}const xe=m(()=>{const t=We(p.data,e=>e.date);return t[1]?_t().domain(Array.from({length:t[1]},(e,a)=>a+1)).paddingInner(.4).range([0,Pe-W.left-2]):_t().range([0,0])});function Ct(){switch(p.graphMode){case"live":p.graphMode="today",_.showRightButton=!0,ae();break;case"today":p.graphMode="day",q.date=new Date,q.back(),ae();break;case"day":q.back(),ae();break;case"month":Ce.back();break;case"year":Oe.back();break}}function ta(){const t=new Date;switch(p.graphMode){case"live":break;case"today":p.graphMode="live",_.showRightButton=!1,ae();break;case"day":q.forward(),q.date.getDate()==t.getDate()&&q.date.getMonth()==t.getMonth()&&q.date.getFullYear()==t.getFullYear()&&(p.graphMode="today"),ae();break;case"month":Ce.forward();break;case"year":Oe.forward();break}}function aa(){switch(p.graphMode){case"live":Ct();break;case"day":case"today":p.graphMode="month",ae();break;case"month":p.graphMode="year",ae();break}}function na(){switch(p.graphMode){case"year":p.graphMode="month",ae();break;case"month":p.graphMode="today",ae();break;case"today":case"day":p.graphMode="live",ae();break}}function Vn(t){if(p.graphMode=="day"||p.graphMode=="today"){q.setDate(t);const e=new Date;q.date.getDate()==e.getDate()&&q.date.getMonth()==e.getMonth()&&q.date.getFullYear()==e.getFullYear()?p.graphMode="today":p.graphMode="day",ae()}}const Ln=["origin","transform"],An=B({__name:"PGSourceGraph",props:{width:{},height:{},margin:{}},setup(t){const e=t,a={house:"var(--color-house)",batIn:"var(--color-battery)",inverter:"var(--color-pv)",batOut:"var(--color-battery)",selfUsage:"var(--color-pv)",evuOut:"var(--color-export)",evuIn:"var(--color-evu)"};var n,s;const i=_.showAnimations?_.animationDuration:0,r=_.showAnimations?_.animationDelay:0,c=m(()=>{const x=we("g#pgSourceGraph");p.graphMode=="month"||p.graphMode=="year"?O(x):Q(x),x.selectAll(".axis").remove();const $=x.append("g").attr("class","axis");return $.call(ie.value),$.selectAll(".tick").attr("font-size",12),$.selectAll(".tick line").attr("stroke",G.value).attr("stroke-width",D.value),$.select(".domain").attr("stroke","var(--color-bg)"),"pgSourceGraph.vue"}),l=m(()=>p.graphMode=="month"||p.graphMode=="year"?["evuIn","batOut","selfUsage","evuOut"]:["selfUsage","evuOut","batOut","evuIn"]),d=m(()=>Te().domain([0,p.data.length-1]).range([0,e.width])),f=m(()=>Jt().keys(l.value)),T=m(()=>f.value(p.data)),b=m(()=>Te().range([e.height-10,0]).domain(p.graphMode=="year"?[0,Math.ceil(C.value[1]*10)/10]:[0,Math.ceil(C.value[1])])),C=m(()=>{let x=We(p.data,$=>Math.max($.pv+$.evuIn+$.batOut,$.selfUsage+$.evuOut));return x[0]!=null&&x[1]!=null?(p.graphMode=="year"&&(x[0]=x[0]/1e3,x[1]=x[1]/1e3),x):[0,0]}),z=m(()=>p.graphMode=="month"||p.graphMode=="year"?-e.width-e.margin.right-22:-e.width),ie=m(()=>ht(b.value).tickSizeInner(z.value).ticks(4).tickFormat(x=>(x==0?"":Math.round(x*10)/10).toLocaleString(void 0))),D=m(()=>_.showGrid?"0.5":"1"),G=m(()=>_.showGrid?"var(--color-grid)":"var(--color-bg)");function Q(x){const $=ot().x((A,ue)=>d.value(ue)).y(b.value(0)),U=ot().x((A,ue)=>d.value(ue)).y0(A=>b.value(p.graphMode=="year"?A[0]/1e3:A[0])).y1(A=>b.value(p.graphMode=="year"?A[1]/1e3:A[1]));ct?(x.selectAll("*").remove(),n=x.selectAll(".sourceareas").data(T.value).enter().append("path").attr("fill",(A,ue)=>a[l.value[ue]]).attr("d",A=>$(A)),n.transition().duration(i).delay(r).ease(Je).attr("d",A=>U(A)),At()):n.data(T.value).transition().duration(0).ease(Je).attr("d",A=>U(A))}function O(x){ct?(x.selectAll("*").remove(),s=x.selectAll(".sourcebar").data(T.value).enter().append("g").attr("fill",($,U)=>a[l.value[U]]).selectAll("rect").data($=>$).enter().append("rect").attr("x",($,U)=>xe.value(p.data[U].date)??0).attr("y",()=>b.value(0)).attr("height",0).attr("width",xe.value.bandwidth()),s.transition().duration(i).delay(r).ease(Je).attr("height",$=>p.graphMode=="year"?b.value($[0]/1e3)-b.value($[1]/1e3):b.value($[0])-b.value($[1])).attr("y",$=>p.graphMode=="year"?b.value($[1]/1e3):b.value($[1])),At()):(x.selectAll("*").remove(),s=x.selectAll(".sourcebar").data(T.value).enter().append("g").attr("fill",($,U)=>a[l.value[U]]).selectAll("rect").data($=>$).enter().append("rect").attr("x",($,U)=>xe.value(p.data[U].date)??0).attr("y",$=>p.graphMode=="year"?b.value($[1]/1e3):b.value($[1])).attr("width",xe.value.bandwidth()).attr("height",$=>p.graphMode=="year"?b.value($[0]/1e3)-b.value($[1]/1e3):b.value($[0])-b.value($[1])))}return(x,$)=>(g(),v("g",{id:"pgSourceGraph",origin:c.value,transform:"translate("+x.margin.left+","+x.margin.top+")"},null,8,Ln))}}),Dn=["origin","transform"],En=B({__name:"PGUsageGraph",props:{width:{},height:{},margin:{},stackOrder:{}},setup(t){const e=t,a=[["house","charging","devices","batIn"],["charging","devices","house","batIn"],["devices","charging","house","batIn"]],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 r=_.showAnimations?_.animationDuration:0,c=_.showAnimations?_.animationDelay:0,l=m(()=>{const O=we("g#pgUsageGraph");p.graphMode=="month"||p.graphMode=="year"?Q(O):G(O),O.selectAll(".axis").remove();const x=O.append("g").attr("class","axis");return x.call(D.value),x.selectAll(".tick").attr("font-size",12).attr("color","var(--color-axis)"),_.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"}),d=m(()=>Jt().keys(C.value)),f=m(()=>d.value(p.data)),T=m(()=>Te().domain([0,p.data.length-1]).range([0,e.width])),b=m(()=>Te().range([e.height+10,2*e.height]).domain(p.graphMode=="year"?[0,Math.ceil(z.value[1]*10)/10]:[0,Math.ceil(z.value[1])])),C=m(()=>{if(p.graphMode!="today"&&p.graphMode!="day")return a[e.stackOrder];{const O=a[e.stackOrder].slice(),x=O.indexOf("charging");O.splice(x,1);const $=/cp\d+/;let U=[];return p.data.length>0&&(U=Object.keys(p.data[0]).reduce((A,ue)=>(ue.match($)&&A.push(ue),A),[])),U.map((A,ue)=>{O.splice(x+ue,0,A),n[A]="var(--color-cp"+ue+")"}),O}}),z=m(()=>{let O=We(p.data,x=>x.house+x.charging+x.batIn+x.devices);return O[0]!=null&&O[1]!=null?(p.graphMode=="year"&&(O[0]=O[0]/1e3,O[1]=O[1]/1e3),O):[0,0]}),ie=m(()=>p.graphMode=="month"||p.graphMode=="year"?-e.width-e.margin.right-22:-e.width),D=m(()=>ht(b.value).tickSizeInner(ie.value).ticks(4).tickFormat(O=>(O==0?"":Math.round(O*10)/10).toLocaleString(void 0)));function G(O){const x=ot().x((U,A)=>T.value(A)).y(b.value(0)),$=ot().x((U,A)=>T.value(A)).y0(U=>b.value(U[0])).y1(U=>b.value(U[1]));_.showAnimations?qe?(O.selectAll("*").remove(),s=O.selectAll(".usageareas").data(f.value).enter().append("path").attr("d",U=>x(U)).attr("fill",(U,A)=>n[C.value[A]]),s.transition().duration(300).delay(100).ease(Je).attr("d",U=>$(U)),Dt()):(O.selectAll("*").remove(),O.selectAll(".usageareas").data(f.value).enter().append("path").attr("d",U=>$(U)).attr("fill",(U,A)=>n[C.value[A]])):(O.selectAll("*").remove(),O.selectAll(".usageareas").data(f.value).enter().append("path").attr("d",U=>$(U)).attr("fill",(U,A)=>n[C.value[A]]))}function Q(O){qe?(O.selectAll("*").remove(),i=O.selectAll(".usagebar").data(f.value).enter().append("g").attr("fill",(x,$)=>n[a[e.stackOrder][$]]).selectAll("rect").data(x=>x).enter().append("rect").attr("x",(x,$)=>xe.value(p.data[$].date)??0).attr("y",()=>b.value(0)).attr("height",0).attr("width",xe.value.bandwidth()),i.transition().duration(r).delay(c).ease(Je).attr("y",x=>p.graphMode=="year"?b.value(x[0]/1e3):b.value(x[0])).attr("height",x=>p.graphMode=="year"?b.value(x[1]/1e3)-b.value(x[0]/1e3):b.value(x[1])-b.value(x[0])),Dt()):(O.selectAll("*").remove(),i=O.selectAll(".usagebar").data(f.value).enter().append("g").attr("fill",(x,$)=>n[a[e.stackOrder][$]]).selectAll("rect").data(x=>x).enter().append("rect").attr("x",(x,$)=>xe.value(p.data[$].date)??0).attr("y",x=>p.graphMode=="year"?b.value(x[0]/1e3):b.value(x[0])).attr("height",x=>p.graphMode=="year"?b.value(x[1]/1e3)-b.value(x[0]/1e3):b.value(x[1])-b.value(x[0])).attr("width",xe.value.bandwidth()))}return(O,x)=>(g(),v("g",{id:"pgUsageGraph",origin:l.value,transform:"translate("+O.margin.left+","+O.margin.top+")"},null,8,Dn))}}),Wn=["transform"],Gn=["origin","transform"],Un=["origin","transform"],zn={key:0},jn=["width","height"],Nn={key:1},Jn=["y","width","height"],mt=12,Fn=B({__name:"PGXAxis",props:{width:{},height:{},margin:{}},setup(t){const e=t,a=m(()=>at(c.value).ticks(4).tickSizeInner(r.value).tickFormat(wt("%H:%M"))),n=m(()=>fa(c.value).ticks(4).tickSizeInner(r.value+3).tickFormat(wt(""))),s=m(()=>at(xe.value).ticks(4).tickSizeInner(r.value).tickFormat(f=>f.toString())),i=m(()=>at(xe.value).ticks(4).tickSizeInner(r.value).tickFormat(()=>"")),r=m(()=>p.graphMode!=="month"&&p.graphMode!=="year"?_.showGrid?-(e.height/2-7):-10:0),c=m(()=>{let f=We(p.data,T=>T.date);return f[0]&&f[1]?Ye().domain(f).range([0,e.width]):Ye().range([0,0])}),l=m(()=>{let f=we("g#PGXAxis");return f.selectAll("*").remove(),p.graphMode=="month"||p.graphMode=="year"?f.call(s.value):f.call(a.value),f.selectAll(".tick > text").attr("fill",(T,b)=>b>0||p.graphMode=="month"||p.graphMode=="year"?"var(--color-axis)":"var(--color-bg)").attr("font-size",mt),_.showGrid?f.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):f.selectAll(".tick line").attr("stroke","var(--color-bg)"),f.select(".domain").attr("stroke","var(--color-bg)"),f.append("text").attr("x",-e.margin.left).attr("y",12).attr("fill","var(--color-axis)").attr("font-size",mt).text(p.graphMode=="year"?"MW":"kW").attr("text-anchor","start"),"PGXAxis.vue"}),d=m(()=>{let f=we("g#PGXAxis2");return f.selectAll("*").remove(),p.graphMode=="month"||p.graphMode=="year"?f.call(i.value):f.call(n.value),f.selectAll(".tick > text").attr("fill",(T,b)=>b>0||p.graphMode=="month"||p.graphMode=="year"?"var(--color-axis)":"var(--color-bg)").attr("font-size",mt),_.showGrid?(f.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"),f.select(".domain").attr("stroke","var(--color-bg)")):f.selectAll(".tick line").attr("stroke","var(--color-bg)"),f.select(".domain").attr("stroke","var(--color-bg)"),"PGXAxis2.vue"});return(f,T)=>(g(),v("g",{transform:"translate("+f.margin.left+","+f.margin.top+")"},[o("g",{id:"PGXAxis",class:"axis",origin:l.value,transform:"translate(0,"+(f.height/2-6)+")"},null,8,Gn),o("g",{id:"PGXAxis2",class:"axis",origin:d.value,transform:"translate(0,"+(f.height/2+10)+")"},null,8,Un),u(_).showGrid?(g(),v("g",zn,[o("rect",{x:"0",y:"0",width:f.width,height:f.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,jn)])):k("",!0),u(_).showGrid?(g(),v("g",Nn,[o("rect",{x:"0",y:f.height/2+10,width:f.width,height:f.height/2-10,fill:"none",stroke:"var(--color-grid)","stroke-width":"0.5"},null,8,Jn)])):k("",!0)],8,Wn))}}),Rn=["d"],Hn=["d","stroke"],Yn=["x","y","text-anchor"],ft=B({__name:"PgSoc",props:{width:{},height:{},margin:{},order:{}},setup(t){const e=t,a=m(()=>{let b=We(p.data,C=>C.date);return b[0]&&b[1]?Ye().domain(b).range([0,e.width]):Ye().range([0,0])}),n=m(()=>Te().range([e.height-10,0]).domain([0,100])),s=m(()=>Ft().x(z=>a.value(z.date)).y(z=>n.value(e.order==2?z.batSoc:z["soc"+d.value.connectedVehicle])??n.value(0))(p.data)??""),i=m(()=>e.order==2?"Speicher":d.value.connectedVehicle),r=m(()=>e.order==2?"Speicher":d.value.vehicleName),c=m(()=>{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=m(()=>{switch(e.order){case 0:return e.width-3;case 1:return 3;case 2:return e.width/2;default:return 0}}),d=m(()=>{const b=e.order==2?0:e.order;return Object.values(S)[b]}),f=m(()=>{var b;if(p.data.length>0){let C;switch(e.order){case 0:return C=p.data.length-1,n.value(p.data[C]["soc"+i.value]+2);case 1:return C=0,n.value(p.data[C]["soc"+i.value]+2);case 2:return C=Math.round(p.data.length/2),n.value((((b=p.data[C])==null?void 0:b.batSoc)??0)+2);default:return 0}}else return 0}),T=m(()=>{switch(e.order){case 0:return"end";case 1:return"start";case 2:return"middle";default:return"middle"}});return(b,C)=>(g(),v(ce,null,[o("path",{class:"soc-baseline",d:s.value,stroke:"var(--color-bg)","stroke-width":"1",fill:"none"},null,8,Rn),o("path",{class:"soc-dashes",d:s.value,stroke:c.value,"stroke-width":"1",style:{strokeDasharray:"3,3"},fill:"none"},null,8,Hn),o("text",{class:"cpname",x:l.value,y:f.value,style:oe({fill:c.value,fontSize:10}),"text-anchor":T.value},P(r.value),13,Yn)],64))}}),qn=["transform"],Qn=B({__name:"PgSocAxis",props:{width:{},height:{},margin:{}},setup(t){const e=t,a=m(()=>Te().range([e.height-10,0]).domain([0,100])),n=m(()=>va(a.value).ticks(5).tickFormat(i=>i.toString()+"%"));function s(){let i=we("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 Qe(()=>{s()}),(i,r)=>(g(),v("g",{id:"PGSocAxis",class:"axis",transform:"translate("+(i.width-20)+",0)"},null,8,qn))}}),Zn={class:"btn-group m-0",role:"group","aria-label":"radiobar"},Xn=["id","value"],Kn=B({__name:"RadioBarInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=e,s=m({get(){return a.modelValue},set(c){n("update:modelValue",c)}});function i(c){let l=a.options[c].color?a.options[c].color:"var(--color-fg)";return a.options[c].active?{color:"var(--color-bg)",background:l}:{color:l}}function r(c){let l=c.target;for(;l&&!l.value&&l.parentElement;)l=l.parentElement;l.value&&(s.value=l.value)}return(c,l)=>(g(),v("div",null,[o("div",Zn,[(g(!0),v(ce,null,_e(c.options,(d,f)=>(g(),v("button",{id:"radio-"+d.value,key:f,class:re(["btn btn-outline-secondary btn-sm radiobutton mx-0 mb-0 px-2",d.value==s.value?"active":""]),value:d.value,style:oe(i(f)),onClick:r},[o("span",{style:oe(i(f)),class:"scaled d-flex flex-column pt-2"},[d.icon?(g(),v("i",{key:0,class:re(["fa-solid",d.icon])},null,2)):k("",!0),E(" "+P(d.text),1)],4)],14,Xn))),128))])]))}}),oa=j(Kn,[["__scopeId","data-v-270067ed"]]),eo={key:0,class:"fa-solid fa-xl fa-chevron-circle-down p-1",style:{color:"var(--color-bg)"}},to=B({__name:"PgSelector",props:{widgetid:{},showLeftButton:{type:Boolean},showRightButton:{type:Boolean},ignoreLive:{type:Boolean}},emits:["shiftLeft","shiftRight","shiftUp","shiftDown"],setup(t){const e=t,a=se(0),n=m(()=>{switch(p.graphMode){case"live":return e.ignoreLive?"heute":`${K.duration} min`;case"today":return"heute";case"day":return q.date.getDate()+"."+(q.date.getMonth()+1)+".";case"month":return xa(Ce.month-1,Ce.year);case"year":return Oe.year.toString();default:return"???"}}),s=["live","today","day","month","year"],i=["Live","Heute","Tag","Monat","Jahr"],r=m({get(){return p.graphMode},set(D){switch(D){case"day":d();break;case"today":f();break;case"live":l();break;case"month":T();break;case"year":b()}}});function c(){a.value+=1,a.value>1&&(a.value=0)}function l(){p.graphMode!="live"&&(p.graphMode="live",ae())}function d(){p.graphMode!="day"&&p.graphMode!="today"&&(p.graphMode="day",ae())}function f(){p.graphMode!="today"&&(p.graphMode="today",Vn(new Date),ae())}function T(){p.graphMode!="month"&&(p.graphMode="month",ae())}function b(){p.graphMode!="year"&&(p.graphMode="year",ae())}const C=m(()=>a.value>0?{border:"1px solid var(--color-frame)"}:""),z=m(()=>a.value==1?"justify-content-between":"justify-content-end"),ie=m(()=>a.value==1?"justify-content-between":"justify-content-center");return(D,G)=>(g(),v("div",{class:"d-flex flex-column justify-content-center pgselector rounded",style:oe(C.value)},[a.value==2?(g(),I(oa,{key:0,id:"pgm2",modelValue:r.value,"onUpdate:modelValue":G[0]||(G[0]=Q=>r.value=Q),class:"m-2",options:s.map((Q,O)=>({text:i[O],value:Q,color:"var(--color-menu)",active:Q==u(p).graphMode}))},null,8,["modelValue","options"])):k("",!0),a.value==1?(g(),v("span",{key:1,type:"button",class:re(["arrowButton d-flex align-self-center mb-3 mt-3",{disabled:!e.showLeftButton}]),onClick:G[1]||(G[1]=Q=>D.$emit("shiftUp"))},G[6]||(G[6]=[o("i",{class:"fa-solid fa-xl fa-chevron-circle-up"},null,-1)]),2)):k("",!0),o("div",{class:re(["d-flex align-items-center",ie.value])},[a.value==1?(g(),v("span",{key:0,type:"button",class:re(["p-1",{disabled:!e.showLeftButton}]),onClick:G[2]||(G[2]=Q=>D.$emit("shiftLeft"))},G[7]||(G[7]=[o("span",{class:"fa-solid fa-xl fa-chevron-circle-left arrowButton"},null,-1)]),2)):k("",!0),a.value<2?(g(),v("span",{key:1,type:"button",class:"btn-outline-secondary p-2 px-3 badge rounded-pill datebadge",onClick:c},P(n.value),1)):k("",!0),a.value==1?(g(),v("span",{key:2,id:"graphRightButton",type:"button",class:re(["arrowButton fa-solid fa-xl fa-chevron-circle-right p-1",{disabled:!e.showRightButton}]),onClick:G[3]||(G[3]=Q=>D.$emit("shiftRight"))},null,2)):k("",!0)],2),o("div",{class:re(["d-flex align-items-center",z.value])},[a.value==1?(g(),v("span",eo)):k("",!0),a.value==1?(g(),v("span",{key:1,id:"graphLeftButton",type:"button",class:re(["arrowButton fa-solid fa-xl fa-chevron-circle-down p-1",{disabled:!e.showLeftButton}]),onClick:G[4]||(G[4]=Q=>D.$emit("shiftDown"))},null,2)):k("",!0),a.value>0?(g(),v("span",{key:2,type:"button",class:"p-1",onClick:G[5]||(G[5]=Q=>a.value=0)},G[8]||(G[8]=[o("span",{class:"fa-solid fa-xl fa-circle-check"},null,-1)]))):k("",!0)],2)],4))}}),ra=j(to,[["__scopeId","data-v-7fd067cd"]]),ao={class:"d-flex justify-content-end"},no={class:"grid-col-12"},oo=["viewBox"],ro=["transform"],so=2,io="Leistung / Ladestand ",lo=B({__name:"PowerGraph",setup(t){function e(){let a=_.usageStackOrder+1;a>so&&(a=0),_.usageStackOrder=a,$n(!0)}return(a,n)=>(g(),I(gt,null,{title:w(()=>[E(P(io))]),buttons:w(()=>[o("div",ao,[y(ra,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!1,onShiftLeft:u(Ct),onShiftRight:u(ta),onShiftUp:u(aa),onShiftDown:u(na)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"])])]),default:w(()=>[o("div",no,[o("figure",{id:"powergraph",class:"p-0 m-0 align-self-stretch",onClick:e},[(g(),v("svg",{viewBox:"0 0 "+u(Pe)+" "+u(Ie)},[y(An,{width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W)},null,8,["width","height","margin"]),y(En,{width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W),"stack-order":u(_).usageStackOrder},null,8,["width","height","margin","stack-order"]),y(Fn,{width:u(Pe)-u(W).left-2*u(W).right,height:u(Ie)-u(W).top-u(W).bottom,margin:u(W),"graph-data":u(p)},null,8,["width","height","margin","graph-data"]),o("g",{transform:"translate("+u(W).left+","+u(W).top+")"},[(u(p).graphMode=="day"||u(p).graphMode=="today"||u(p).graphMode=="live")&&Object.values(u(S)).length>0?(g(),I(ft,{key:0,width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W),order:0},null,8,["width","height","margin"])):k("",!0),(u(p).graphMode=="day"||u(p).graphMode=="today"||u(p).graphMode=="live")&&Object.values(u(S)).length>1?(g(),I(ft,{key:1,width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W),order:1},null,8,["width","height","margin"])):k("",!0),["day","today","live"].includes(u(p).graphMode)&&u(H).isBatteryConfigured?(g(),I(ft,{key:2,width:u(Pe)-u(W).left-2*u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W),order:2},null,8,["width","height","margin"])):k("",!0),["day","today","live"].includes(u(p).graphMode)?(g(),I(Qn,{key:3,width:u(Pe)-u(W).left-u(W).right,height:(u(Ie)-u(W).top-u(W).bottom)/2,margin:u(W)},null,8,["width","height","margin"])):k("",!0)],8,ro)],8,oo))])])]),_:1}))}}),co=j(lo,[["__scopeId","data-v-ba892fa4"]]),uo=["id"],ho=["x","width","height","fill"],go=["x","width","height"],po=["x","y","width","height"],mo=B({__name:"EmBar",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(t){const e=t,a=m(()=>e.height-e.yScale(e.item.energy)-e.margin.top-e.margin.bottom),n=m(()=>e.item.energyPv>0?e.height-e.yScale(e.item.energyPv)-e.margin.top-e.margin.bottom:0),s=m(()=>e.item.energyPv>0?e.height-e.yScale(e.item.energyBat)-e.margin.top-e.margin.bottom:0);return(i,r)=>(g(),v("g",{id:"bar-"+e.item.name,transform:"scale(1,-1) translate (0,-445)"},[o("rect",{class:"bar",x:e.xScale(i.item.name),y:"0",width:e.xScale.bandwidth(),height:a.value,fill:i.item.color},null,8,ho),o("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,go),o("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,po)],8,uo))}}),fo={id:"emBargraph"},vo=B({__name:"EMBarGraph",props:{plotdata:{},xScale:{},yScale:{},margin:{},height:{}},setup(t){const e=t;function a(s){if(s.name=="PV"){const i=p.graphMode=="live"||p.graphMode=="day"?J:M.items,c=(p.graphMode=="live"||p.graphMode=="day"?L:M.items).evuOut.energy,l=i.pv.energy;return Math.round((l-c)/l*100)}else if(s.name=="Netz"){const i=p.graphMode=="live"||p.graphMode=="day"?J:M.items,r=p.graphMode=="live"||p.graphMode=="day"?L:M.items,c=r.evuOut.energy,l=i.evuIn.energy,d=i.pv.energy,f=i.batOut.energy,T=r.batIn.energy;return Math.round((d+f-c-T)/(d+f+l-c-T)*100)}else return s.pvPercentage}function n(s){return s.name=="PV"?"Eigen":"Aut"}return(s,i)=>(g(),v("g",fo,[(g(!0),v(ce,null,_e(e.plotdata,(r,c)=>(g(),v("g",{key:c},[y(mo,{item:r,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":n(r),autarchy:a(r)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128)),i[0]||(i[0]=o("animateTransform",{"attribute-name":"transform",type:"scale",from:"1 0",to:"1 1",begin:"0s",dur:"2s"},null,-1))]))}}),yo=["origin"],bo=B({__name:"EMYAxis",props:{yScale:{type:[Function,Object]},width:{},fontsize:{}},setup(t){const e=t,a=m(()=>ht(e.yScale).tickFormat(s=>s>0?(s/1e3).toString():"").ticks(6).tickSizeInner(-e.width)),n=m(()=>{const s=we("g#emYAxis");return s.attr("class","axis").call(a.value),s.append("text").attr("y",6).attr("dy","0.71em").attr("text-anchor","end").text("energy"),s.selectAll(".tick").attr("font-size",e.fontsize),_.showGrid?s.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):s.selectAll(".tick line").attr("stroke","var(--color-bg)"),s.select(".domain").attr("stroke","var(--color-bg)"),"emYAxis.vue"});return(s,i)=>(g(),v("g",{id:"emYAxis",class:"axis",origin:n.value},null,8,yo))}}),_o=["id"],wo=["x","y","font-size"],ko=["x","y","font-size","fill"],xo=["x","y","font-size","fill"],So=B({__name:"EmLabel",props:{item:{},xScale:{},yScale:{},margin:{},height:{},barcount:{},autarchy:{},autText:{}},setup(t){const e=t,a=m(()=>e.autarchy?e.yScale(e.item.energy)-25:e.yScale(e.item.energy)-10),n=m(()=>{let l=16,d=e.barcount;return d<=5?l=16:d==6?l=14:d>6&&d<=8?l=13:d==9?l=11:d==10?l=10:l=9,l}),s=m(()=>{let l=12,d=e.barcount;return d<=5?l=12:d==6?l=11:d>6&&d<=8||d==9?l=8:d==10?l=7:l=6,l});function i(l,d){return d.length>s.value?d.substring(0,s.value)+".":d}function r(){return e.autarchy?e.autText+": "+e.autarchy.toLocaleString(void 0)+" %":""}function c(){return"var(--color-pv)"}return(l,d)=>(g(),v("g",{id:"barlabel-"+e.item.name},[o("text",{x:e.xScale(l.item.name)+e.xScale.bandwidth()/2,y:a.value,"font-size":n.value,"text-anchor":"middle",fill:"var(--color-menu)"},P(u(xt)(l.item.energy,u(_).decimalPlaces,!1)),9,wo),o("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:c()},P(r()),9,ko),o("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:re(l.item.icon.length<=2?"fas":"")},P(i(l.item.name,l.item.icon)),11,xo)],8,_o))}}),Mo={id:"emBarLabels"},Po=B({__name:"EMLabels",props:{plotdata:{},xScale:{},yScale:{},height:{},margin:{}},setup(t){const e=t;function a(s){if(s.name=="PV"){const i=p.graphMode=="live"||p.graphMode=="day"?J:M.items,c=(p.graphMode=="live"||p.graphMode=="day"?L:M.items).evuOut.energy,l=i.pv.energy;return Math.round((l-c)/l*100)}else if(s.name=="Netz"){const i=p.graphMode=="live"||p.graphMode=="day"?J:M.items,r=p.graphMode=="live"||p.graphMode=="day"?L:M.items,c=r.evuOut.energy,l=i.evuIn.energy,d=i.pv.energy,f=i.batOut.energy,T=r.batIn.energy;return d+f-c-T>0?Math.round((d+f-c-T)/(d+f+l-c-T)*100):0}else return s.pvPercentage}function n(s){return s.name=="PV"?"Eigen":"Aut"}return(s,i)=>(g(),v("g",Mo,[(g(!0),v(ce,null,_e(e.plotdata,(r,c)=>(g(),v("g",{key:c},[y(So,{item:r,"x-scale":e.xScale,"y-scale":e.yScale,margin:e.margin,height:e.height,barcount:e.plotdata.length,"aut-text":n(r),autarchy:a(r)},null,8,["item","x-scale","y-scale","margin","height","barcount","aut-text","autarchy"])]))),128))]))}}),$o={class:"grid-col-12"},Co={id:"energymeter",class:"energymeter p-0 m-0 align-self-stretch"},To={viewBox:"0 0 500 500"},Io=["transform"],Bo=["x"],Oo={key:0},Et=500,vt=500,Wt=12,Vo="Energie",Lo=B({__name:"EnergyMeter",setup(t){const e={top:25,bottom:30,left:25,right:0},a=m(()=>{let r=Object.values(J),c=i.value,l=M.values(),d=[];switch(_.debug&&(console.debug("----------------------- source summary -----------------"),console.debug(J),console.debug("----------------------- usage details ------------------"),console.debug(i.value),console.debug("----------------------- historic summary ---------------"),console.debug(M),console.debug("--------------------------------------------------------")),lt.value==!0&&(lt.value=!1),p.graphMode){default:case"live":case"today":d=r.concat(c).filter(f=>f.energy>0);break;case"day":case"month":case"year":l.length==0?Re.value=!0:(Re.value=!1,d=l.filter(f=>f.energy>0))}return d}),n=m(()=>_t().range([0,Et-e.left-e.right]).domain(a.value.map(r=>r.name)).padding(.4)),s=m(()=>Te().range([vt-e.bottom-e.top,15]).domain([0,ya(a.value,r=>r.energy)])),i=m(()=>{const r=Object.values(S).length,c=[...ne.values()].filter(l=>l.configured).length;return[L.evuOut,L.devices,L.charging].concat(r>1?Object.values(S).map(l=>l.toPowerItem()):[]).concat(c>1?[...ne.values()].filter(l=>l.configured&&l.showInGraph):[]).concat([L.batIn,L.house])});return(r,c)=>(g(),I(gt,null,{title:w(()=>[E(P(Vo))]),buttons:w(()=>[y(ra,{widgetid:"graphsettings","show-left-button":!0,"show-right-button":!0,"ignore-live":!0,onShiftLeft:u(Ct),onShiftRight:u(ta),onShiftUp:u(aa),onShiftDown:u(na)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"])]),default:w(()=>[o("div",$o,[o("figure",Co,[(g(),v("svg",To,[o("g",{transform:"translate("+e.left+","+e.top+")"},[y(vo,{plotdata:a.value,"x-scale":n.value,"y-scale":s.value,height:vt,margin:e},null,8,["plotdata","x-scale","y-scale"]),y(bo,{"y-scale":s.value,width:Et,fontsize:Wt,config:u(_)},null,8,["y-scale","config"]),o("text",{x:-e.left,y:"-15",fill:"var(--color-axis)","font-size":Wt},P(u(p).graphMode=="year"?"MWh":"kWh"),9,Bo),y(Po,{plotdata:a.value,"x-scale":n.value,"y-scale":s.value,height:vt,margin:e,config:u(_)},null,8,["plotdata","x-scale","y-scale","config"])],8,Io)]))])]),u(Re)?(g(),v("p",Oo,"No data")):k("",!0)]),_:1}))}}),Ao=j(Lo,[["__scopeId","data-v-35f92695"]]),Do=["id"],Eo={class:"modal-dialog modal-lg modal-fullscreen-lg-down"},Wo={class:"modal-content"},Go={class:"modal-header"},Uo={class:"modal-title scaled"},zo=["id"],jo=B({__name:"ModalComponent",props:{modalId:{}},setup(t){const e=t;return(a,n)=>(g(),v("div",{id:e.modalId,class:"modal fade"},[o("div",Eo,[o("div",Wo,[o("div",Go,[o("h3",Uo,[ve(a.$slots,"title",{},void 0)]),n[0]||(n[0]=o("button",{type:"button",class:"btn-close buttonTextSize d-flex justify-content-center pt-3 pb-0","data-bs-dismiss":"modal"},[o("i",{class:"fa-solid fa-lg fa-circle-check m-0 p-0"})],-1))]),o("div",{id:"modal-body-"+e.modalId,class:"modal-body"},[ve(a.$slots,"default",{},void 0)],8,zo),n[1]||(n[1]=o("div",{class:"modal-footer"},null,-1))])])],8,Do))}}),yt=j(jo,[["__scopeId","data-v-9e5993e8"]]),No={class:"digit scaled",type:"button"},Jo=B({__name:"PadButton",props:{modelValue:{},color:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=se(!1);function s(){n.value=!0,r("update:modelValue",a.modelValue),setTimeout(()=>{n.value=!1},300)}const i=m(()=>n.value?{"background-color":"white",color:"black"}:{"background-color":a.color??"var(--color-axis)"}),r=e;return(c,l)=>(g(),v("div",{class:"padbutton",style:oe(i.value),onClick:s},[o("span",No,[ve(c.$slots,"default",{},void 0)])],4))}}),et=j(Jo,[["__scopeId","data-v-cc256a6f"]]),Fo={class:"numberpad"},Ro={class:"codedisplay scaled"},Ho={class:"numberentry"},Yo=B({__name:"NumberPad",props:{modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const n=se(t.modelValue),s=e,i=m(()=>n.value.length==0?"Bitte geben Sie die PIN ein":"*".repeat(n.value.length));function r(c){c==-1?n.value=n.value.slice(0,-1):c==-2?(s("update:modelValue",n.value),n.value=""):n.value=n.value+c.toString()}return(c,l)=>(g(),v("div",Fo,[o("p",Ro,P(i.value),1),o("div",Ho,[(g(),v(ce,null,_e(9,d=>y(et,{key:d,"model-value":d,"onUpdate:modelValue":r},{default:w(()=>[E(P(d),1)]),_:2},1032,["model-value"])),64)),y(et,{"model-value":0,"onUpdate:modelValue":r},{default:w(()=>l[0]||(l[0]=[E("0")])),_:1}),y(et,{"model-value":-1,color:"var(--color-devices)","onUpdate:modelValue":r},{default:w(()=>l[1]||(l[1]=[o("span",{class:"fas fa-delete-left"},null,-1)])),_:1}),y(et,{"model-value":-2,color:"var(--color-devices)","data-bs-dismiss":"modal","onUpdate:modelValue":r},{default:w(()=>l[2]||(l[2]=[o("span",{class:"fas fa-circle-check"},null,-1)])),_:1})])]))}}),qo=j(Yo,[["__scopeId","data-v-63c8fa5c"]]),Qo={class:"statustable"},Zo={key:0,class:"controlbuttons d-flex justify-content-between p-5"},Xo={key:1,class:"confirmationBox rounded m-5 p-5 d-flex flex-column align-items-center"},Ko={class:"d-flex justify-content-between mt-3"},er={key:2,class:"confirmationBox rounded m-5 p-5 d-flex flex-column align-items-center"},tr={class:"d-flex justify-content-between mt-3"},ar={key:3,class:"confirmationBox rounded m-5 p-5 d-flex flex-column align-items-center"},nr={key:4,class:"confirmationBox rounded m-5 p-5 d-flex flex-column align-items-center"},or=B({__name:"StatusPage",setup(t){let e=se(0);function a(){e.value=4,Be.parentChargePoint1!==void 0?(console.log("Shutting down secondary charge point: ",Be.parentChargePoint1),De("chargepointShutdown",{chargePoint:Be.parentChargePoint1})):(console.log("Shutting down primary system"),De("systemShutdown"))}function n(){e.value=3,Be.parentChargePoint1!==void 0?(console.log("Rebooting secondary charge point:",Be.parentChargePoint1),De("chargepointReboot",{chargePoint:Be.parentChargePoint1})):(console.log("Rebooting primary system"),De("systemReboot"))}function s(){location.reload()}return(i,r)=>(g(),v(ce,null,[o("div",Qo,[r[7]||(r[7]=o("span",{class:"header"},"IP-Adresse:",-1)),o("span",null,P(u(H).ipAddress),1),r[8]||(r[8]=o("span",{class:"header"},"Systemzeit:",-1)),o("span",null,P(new Date(u(H).systemTime*1e3).toLocaleString(void 0)),1),r[9]||(r[9]=o("span",{class:"header"},"Version:",-1)),o("span",null,P(u(H).version),1),r[10]||(r[10]=o("span",{class:"header"},"Version (Details):",-1)),o("span",null,P(u(H).versionDetails),1),r[11]||(r[11]=o("span",{class:"header"},"Entwicklungszweig:",-1)),o("span",null,P(u(H).devBranch),1)]),u(e)==0?(g(),v("div",Zo,[o("button",{class:"btn controlbutton",style:{"background-color":"var(--color-battery)"},onClick:r[0]||(r[0]=c=>s())},r[12]||(r[12]=[o("i",{class:"fa-solid fa-rotate-left"},null,-1),E(" Display neu laden ")])),o("button",{class:"btn controlbutton",style:{"background-color":"var(--color-evu)"},onClick:r[1]||(r[1]=c=>Ke(e)?e.value=1:e=1)},r[13]||(r[13]=[o("i",{class:"fa-solid fa-power-off"},null,-1),E(" openWB neu starten ")])),o("button",{class:"btn controlbutton",style:{"background-color":"var(--color-evu)"},onClick:r[2]||(r[2]=c=>Ke(e)?e.value=2:e=2)},r[14]||(r[14]=[o("i",{class:"fa-solid fa-power-off"},null,-1),E(" openWB abschalten ")]))])):k("",!0),u(e)==1?(g(),v("div",Xo,[r[15]||(r[15]=o("span",{class:"confirmTitle"},"Neustart",-1)),r[16]||(r[16]=o("span",{class:"confirmQuestion"},"Die openWB jetzt neu starten?",-1)),o("div",Ko,[o("button",{class:"btn cancelButton mx-3 px-3",onClick:r[3]||(r[3]=c=>Ke(e)?e.value=0:e=0)}," Abbrechen "),o("button",{class:"btn confirmButton mx-3 px-3",onClick:r[4]||(r[4]=c=>n())}," Neustart ")])])):k("",!0),u(e)==2?(g(),v("div",er,[r[17]||(r[17]=o("span",{class:"confirmTitle"},"Abschalten",-1)),r[18]||(r[18]=o("span",{class:"confirmQuestion"},"Die openWB jetzt abschalten?",-1)),o("div",tr,[o("button",{class:"btn cancelButton mx-3 px-3",onClick:r[5]||(r[5]=c=>Ke(e)?e.value=0:e=0)}," Abbrechen "),o("button",{class:"btn confirmButton mx-3 px-3",onClick:r[6]||(r[6]=c=>a())}," Abschalten ")])])):k("",!0),u(e)==3?(g(),v("div",ar,r[19]||(r[19]=[o("span",{class:"confirmTitle"},"Die openWB startet jetzt neu. Bitte warten.",-1)]))):k("",!0),u(e)==4?(g(),v("div",nr,r[20]||(r[20]=[o("span",{class:"confirmTitle"},"Die openWB wird heruntergefahren. Zum Starten die Stromversorgung aus- und wieder einschalten.",-1)]))):k("",!0)],64))}}),rr=j(or,[["__scopeId","data-v-74ffcddc"]]),sr={class:"d-flex align-items-baseline m-0 p-0 scaled"},ir={class:"configwidget ms-1 mb-2 p-0 pt-2 d-flex justify-content-stretch align-items-center"},lr={class:"configslot justify-content-stretch d-flex"},cr=B({__name:"ConfigItem",props:{title:{},infotext:{},icon:{},iconcolor:{},fullwidth:{type:Boolean}},setup(t){const e=t;return(a,n)=>(g(),v(ce,null,[o("span",sr,[e.icon?(g(),v("i",{key:0,class:re(["fa-solid fa-sm m-0 p-0 me-2 item-icon",e.icon]),style:oe({color:e.iconcolor?e.iconcolor:"var(--color-charging)"})},null,6)):k("",!0),E(" "+P(a.title),1)]),o("div",ir,[o("span",lr,[ve(a.$slots,"default",{},void 0)])])],64))}}),R=j(cr,[["__scopeId","data-v-b438f667"]]),ur={class:"rangewidget d-flex flex-column"},dr={class:"rangeslider d-flex flex-fill justify-content-between align-items-center"},hr={class:"d-flex flex-fill flex-column justify-content-center m-0 p-0"},gr={key:0,id:"rangeIndicator",class:"rangeIndicator"},pr={viewBox:"0 0 100 2"},mr=["width"],fr=["x","width"],vr=["x","width"],yr=["id","min","max","step"],br={class:"d-flex justify-content-between align-items-center"},_r={class:"minlabel ps-4"},wr={class:"valuelabel"},kr={class:"maxlabel pe-4"},xr=B({__name:"RangeInput",props:{id:{},min:{},max:{},step:{},unit:{},decimals:{},showSubrange:{type:Boolean},subrangeMin:{},subrangeMax:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=a.decimals??0,s=e,i=m({get(){return Math.round(a.modelValue*Math.pow(10,n))/Math.pow(10,n)},set(b){s("update:modelValue",b)}});function r(){i.value>a.min&&(i.value=Math.round((i.value-a.step)*Math.pow(10,n))/Math.pow(10,n))}function c(){i.valueTe().domain([a.min,a.max]).range([0,100])),d=m(()=>l.value(a.subrangeMin?a.subrangeMin:0)),f=m(()=>a.subrangeMin&&a.subrangeMax?l.value(a.subrangeMax)-l.value(a.subrangeMin):0),T=m(()=>a.subrangeMax&&a.max?l.value(a.max)-l.value(a.subrangeMax):0);return(b,C)=>(g(),v("span",ur,[o("span",dr,[o("span",{type:"button",class:"minusButton",onClick:r},C[1]||(C[1]=[o("i",{class:"fa fa-xl fa-minus-square me-2"},null,-1)])),o("div",hr,[a.showSubrange?(g(),v("figure",gr,[(g(),v("svg",pr,[o("g",null,[o("rect",{class:"below",x:0,y:"0",width:d.value,height:"2",rx:"1",ry:"1",fill:"var(--color-evu)"},null,8,mr),o("rect",{class:"bar",x:d.value,y:"0",width:f.value,height:"2",rx:"1",ry:"1",fill:"var(--color-charging)"},null,8,fr),o("rect",{class:"above",x:d.value+f.value,y:"0",width:T.value,height:"2",rx:"1",ry:"1",fill:"var(--color-pv)"},null,8,vr)])]))])):k("",!0),Fe(o("input",{id:b.id,"onUpdate:modelValue":C[0]||(C[0]=z=>i.value=z),type:"range",class:"form-range flex-fill",min:b.min,max:b.max,step:b.step},null,8,yr),[[ba,i.value,void 0,{number:!0}]])]),o("span",{type:"button",class:"plusButton",onClick:c},C[2]||(C[2]=[o("i",{class:"fa fa-xl fa-plus-square ms-2"},null,-1)]))]),o("span",br,[o("span",_r,P(b.min),1),o("span",wr,P(i.value)+" "+P(b.unit),1),o("span",kr,P(b.max),1)])]))}}),he=j(xr,[["__scopeId","data-v-41dc3794"]]),Sr=["id","value"],Mr=B({__name:"RadioInput",props:{options:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=e,s=m({get(){return a.modelValue},set(c){console.log(a.options),console.log("set value",c),n("update:modelValue",c)}});function i(c){return a.options[c][2]?{color:a.options[c][2]}:{color:"var(--color-fg)"}}function r(c){console.log(c);let l=c.target;for(;l&&!l.value&&l.parentElement;)l=l.parentElement;l.value&&(typeof a.options[0][1]=="number"?s.value=Number(l.value):s.value=l.value)}return(c,l)=>(g(),v("div",null,[(g(!0),v(ce,null,_e(c.options,(d,f)=>(g(),v("button",{id:"radio-"+d[1],key:f,class:re(["btn btn-outline-secondary radiobutton me-2 mb-0 px-2",d[1]==s.value?"active":""]),value:d[1],style:oe(i(f)),onClick:r},[o("span",{style:oe(i(f)),class:"scaled"},[d[3]?(g(),v("i",{key:0,class:re(["fa-solid",d[3]])},null,2)):k("",!0),E(" "+P(d[0]),1)],4)],14,Sr))),128))]))}}),Le=j(Mr,[["__scopeId","data-v-1e5bd3af"]]),Pr={class:"instantsettings"},$r={key:0,class:"fullwidth"},Cr=B({__name:"ConfigInstant",props:{chargepointId:{}},setup(t){const e=t,a=m(()=>S[e.chargepointId]),n=[{name:"keine",id:"none"},{name:"EV-SoC",id:"soc"},{name:"Energiemenge",id:"amount"}],s=m({get(){return a.value.instantMaxEnergy/1e3},set(i){a.value.instantMaxEnergy=i*1e3}});return(i,r)=>(g(),v("div",Pr,[y(R,{title:"Stromstärke",icon:"fa-bolt",fullwidth:!0},{default:w(()=>[y(he,{id:"targetCurrent",modelValue:a.value.instantTargetCurrent,"onUpdate:modelValue":r[0]||(r[0]=c=>a.value.instantTargetCurrent=c),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1}),y(R,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:w(()=>[y(Le,{id:"targetPhases",modelValue:a.value.instantTargetPhases,"onUpdate:modelValue":r[1]||(r[1]=c=>a.value.instantTargetPhases=c),options:[["Eine",1],["Max",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),a.value.instantChargeLimitMode!="none"?(g(),v("hr",$r)):k("",!0),y(R,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:a.value.instantChargeLimitMode,"onUpdate:modelValue":r[2]||(r[2]=c=>a.value.instantChargeLimitMode=c),options:n.map(c=>[c.name,c.id])},null,8,["modelValue","options"])]),_:1}),a.value.instantChargeLimitMode=="soc"?(g(),I(R,{key:1,title:"Maximaler SoC",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxSoc",modelValue:a.value.instantTargetSoc,"onUpdate:modelValue":r[3]||(r[3]=c=>a.value.instantTargetSoc=c),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):k("",!0),a.value.instantChargeLimitMode=="amount"?(g(),I(R,{key:2,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxEnergy",modelValue:s.value,"onUpdate:modelValue":r[4]||(r[4]=c=>s.value=c),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):k("",!0)]))}}),Tr=j(Cr,[["__scopeId","data-v-49084b39"]]),Ir={class:"form-check form-switch d-flex align-items-center justify-content-center"},Br=B({__name:"SwitchInput",props:{modelValue:{type:Boolean},onColor:{},offColor:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=e,s=m({get(){return a.modelValue},set(i){n("update:modelValue",i)}});return(i,r)=>(g(),v("div",Ir,[Fe(o("input",{"onUpdate:modelValue":r[0]||(r[0]=c=>s.value=c),class:"form-check-input",type:"checkbox",role:"switch"},null,512),[[_a,s.value]])]))}}),Ve=j(Br,[["__scopeId","data-v-547e6de4"]]),Or={class:"pvsettings pt-2"},Vr={key:3,class:"fullwidth"},Lr=B({__name:"ConfigPv",props:{chargepointId:{}},setup(t){const e=t,a=m(()=>S[e.chargepointId]),n=[{name:"keine",id:"none"},{name:"EV-SoC",id:"soc"},{name:"Energiemenge",id:"amount"}],s=m({get(){return a.value.pvMaxEnergy/1e3},set(c){a.value.pvMaxEnergy=c*1e3}}),i=m({get(){return a.value.pvMinCurrent>5},set(c){c?a.value.pvMinCurrent=6:a.value.pvMinCurrent=0}}),r=m({get(){return a.value.pvMinSoc>0},set(c){c?a.value.pvMinSoc=50:a.value.pvMinSoc=0}});return(c,l)=>(g(),v("div",Or,[y(R,{title:"Minimaler Ladestrom",icon:"fa-bolt",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:i.value,"onUpdate:modelValue":l[0]||(l[0]=d=>i.value=d)},null,8,["modelValue"])]),_:1}),i.value?(g(),I(R,{key:0,title:"...bei Ladestrom (minimal)",fullwidth:!0},{default:w(()=>[y(he,{id:"minCurrent",modelValue:a.value.pvMinCurrent,"onUpdate:modelValue":l[1]||(l[1]=d=>a.value.pvMinCurrent=d),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1})):k("",!0),y(R,{title:"Anzahl Phasen",icon:"fa-plug",fullwidth:!0},{default:w(()=>[y(Le,{id:"targetPhases",modelValue:a.value.pvTargetPhases,"onUpdate:modelValue":l[2]||(l[2]=d=>a.value.pvTargetPhases=d),options:[["Eine",1],["Max",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),y(R,{title:"Mindest-Ladestand",icon:"fa-battery-half",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:r.value,"onUpdate:modelValue":l[3]||(l[3]=d=>r.value=d)},null,8,["modelValue"])]),_:1}),r.value?(g(),I(R,{key:1,title:"...bis SoC",fullwidth:!0},{default:w(()=>[y(he,{id:"minSoc",modelValue:a.value.pvMinSoc,"onUpdate:modelValue":l[4]||(l[4]=d=>a.value.pvMinSoc=d),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):k("",!0),r.value?(g(),I(R,{key:2,title:"...mit Ladestrom",fullwidth:!0},{default:w(()=>[y(he,{id:"minSocCurrent",modelValue:a.value.pvMinSocCurrent,"onUpdate:modelValue":l[5]||(l[5]=d=>a.value.pvMinSocCurrent=d),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1})):k("",!0),a.value.pvChargeLimitMode!="none"?(g(),v("hr",Vr)):k("",!0),y(R,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:a.value.pvChargeLimitMode,"onUpdate:modelValue":l[6]||(l[6]=d=>a.value.pvChargeLimitMode=d),options:n.map(d=>[d.name,d.id])},null,8,["modelValue","options"])]),_:1}),a.value.pvChargeLimitMode=="soc"?(g(),I(R,{key:4,title:"Maximaler SoC",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxSoc",modelValue:a.value.pvTargetSoc,"onUpdate:modelValue":l[7]||(l[7]=d=>a.value.pvTargetSoc=d),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):k("",!0),a.value.pvChargeLimitMode=="amount"?(g(),I(R,{key:5,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxEnergy",modelValue:s.value,"onUpdate:modelValue":l[8]||(l[8]=d=>s.value=d),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):k("",!0),y(R,{title:"Einspeisegrenze beachten",icon:"fa-hand",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:a.value.pvFeedInLimit,"onUpdate:modelValue":l[9]||(l[9]=d=>a.value.pvFeedInLimit=d)},null,8,["modelValue"])]),_:1})]))}}),Ar=j(Lr,[["__scopeId","data-v-54a8d955"]]),Dr={class:"d-flex flex-column p-3"},Er={key:0,class:"info p-5"},Wr={key:1,class:"table table-dark"},Gr=B({__name:"ConfigScheduled",props:{chargePoint:{}},setup(t){const e={daily:"Täglich",once:"Einmal",weekly:"Wöchentlich"},a=t,n=m(()=>{var c;return((c=a.chargePoint.chargeTemplate)==null?void 0:c.chargemode.scheduled_charging.plans)??[]});function s(c){return n.value[c].time}function i(c){return{"font-weight":n.value[c].active?"bold":"regular"}}function r(c){a.chargePoint.chargeTemplate.chargemode.scheduled_charging.plans[c].active=n.value[c].active,F(a.chargePoint.id)}return(c,l)=>(g(),v("div",Dr,[l[1]||(l[1]=o("div",{class:"subtitle mb-4"},"Pläne für Zielladen:",-1)),n.value.length==0?(g(),v("div",Er," Pläne für das Zielladen können in den Einstellungen des Ladeprofils angelegt werden. ")):(g(),v("table",Wr,[l[0]||(l[0]=o("thead",null,[o("tr",null,[o("th"),o("th",null,"Plan"),o("th",null,"Zielzeit"),o("th",null,"Ladeziel"),o("th",null,"Wiederholung")])],-1)),o("tbody",null,[(g(!0),v(ce,null,_e(n.value,(d,f)=>(g(),v("tr",{key:f,style:oe(i(f))},[o("td",null,[y(Ve,{modelValue:d.active,"onUpdate:modelValue":[T=>d.active=T,T=>r(f)]},null,8,["modelValue","onUpdate:modelValue"])]),o("td",null,P(d.name),1),o("td",null,P(s(f)),1),o("td",null,P(d.limit.selected=="soc"?d.limit.soc_scheduled+"%":u(xt)(d.limit.amount,0)),1),o("td",null,P(e[d.frequency.selected]),1)],4))),128))])]))]))}}),Ur=j(Gr,[["__scopeId","data-v-f5100bdc"]]),zr={class:"digit scaled",type:"button"},jr=B({__name:"PadButtonSmall",props:{modelValue:{},color:{}},emits:["update:modelValue"],setup(t,{emit:e}){const a=t,n=se(!1);function s(){n.value=!0,r("update:modelValue",a.modelValue),setTimeout(()=>{n.value=!1},300)}const i=m(()=>n.value?{"background-color":"white",color:"black"}:{"background-color":a.color??"var(--color-axis)"}),r=e;return(c,l)=>(g(),v("div",{class:"padbutton",style:oe(i.value),onClick:s},[o("span",zr,[ve(c.$slots,"default",{},void 0)])],4))}}),Ae=j(jr,[["__scopeId","data-v-c4e8b67a"]]),Nr={class:"numberpad"},Jr={class:"codedisplay scaled px-3 py-1 mb-4"},Fr={class:"numberentry"},Rr=B({__name:"PricePad",props:{modelValue:{}},emits:["update:modelValue"],setup(t,{emit:e}){const n=se(t.modelValue),s=e;function i(r){r==-1?n.value=n.value.slice(0,-1):r==-2?(s("update:modelValue",n.value),n.value=""):r==-3?n.value.indexOf(".")==-1&&(n.value=n.value+"."):n.value=n.value+r.toString()}return(r,c)=>(g(),v("div",Nr,[o("p",Jr,P(n.value)+" ct",1),o("div",Fr,[(g(),v(ce,null,_e(3,l=>y(Ae,{key:l,"model-value":l,"onUpdate:modelValue":i},{default:w(()=>[E(P(l),1)]),_:2},1032,["model-value"])),64)),y(Ae,{"model-value":-2,color:"var(--color-devices)","onUpdate:modelValue":i},{default:w(()=>c[0]||(c[0]=[o("span",{class:"fas fa-circle-check"},null,-1)])),_:1}),(g(),v(ce,null,_e([4,5,6],l=>y(Ae,{key:l,"model-value":l,"onUpdate:modelValue":i},{default:w(()=>[E(P(l),1)]),_:2},1032,["model-value"])),64)),y(Ae,{"model-value":-1,color:"var(--color-devices)","onUpdate:modelValue":i},{default:w(()=>c[1]||(c[1]=[o("span",{class:"fas fa-delete-left"},null,-1)])),_:1}),(g(),v(ce,null,_e([7,8,9],l=>y(Ae,{key:l,"model-value":l,"onUpdate:modelValue":i},{default:w(()=>[E(P(l),1)]),_:2},1032,["model-value"])),64)),c[4]||(c[4]=o("div",null,null,-1)),c[5]||(c[5]=o("div",null,null,-1)),y(Ae,{"model-value":0,"onUpdate:modelValue":i},{default:w(()=>c[2]||(c[2]=[E("0")])),_:1}),y(Ae,{"model-value":-3,"onUpdate:modelValue":i},{default:w(()=>c[3]||(c[3]=[E(",")])),_:1})])]))}}),Hr=j(Rr,[["__scopeId","data-v-2cdf4e9c"]]),Yr={class:"pricesettings"},qr={class:"grapharea rounded shadow p-2"},Qr={id:"pricechart"},Zr={viewBox:"0 0 400 270"},Xr=["id","origin","transform"],Kr={class:"controlarea rounded shadow p-2"},es={class:"pt-1 pb-2 d-flex justify-content-between"},ts={key:1,class:"sliderarea"},bt=400,Gt=250,Ut=12,as=B({__name:"PriceChart",props:{chargePointId:{},globalview:{type:Boolean}},setup(t){const e=t,a=m(()=>S[e.chargePointId]),n=se(!1),s=se(!1);let i=a.value?se(a.value.etMaxPrice):se(0);const r=m({get(){return i.value},set(V){i.value=V,n.value=!0}}),c=m({get(){return(Math.round(i.value*10)/10).toString()},set(V){r.value=parseFloat(V)??r.value,s.value=!1}});function l(){a.value&&(a.value.etMaxPrice=r.value),n.value=!1}const d=se(!1),f={top:0,bottom:15,left:20,right:15},T=m(()=>{let V=[];return te.etPriceList.size>0&&te.etPriceList.forEach((N,pe)=>{V.push([pe,N])}),V}),b=m(()=>T.value.length>1?(bt-f.left-f.right)/T.value.length-1:0),C=m(()=>n.value?{background:"var(--color-charging)",color:"var(--color-fg)"}:{background:"var(--color-menu)"});function z(){s.value=!s.value}const ie=m(()=>{let V=We(T.value,N=>N[0]);return V[1]&&(V[1]=new Date(V[1]),V[1].setTime(V[1].getTime()+36e5)),Ye().range([f.left,bt-f.right]).domain(V)}),D=m(()=>{let V=We(T.value,N=>N[1]);return V[0]=V[0]?Math.floor(V[0]-1):0,V[1]=V[1]?Math.floor(V[1]+1):0,V}),G=m(()=>Te().range([Gt-f.bottom,0]).domain(D.value)),Q=m(()=>{const V=Ft(),N=[[f.left,G.value(r.value)],[bt-f.right-1,G.value(r.value)]];return V(N)}),O=m(()=>at(ie.value).ticks(T.value.length).tickSize(5).tickSizeInner(-250).tickFormat(V=>V.getHours()%6==0?wt("%H:%M")(V):"")),x=m(()=>ht(G.value).ticks(6).tickSizeInner(-365).tickFormat(V=>V.toString())),$=m(()=>{d.value==!0;const V=we("g#"+U.value);V.selectAll("*").remove(),V.selectAll("bar").data(T.value).enter().append("g").append("rect").attr("class","bar").attr("x",ye=>ie.value(ye[0])).attr("y",ye=>G.value(ye[1])).attr("width",b.value).attr("height",ye=>G.value(D.value[0])-G.value(ye[1])).attr("fill",ye=>ye[1]<=r.value?"var(--color-charging)":"var(--color-axis)");const pe=V.append("g").attr("class","axis").call(O.value);pe.attr("transform","translate(0,"+(Gt-f.bottom)+")"),pe.selectAll(".tick").attr("font-size",Ut).attr("color","var(--color-bg)"),pe.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",ye=>ye.getHours()%6==0?"2":"0.5"),pe.select(".domain").attr("stroke","var(--color-bg");const Xe=V.append("g").attr("class","axis").call(x.value);return Xe.attr("transform","translate("+f.left+",0)"),Xe.selectAll(".tick").attr("font-size",Ut).attr("color","var(--color-bg)"),Xe.selectAll(".tick line").attr("stroke","var(--color-bg)").attr("stroke-width",ye=>ye%5==0?"2":"0.5"),Xe.select(".domain").attr("stroke","var(--color-bg)"),V.append("path").attr("d",Q.value).attr("stroke","yellow"),"PriceChart.vue"}),U=m(()=>a.value?"priceChartCanvas"+a.value.id:"priceChartCanvasGlobal"),A=m(()=>{let V=[];return te.etPriceList.forEach(N=>{V.push(N)}),V.sort((N,pe)=>N-pe)});function ue(){let V=A.value[0];for(let N of A.value){if(N>=r.value)break;V=N}r.value=V}function da(){let V=A.value[0];for(let N of A.value)if(N>r.value){V=N;break}else V=N;r.value=V}return Qe(()=>{d.value=!d.value}),(V,N)=>(g(),v("div",Yr,[o("div",qr,[o("span",null,"Anbieter: "+P(u(te).etProvider),1),o("figure",Qr,[(g(),v("svg",Zr,[o("g",{id:U.value,origin:$.value,transform:"translate("+f.top+","+f.right+")"},null,8,Xr)]))])]),o("div",Kr,[o("span",es,[o("button",{type:"button",class:"btn btn-lg keypadbutton me-3",onClick:z},N[2]||(N[2]=[o("i",{class:"fa fa-xl fa-keyboard"},null,-1)])),s.value?k("",!0):(g(),v("button",{key:0,type:"button",class:"btn btn-lg confirmbutton",style:oe(C.value),"data-bs-dismiss":"modal",onClick:l}," Bestätigen ",4))]),s.value?(g(),I(Hr,{key:0,modelValue:c.value,"onUpdate:modelValue":N[0]||(N[0]=pe=>c.value=pe),decimals:1,class:"mb-3"},null,8,["modelValue"])):(g(),v("div",ts,[y(he,{id:"etmaxprice",modelValue:r.value,"onUpdate:modelValue":N[1]||(N[1]=pe=>r.value=pe),min:Math.floor(A.value[0]-1),max:Math.ceil(A.value[A.value.length-1]+1),step:.1,decimals:1,"show-subrange":!0,"subrange-min":A.value[0],"subrange-max":A.value[A.value.length-1],unit:"ct"},null,8,["modelValue","min","max","subrange-min","subrange-max"]),o("div",{class:"d-flex justify-content-between pb-2 pt-0 mt-0"},[o("button",{type:"button",class:"btn jumpbutton",onClick:ue},N[3]||(N[3]=[o("i",{class:"fa fa-xl fa-arrow-left"},null,-1)])),o("button",{type:"button",class:"btn jumpbutton",onClick:da},N[4]||(N[4]=[o("i",{class:"fa fa-xl fa-arrow-right"},null,-1)]))])]))])]))}}),ns=j(as,[["__scopeId","data-v-7e771d75"]]),os={class:"ecosettings"},rs={key:1,class:"fullwidth"},ss=B({__name:"ConfigEco",props:{chargepoint:{}},setup(t){const e=t,a=m(()=>S[e.chargepoint.id]),n=[{name:"keine",id:"none"},{name:"EV-SoC",id:"soc"},{name:"Energiemenge",id:"amount"}],s=m({get(){return a.value.ecoMaxEnergy/1e3},set(c){a.value.ecoMaxEnergy=c*1e3}});function i(){const c=document.getElementById("modal-body-settingspage");c?c.scrollTo({top:c.scrollHeight,behavior:"smooth"}):console.warn("modalbody not found")}function r(){const c=document.getElementById("modal-body-settingspage");window.scrollTo(0,0),c?c.scrollTo({top:0,behavior:"smooth"}):console.warn("modalbody not found")}return(c,l)=>(g(),v("div",os,[u(te).active&&u(te).etPriceList.size>0?(g(),I(ns,{key:0,"charge-point-id":e.chargepoint.id,class:"fullwidth"},null,8,["charge-point-id"])):k("",!0),o("span",{class:"fullwidth mb-4 mt-2"},[o("button",{type:"button",class:"btn btn-secondary",onClick:i},l[5]||(l[5]=[o("i",{class:"fa-solid fa-circle-down me-2"},null,-1),E(" Abwärts ")]))]),y(R,{title:"Minimaler Ladestrom unter der Preisgrenze",icon:"fa-bolt",fullwidth:!0},{default:w(()=>[y(he,{id:"minCurrent",modelValue:a.value.ecoMinCurrent,"onUpdate:modelValue":l[0]||(l[0]=d=>a.value.ecoMinCurrent=d),min:6,max:32,step:1,unit:"A"},null,8,["modelValue"])]),_:1}),y(R,{title:"Anzahl Phasen bei Überschuss",icon:"fa-plug",fullwidth:!0},{default:w(()=>[y(Le,{id:"targetPhases",modelValue:a.value.ecoTargetPhases,"onUpdate:modelValue":l[1]||(l[1]=d=>a.value.ecoTargetPhases=d),options:[["Eine",1],["Max",3],["Auto",0]]},null,8,["modelValue"])]),_:1}),a.value.ecoChargeLimitMode!="none"?(g(),v("hr",rs)):k("",!0),y(R,{title:"Begrenzung",icon:"fa-hand",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:a.value.ecoChargeLimitMode,"onUpdate:modelValue":l[2]||(l[2]=d=>a.value.ecoChargeLimitMode=d),options:n.map(d=>[d.name,d.id])},null,8,["modelValue","options"])]),_:1}),a.value.ecoChargeLimitMode=="soc"?(g(),I(R,{key:2,title:"Maximaler SoC",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxSoc",modelValue:a.value.ecoTargetSoc,"onUpdate:modelValue":l[3]||(l[3]=d=>a.value.ecoTargetSoc=d),min:0,max:100,step:1,unit:"%"},null,8,["modelValue"])]),_:1})):k("",!0),a.value.ecoChargeLimitMode=="amount"?(g(),I(R,{key:3,title:"Zu ladende Energie",icon:"fa-sliders",fullwidth:!0},{default:w(()=>[y(he,{id:"maxEnergy",modelValue:s.value,"onUpdate:modelValue":l[4]||(l[4]=d=>s.value=d),min:0,max:100,step:1,unit:"kWh"},null,8,["modelValue"])]),_:1})):k("",!0),o("span",{class:"fullwidth"},[o("button",{type:"button",class:"btn btn-secondary",onClick:r},l[6]||(l[6]=[o("i",{class:"fa-solid fa-circle-up me-2"},null,-1),E(" Aufwärts ")]))])]))}}),is=j(ss,[["__scopeId","data-v-e7b1660a"]]),ls={class:"d-flex flex-column p-3"},cs={key:0,class:"warning p-5"},us={class:"table table-dark"},ds=B({__name:"ConfigTimed",props:{chargePoint:{}},setup(t){const e={daily:"Täglich",once:"Einmal",weekly:"Wöchentlich"},a=t,n=m(()=>{var r;return((r=a.chargePoint.chargeTemplate)==null?void 0:r.time_charging.plans)??[]});function s(r){a.chargePoint.chargeTemplate.chargemode.scheduled_charging.plans[r].active=n.value[r].active,F(a.chargePoint.id)}function i(r){return{"font-weight":n.value[r].active?"bold":"regular"}}return(r,c)=>(g(),v("div",ls,[c[1]||(c[1]=o("div",{class:"subtitle mb-4"},"Zeitpläne:",-1)),n.value.length==0?(g(),v("div",cs," Es sind noch keine Pläne definiert. Zeitpläne können in der Web-App festgelegt werden. ")):k("",!0),o("table",us,[c[0]||(c[0]=o("thead",null,[o("tr",null,[o("th"),o("th",null,"Von"),o("th",null,"Bis"),o("th",null,"Ladestrom"),o("th",null,"Wiederholung")])],-1)),o("tbody",null,[(g(!0),v(ce,null,_e(n.value,(l,d)=>(g(),v("tr",{key:d,style:oe(i(d))},[o("td",null,[y(Ve,{modelValue:l.active,"onUpdate:modelValue":[f=>l.active=f,f=>s(d)]},null,8,["modelValue","onUpdate:modelValue"])]),o("td",null,P(l.time[0]),1),o("td",null,P(l.time[1]),1),o("td",null,P(l.current)+"A",1),o("td",null,P(e[l.frequency.selected]),1)],4))),128))])])]))}}),hs=j(ds,[["__scopeId","data-v-7817e508"]]),gs={class:"chargesettings pt-2"},ps={key:1,class:"grid-col-2 my-2"},ms=B({__name:"ChargeConfig",props:{chargepointId:{}},setup(t){const e=t,a=m(()=>S[e.chargepointId]),n=m({get:()=>a.value.connectedVehicle,set:i=>{S[a.value.id].connectedVehicle=i}}),s=m({get:()=>a.value.timedCharging,set:i=>{S[a.value.id].timedCharging=i}});return(i,r)=>(g(),v("div",gs,[Object.keys(u(X)).length>1?(g(),I(R,{key:0,title:"Fahrzeug wechseln",icon:"fa-car",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:n.value,"onUpdate:modelValue":r[0]||(r[0]=c=>n.value=c),modelModifiers:{number:!0},options:Object.values(u(X)).map(c=>[c.name,c.id])},null,8,["modelValue","options"])]),_:1})):k("",!0),r[5]||(r[5]=o("hr",{class:"grid-col-2 my-2"},null,-1)),y(R,{title:"Priorität",icon:"fa-star",iconcolor:"var(--color-evu)",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:a.value.hasPriority,"onUpdate:modelValue":r[1]||(r[1]=c=>a.value.hasPriority=c)},null,8,["modelValue"])]),_:1}),y(R,{title:"Zeitplan aktivieren",icon:"fa-clock",iconcolor:"var(--color-battery)"},{default:w(()=>[y(Ve,{modelValue:s.value,"onUpdate:modelValue":r[2]||(r[2]=c=>s.value=c)},null,8,["modelValue"])]),_:1}),y(R,{title:"Sperren",icon:"fa-lock",iconcolor:"var(--color-evu)",fullwidth:!0},{default:w(()=>[y(Ve,{modelValue:a.value.isLocked,"onUpdate:modelValue":r[3]||(r[3]=c=>a.value.isLocked=c)},null,8,["modelValue"])]),_:1}),u(H).isBatteryConfigured?(g(),v("hr",ps)):k("",!0),u(H).isBatteryConfigured?(g(),I(R,{key:2,title:"PV-Priorität (global)",icon:"fa-car-battery",iconcolor:"var(--color-battery)",fullwidth:!0},{default:w(()=>[y(Le,{modelValue:u(H).pvBatteryPriority,"onUpdate:modelValue":r[4]||(r[4]=c=>u(H).pvBatteryPriority=c),options:u(Ea)},null,8,["modelValue","options"])]),_:1})):k("",!0)]))}}),fs=j(ms,[["__scopeId","data-v-276daf1f"]]),vs=["id"],ys={class:"nav nav-tabs nav-justified mx-1 mt-1",role:"tablist"},bs=["id","data-bs-target"],_s=["id","data-bs-target"],ws=["id","data-bs-target"],ks=["id","data-bs-target"],xs=["id","data-bs-target"],Ss=["id","data-bs-target"],Ms={id:"settingsPanes",class:"tab-content mt-2"},Ps=["id"],$s=["id"],Cs=["id"],Ts=["id"],Is=["id"],Bs=["id"],Os=B({__name:"SettingsPage",props:{chargepoint:{}},setup(t){const e=t,a=m(()=>e.chargepoint.chargeTemplate),n=m(()=>e.chargepoint.id);return(s,i)=>(g(),v("div",{id:`tabarea-${n.value}`,class:"m-0 mt-1 p-0 grid-col-12 tabarea"},[o("nav",ys,[o("a",{id:"chSettings"+n.value,class:"nav-link active","data-bs-toggle":"tab","data-bs-target":"#chargeSettings"+n.value},i[0]||(i[0]=[o("i",{class:"fa-solid fa-charging-station"},null,-1),E(" Allgemein ")]),8,bs),o("a",{id:"inSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#instantSettings"+n.value},i[1]||(i[1]=[o("i",{class:"fa-solid fa-lg fa-bolt"},null,-1),E(" Sofort ")]),8,_s),o("a",{id:"phvSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#pvSettings"+n.value},i[2]||(i[2]=[o("i",{class:"fa-solid fa-solar-panel me-1"},null,-1),E(" PV ")]),8,ws),o("a",{id:"scSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#scheduledSettings"+n.value},i[3]||(i[3]=[o("i",{class:"fa-solid fa-bullseye me-1"},null,-1),E(" Zielladen ")]),8,ks),o("a",{id:"ecSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#ecoSettings"+n.value},i[4]||(i[4]=[o("i",{class:"fa-solid fa-coins me-1"},null,-1),E(" Eco ")]),8,xs),o("a",{id:"tmSettings"+n.value,class:"nav-link","data-bs-toggle":"tab","data-bs-target":"#timeSettings"+n.value},i[5]||(i[5]=[o("i",{class:"fa-solid fa-clock"},null,-1),E(" Zeitpläne ")]),8,Ss)]),o("div",Ms,[o("div",{id:"chargeSettings"+n.value,class:"tab-pane active",role:"tabpanel","aria-labelledby":"instant-tab"},[y(fs,{"chargepoint-id":n.value},null,8,["chargepoint-id"])],8,Ps),o("div",{id:"instantSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"instant-tab"},[y(Tr,{"chargepoint-id":n.value},null,8,["chargepoint-id"])],8,$s),o("div",{id:"pvSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"pv-tab"},[y(Ar,{"chargepoint-id":n.value},null,8,["chargepoint-id"])],8,Cs),o("div",{id:"scheduledSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"scheduled-tab"},[a.value!=null?(g(),I(Ur,{key:0,"charge-point":e.chargepoint},null,8,["charge-point"])):k("",!0)],8,Ts),o("div",{id:"ecoSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"eco-tab"},[a.value!=null?(g(),I(is,{key:0,chargepoint:e.chargepoint},null,8,["chargepoint"])):k("",!0)],8,Is),o("div",{id:"timeSettings"+n.value,class:"tab-pane",role:"tabpanel","aria-labelledby":"time-tab"},[a.value!=null?(g(),I(hs,{key:0,"charge-point":e.chargepoint},null,8,["charge-point"])):k("",!0)],8,Bs)])],8,vs))}}),Vs=j(Os,[["__scopeId","data-v-cbeeb183"]]);function Ls(t,e){t=="openWB/graph/boolDisplayLiveGraph"?H.displayLiveGraph=+e==1:t.match(/^openwb\/graph\/alllivevaluesJson[1-9][0-9]*$/i)?As(t,e):t=="openWB/graph/lastlivevaluesJson"?Ds(t,e):t=="openWB/graph/config/duration"&&(K.duration=JSON.parse(e))}function As(t,e){if(!K.initialized){let a=[];const n=e.toString().split(` `);n.length>1?a=n.map(r=>JSON.parse(r)):a=[];const s=t.match(/(\d+)$/g),i=s?s[0]:"";i!=""&&typeof K.rawDataPacks[+i-1]>"u"&&(K.rawDataPacks[+i-1]=a,K.initCounter++)}if(K.initCounter==16){const a=[];K.unsubscribeRefresh(),K.initialized=!0,K.rawDataPacks.map(n=>{n.map(s=>{const i=sa(s);a.push(i)})}),Ze(a),K.subscribeUpdates()}}function Ds(t,e){const a=JSON.parse(e),n=sa(a);K.graphRefreshCounter++,Ze(p.data.concat(n)),K.graphRefreshCounter>60&&K.activate()}function sa(t){const e=Object.values(S).length>0?Object.values(S)[0].connectedVehicle:0,a=Object.values(S).length>1?Object.values(S)[1].connectedVehicle:1,n="ev"+e+"-soc",s="ev"+a+"-soc",i={};i.date=Es(t.time).valueOf(),+t.grid>0?(i.evuIn=+t.grid,i.evuOut=0):+t.grid<=0?(i.evuIn=0,i.evuOut=-t.grid):(i.evuIn=0,i.evuOut=0),+t["pv-all"]>=0?(i.pv=+t["pv-all"],i.inverter=0):(i.pv=0,i.inverter=-t["pv-all"]),i.house=+t["house-power"],+t["bat-all-power"]>0?(i.batOut=0,i.batIn=+t["bat-all-power"]):+t["bat-all-power"]<0?(i.batOut=-t["bat-all-power"],i.batIn=0):(i.batOut=0,i.batIn=0),t["bat-all-soc"]?i.batSoc=+t["bat-all-soc"]:i.batSoc=0,t[n]&&(i["soc"+e]=+t[n]),t[s]&&(i["soc"+a]=+t[s]),i.charging=+t["charging-all"];for(let r=0;r<10;r++){const c="cp"+r;i[c]=+(t[c+"-power"]??0)}return i.selfUsage=i.pv-i.evuOut,i.selfUsage<0&&(i.selfUsage=0),i.devices=0,i}function Es(t){const e=new Date(Date.now()),a=864e5;let n=new Date;const s=rt("%H:%M:%S")(t);return s&&(n=s,n.setDate(e.getDate()),n.setMonth(e.getMonth()),n.setFullYear(e.getFullYear()),n.getHours()>e.getHours()&&(n=new Date(n.getTime()-a))),n}const Ws=["evuIn","pv","batIn","evuOut"];let ut=[];function Gs(t,e){const a=JSON.parse(e).entries,n=JSON.parse(e).totals;Mt(),ut=[],Pt.map(i=>{M.setEnergyPv(i,0),M.setEnergyBat(i,0)});const s=Us(a);Ze(s),$t(n,ut),_.debug&&(console.debug("---------------------------------------- Graph Data ---------------------------"),console.debug("--- Incoming graph data:"),console.debug(a),console.debug("data to be displayed:"),console.debug(s),console.debug("-------------------------------------------------------------------------------")),p.graphMode=="today"&&setTimeout(()=>q.activate(),3e5)}function Us(t){const e=[];let a={};return t.map(n=>{a=zs(n);const s=a;e.push(s)}),e}function zs(t){const e={};if(p.graphMode=="day"||p.graphMode=="today")if(typeof t.date=="number")e.date=new Date(+t.date*1e3).getTime();else{const n=rt("%H:%M")(t.date);n&&(n.setMonth(q.date.getMonth()),n.setDate(q.date.getDate()),n.setFullYear(q.date.getFullYear()),e.date=n.getTime())}else if(typeof t.date=="string"){const n=rt("%Y%m%d")(t.date);n&&(e.date=n.getDate())}return e.evuOut=0,e.evuIn=0,Object.entries(t.counter).forEach(([n,s])=>{s.grid&&(e.evuOut+=s.power_exported,e.evuIn+=s.power_imported,ut.includes(n)||ut.push(n))}),e.evuOut==0&&e.evuIn==0&&Object.entries(t.counter).forEach(n=>{e.evuOut+=n[1].power_exported,e.evuIn+=n[1].power_imported}),e.pv=t.pv.all.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(([n,s])=>{n!="all"?(e[n]=s.power_imported,M.keys().includes(n)||M.addItem(n)):e.charging=s.power_imported}),Object.entries(t.ev).forEach(([n,s])=>{n!="all"&&(e["soc"+n.substring(2)]=s.soc)}),e.devices=0,Object.entries(t.sh).forEach(([n,s])=>{n!="all"&&(e[n]=s.power_imported??0,e.devices+=s.power_imported??0,M.keys().includes(n)||M.addItem(n))}),e.selfUsage=e.pv-e.evuOut,t.hc&&t.hc.all?e.house=t.hc.all.power_imported:e.house=e.evuIn+e.batOut+e.pv-e.evuOut-e.charging-e.devices-e.batOut,e.evuIn+e.batOut+e.pv>0?M.keys().filter(n=>!Ws.includes(n)).map(n=>{Tn(n,e)}):Object.keys(e).map(n=>{e[n+"Pv"]=0,e[n+"Bat"]=0}),e}let tt={};const Tt=["charging","house","batIn","devices"],js=["evuIn","pv","batIn","evuOut"];let He=[];function Ns(t,e){const a=JSON.parse(e).entries,n=JSON.parse(e).totals;Mt(),He=[],Tt.map(s=>{M.items[s].energyPv=0,M.items[s].energyBat=0}),a.length>0&&Ze(ia(a)),$t(n,[])}function Js(t,e){const a=JSON.parse(e).entries,n=JSON.parse(e).totals;Mt(),He=[],Tt.forEach(s=>{M.items[s].energyPv=0,M.items[s].energyBat=0}),Ze(ia(a)),$t(n,[])}function ia(t){const e=[];let a={};return tt={},t.map(n=>{a=Fs(n),e.push(a),Object.keys(a).forEach(s=>{s!="date"&&(a[s]<0&&(console.warn(`Negative energy value for ${s} in row ${a.date}. Ignoring the value.`),a[s]=0),tt[s]?tt[s]+=a[s]:tt[s]=a[s])})}),e}function Fs(t){const e={},a=rt("%Y%m%d")(t.date);a&&(e.date=p.graphMode=="month"?a.getDate():a.getMonth()+1),e.evuOut=0,e.evuIn=0;let n=0,s=0;return Object.entries(t.counter).forEach(([r,c])=>{n+=c.energy_exported,s+=c.energy_imported,c.grid&&(e.evuOut+=c.energy_exported,e.evuIn+=c.energy_imported,He.includes(r)||He.push(r))}),He.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(([r,c])=>{r!="all"?(M.keys().includes(r)||M.addItem(r),e[r]=c.energy_imported):e.charging=c.energy_imported}),Object.entries(t.ev).forEach(([r,c])=>{r!="all"&&(e["soc-"+r]=c.soc)}),e.devices=Object.entries(t.sh).reduce((r,c)=>(M.keys().includes(c[0])||M.addItem(c[0]),c[1].energy_imported>=0?r+=c[1].energy_imported:console.warn(`Negative energy value for device ${c[0]} in row ${e.date}. Ignoring this value`),r),0),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?M.keys().filter(r=>!js.includes(r)).map(r=>{In(r,e)}):Tt.map(r=>{e[r+"Pv"]=0,e[r+"Bat"]=0}),e}class Rs{constructor(e){h(this,"id");h(this,"dailyYieldExport",0);h(this,"dailyYieldImport",0);h(this,"exported",0);h(this,"faultState",0);h(this,"faultStr","");h(this,"imported",0);h(this,"power",0);h(this,"soc",0);this.id=e}}class Hs{constructor(){h(this,"dailyExport",0);h(this,"dailyImport",0);h(this,"exported",0);h(this,"imported",0);h(this,"power",0);h(this,"soc",0)}}const de=Y({});Y(new Hs);function Ys(t){t in de?console.info("Duplicate battery message: "+t):de[t]=new Rs(t)}function qs(){Object.keys(de).forEach(t=>{delete de[parseInt(t)]})}function Qs(t,e){const a=Zs(t);if(a&&!(a in de)){console.warn("Invalid battery index received: "+a);return}t=="openWB/bat/config/configured"?H.isBatteryConfigured=e=="true":t=="openWB/bat/get/power"?+e>0?(L.batIn.power=+e,J.batOut.power=0):(L.batIn.power=0,J.batOut.power=-e):t=="openWB/bat/get/soc"?H.batterySoc=+e:t=="openWB/bat/get/daily_exported"?J.batOut.energy=+e:t=="openWB/bat/get/daily_imported"?L.batIn.energy=+e:a&&(t.match(/^openwb\/bat\/[0-9]+\/get\/daily_yield_export$/i)?de[a].dailyYieldExport=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/daily_yield_import$/i)?de[a].dailyYieldImport=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/exported$/i)?de[a].exported=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/fault_state$/i)?de[a].faultState=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/fault_str$/i)?de[a].faultStr=e:t.match(/^openwb\/bat\/[0-9]+\/get\/imported$/i)?de[a].imported=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/power$/i)?de[a].power=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/soc$/i)&&(de[a].soc=+e))}function Zs(t){let e=0;try{const a=t.match(/(?:\/)([0-9]+)(?=\/)/g);return a?(e=+a[0].replace(/[^0-9]+/g,""),e):void 0}catch(a){console.warn("Parser error in getIndex for topic "+t+" : "+a)}}function Xs(t,e){if(t=="openWB/optional/et/provider")JSON.parse(e).type==null?te.active=!1:(te.active=!0,te.etProvider=JSON.parse(e).name);else if(t=="openWB/optional/et/get/prices"){const a=JSON.parse(e);te.etPriceList=new Map,Object.keys(a).map(n=>{te.etPriceList.set(new Date(+n*1e3),a[n]*1e5)})}}function Ks(t,e){const a=la(t);if(a&&!(a in S)){console.warn("Invalid chargepoint id received: "+a);return}if(t=="openWB/chargepoint/get/power"?L.charging.power=+e:t=="openWB/chargepoint/get/daily_imported"&&(L.charging.energy=+e),t=="openWB/chargepoint/get/daily_exported")H.cpDailyExported=+e;else if(a)if(t.match(/^openwb\/chargepoint\/[0-9]+\/config$/i))if(S[a]){const n=JSON.parse(e);S[a].name=n.name,S[a].icon=n.name,le["cp"+a]?(le["cp"+a].name=n.name,le["cp"+a].icon=n.name):le["cp"+a]={name:n.name,icon:n.name,color:"var(--color-charging)"}}else console.warn("invalid chargepoint index: "+a);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/state_str$/i))S[a].stateStr=JSON.parse(e);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_str$/i))S[a].faultStr=JSON.parse(e);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/fault_state$/i))S[a].faultState=+e;else if(t.match(/^openWB\/chargepoint\/[0-9]+\/get\/power$/i))S[a].power=+e;else if(t.match(/^openWB\/chargepoint\/[0-9]+\/get\/daily_imported$/i))S[a].dailyYield=+e;else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/plug_state$/i))S[a].isPluggedIn=e=="true";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/charge_state$/i))S[a].isCharging=e=="true";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/set\/manual_lock$/i))S[a].updateIsLocked(e=="true");else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/enabled$/i))S[a].isEnabled=e=="1";else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/phases_in_use/i))S[a].phasesInUse=+e;else if(t.match(/^openwb\/chargepoint\/[0-9]+\/set\/current/i))S[a].current=+e;else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/currents/i))S[a].currents=JSON.parse(e);else if(t.match(/^openwb\/chargepoint\/[0-9]+\/set\/log/i)){const n=JSON.parse(e);S[a].chargedSincePlugged=n.imported_since_plugged}else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/soc$/i)){const n=JSON.parse(e);S[a].soc=n.soc,S[a].waitingForSoc=!1,S[a].rangeCharged=n.range_charged,S[a].rangeUnit=n.range_unit}else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/info$/i)){const n=JSON.parse(e);S[a].vehicleName=String(n.name),S[a].updateConnectedVehicle(+n.id)}else if(t.match(/^openwb\/chargepoint\/[0-9]+\/get\/connected_vehicle\/config$/i)){const n=JSON.parse(e);S[a].averageConsumption=n.average_consumption,S[a].chargeTemplateId=n.charge_template}else t.match(/^openwb\/chargepoint\/[0-9]+\/set\/charge_template$/i)&&(S[a].chargeTemplate=JSON.parse(e))}function ei(t,e){const a=la(t);if(a!=null){if(!(a in X)){const n=new Ba(a);X[a]=n}if(t.match(/^openwb\/vehicle\/[0-9]+\/name$/i))Object.values(S).forEach(n=>{n.connectedVehicle==a&&(n.vehicleName=JSON.parse(e))}),X[a].name=JSON.parse(e);else if(t.match(/^openwb\/vehicle\/[0-9]+\/get\/soc$/i))X[a].soc=JSON.parse(e);else if(t.match(/^openwb\/vehicle\/[0-9]+\/get\/range$/i))isNaN(+e)?X[a].range=0:X[a].range=+e;else if(t.match(/^openwb\/vehicle\/[0-9]+\/charge_template$/i))X[a].updateChargeTemplateId(+e);else if(t.match(/^openwb\/vehicle\/[0-9]+\/ev_template$/i))X[a].updateEvTemplateId(+e);else if(t.match(/^openwb\/vehicle\/[0-9]+\/soc_module\/config$/i)){const n=JSON.parse(e);Object.values(S).forEach(s=>{s.connectedVehicle==a&&(s.isSocConfigured=n.type!==null,s.isSocManual=n.type=="manual")})}}}function ti(t,e){if(t.match(/^openwb\/vehicle\/template\/charge_template\/[0-9]+$/i)){const a=t.match(/[0-9]+$/i);if(a){const n=+a[0];Oa[n]=JSON.parse(e)}}else if(t.match(/^openwb\/vehicle\/template\/ev_template\/[0-9]+$/i)){const a=t.match(/[0-9]+$/i);if(a){const n=+a[0],s=JSON.parse(e);Va[n]=s}}}function la(t){let e=0;try{const a=t.match(/(?:\/)([0-9]+)(?=\/)/g);return a?(e=+a[0].replace(/[^0-9]+/g,""),e):void 0}catch(a){console.warn("Parser error in getIndex for topic "+t+" : "+a)}}function ai(t,e){t.match(/^openWB\/LegacySmarthome\/config\//i)?ni(t,e):t.match(/^openWB\/LegacySmarthome\/Devices\//i)&&oi(t,e)}function ni(t,e){const a=ca(t);if(a==null)return;ne.has(a)||Kt(a);const n=ne.get(a);t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_configured$/i)?n.configured=e!="0":t.match(/^openWB\/LegacySmarthome\/config\/get\/Devices\/[0-9]+\/device_name$/i)?(n.name=e.toString(),n.icon=e.toString(),le["sh"+a].name=e.toString(),le["sh"+a].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 oi(t,e){const a=ca(t);if(a==null){console.warn("Smarthome: Missing index in "+t);return}ne.has(a)||Kt(a);const n=ne.get(a);if(t.match(/^openWB\/LegacySmarthome\/Devices\/[0-9]+\/Watt$/i))n.power=+e,ri("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 ri(t){switch(t){case"power":L.devices.power=[...ne.values()].filter(e=>e.configured&&!e.countAsHouse).reduce((e,a)=>e+a.power,0);break;case"energy":L.devices.energy=[...ne.values()].filter(e=>e.configured&&!e.countAsHouse).reduce((e,a)=>e+a.energy,0);break;default:console.error("Unknown category")}}function ca(t){let e=0;try{const a=t.match(/(?:\/)([0-9]+)(?=\/)/g);return a?(e=+a[0].replace(/[^0-9]+/g,""),e):void 0}catch(a){console.warn("Parser error in getIndex for topic "+t+" : "+a)}}class si{constructor(e){h(this,"id");h(this,"name","Zähler");h(this,"power",0);h(this,"energy_imported",0);h(this,"energy_exported",0);h(this,"grid",!1);h(this,"type","counter");h(this,"color","var(--color-evu)");h(this,"energyPv",0);h(this,"energyBat",0);h(this,"pvPercentage",0);h(this,"icon","");this.id=e}}const me=Y({});function ii(t,e){if(t in me)console.info("Duplicate counter message: "+t);else switch(me[t]=new si(t),me[t].type=e,e){case"counter":me[t].color="var(--color-evu)";break;case"inverter":me[t].color="var(--color-pv)";break;case"cp":me[t].color="var(--color-charging)";break;case"bat":me[t].color="var(--color-bat)";break}}const li=["openWB/counter/#","openWB/bat/#","openWB/pv/get/#","openWB/chargepoint/#","openWB/vehicle/#","openWB/general/chargemode_config/pv_charging/#","openWB/optional/et/#","openWB/system/#","openWB/LegacySmartHome/#","openWB/command/"+St()+"/#","openWB/optional/int_display/#"];function ci(){Ta(ui),li.forEach(t=>{Ee(t)}),ae()}function ui(t,e){const a=e.toString();t.match(/^openwb\/counter\/[0-9]+\//i)?di(t,a):t.match(/^openwb\/counter\//i)?hi(t,a):t.match(/^openwb\/bat\//i)?Qs(t,a):t.match(/^openwb\/pv\//i)?gi(t,a):t.match(/^openwb\/chargepoint\//i)?Ks(t,a):t.match(/^openwb\/vehicle\/template\//i)?ti(t,a):t.match(/^openwb\/vehicle\//i)?ei(t,a):t.match(/^openwb\/general\/chargemode_config\/pv_charging\//i)?pi(t,a):t.match(/^openwb\/graph\//i)?Ls(t,a):t.match(/^openwb\/log\/daily\//i)?Gs(t,a):t.match(/^openwb\/log\/monthly\//i)?Ns(t,a):t.match(/^openwb\/log\/yearly\//i)?Js(t,a):t.match(/^openwb\/optional\/et\//i)?Xs(t,a):t.match(/^openwb\/system\//i)?fi(t,a):t.match(/^openwb\/LegacySmartHome\//i)?ai(t,a):t.match(/^openwb\/command\//i)?vi(t,a):t.match(/^openwb\/optional\//i)&&yi(t,a)}function di(t,e){const a=t.split("/"),n=+a[2];if(n==H.evuId?mi(t,e):a[3]=="config",a[3]=="get"&&n in me)switch(a[4]){case"power":me[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":me[n].energy_imported=+e;break;case"daily_exported":me[n].energy_exported=+e;break}}function hi(t,e){if(t.match(/^openwb\/counter\/get\/hierarchy$/i)){const a=JSON.parse(e);if(a.length){Aa(),qs();for(const n of a)n.type=="counter"&&(H.evuId=n.id);ua(a[0])}}else t.match(/^openwb\/counter\/set\/home_consumption$/i)?L.house.power=+e:t.match(/^openwb\/counter\/set\/daily_yield_home_consumption$/i)&&(L.house.energy=+e)}function ua(t){switch(t.type){case"counter":ii(t.id,t.type);break;case"cp":La(t.id);break;case"bat":Ys(t.id);break}t.children.forEach(e=>ua(e))}function gi(t,e){switch(t){case"openWB/pv/get/power":J.pv.power=-e;break;case"openWB/pv/get/daily_exported":J.pv.energy=+e;break}}function pi(t,e){const a=t.split("/");if(a.length>0)switch(a[4]){case"bat_mode":H.updatePvBatteryPriority(JSON.parse(e));break}}function mi(t,e){switch(t.split("/")[4]){case"power":+e>0?(J.evuIn.power=+e,L.evuOut.power=0):(J.evuIn.power=0,L.evuOut.power=-e);break;case"daily_imported":J.evuIn.energy=+e;break;case"daily_exported":L.evuOut.energy=+e;break}}function fi(t,e){if(t.match(/^openWB\/system\/device\/[0-9]+\/component\/[0-9]+\/config$/i)){const a=JSON.parse(e);a.type=="counter"&&(me[a.id].name=a.name)}else t.match(/^openWB\/system\/ip_address$/i)?H.ipAddress=JSON.parse(e):t.match(/^openWB\/system\/time$/i)?H.systemTime=JSON.parse(e):t.match(/^openWB\/system\/version$/i)?H.version=JSON.parse(e):t.match(/^openWB\/system\/current_commit$/i)?H.versionDetails=JSON.parse(e):t.match(/^openWB\/system\/current_branch$/i)&&(H.devBranch=JSON.parse(e))}function vi(t,e){const a=t.split("/");if(t.match(/^openWB\/command\/[a-z]+\/error$/i)&&a[2]==St()){const n=JSON.parse(e);console.error(`Error message from openWB: Command: ${n.command} Data: JSON.stringify(err.data) diff --git a/packages/modules/display_themes/colors/web/assets/index-D9MjeHsk.css b/packages/modules/display_themes/colors/web/assets/index-DGFHqzf0.css similarity index 99% rename from packages/modules/display_themes/colors/web/assets/index-D9MjeHsk.css rename to packages/modules/display_themes/colors/web/assets/index-DGFHqzf0.css index 14b019a764..545e9bc6e2 100644 --- a/packages/modules/display_themes/colors/web/assets/index-D9MjeHsk.css +++ b/packages/modules/display_themes/colors/web/assets/index-DGFHqzf0.css @@ -1,4 +1,4 @@ -@charset "UTF-8";.displaybutton[data-v-0f8aebee]{border:.1px solid var(--color-frame);padding:6px 8px;align-self:top;box-shadow:1px 3px #000;font-weight:700;font-size:var(--font-small)}.navigation[data-v-6d0b9541]{display:flex;justify-content:space-between;padding:2px 10px;align-items:center;border-top:0px solid var(--color-menu);border-bottom:0px solid var(--color-menu)}.timedisplay[data-v-6d0b9541]{font-size:var(--font-medium);font-weight:700;color:var(--color-input)}.navbar[data-v-6d0b9541]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.graphbuttons[data-v-6d0b9541],.cpbuttons[data-v-6d0b9541]{display:flex;justify-content:left;align-items:center;gap:5px}.dropdown-menu[data-v-6d0b9541]{background-color:var(--color-bg);color:var(--color-fg)}.dropdown-item[data-v-6d0b9541]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.btn[data-v-6d0b9541]{font-size:var(--font-medium);background-color:var(--color-bg);color:var(--color-fg)}.navbar-brand[data-v-6d0b9541]{font-weight:700;color:var(--color-fg);font-size:var(--font-normal)}.nav-link[data-v-6d0b9541]{color:var(--color-fg);border-color:red;font-size:var(--font-normal)}.navbar-toggler[data-v-6d0b9541]{color:var(--color-fg);border-color:var(--color-bg)}.navbar-time[data-v-6d0b9541]{font-weight:700;color:var(--color-menu);font-size:var(--font-normal)}.brand[data-v-6d0b9541]{font-size:var(--font-medium);font-weight:700;color:var(--color-input)}.wb-widget[data-v-e8292acd]{background-color:var(--color-bg);border:.1px solid var(--color-frame);height:100%;align-self:stretch;width:100%;border-radius:30px}.wb-subwidget[data-v-e8292acd]{border:0px solid var(--color-subframe);padding:var(--padding-widget)}.header[data-v-e8292acd]{grid-column:span 12;display:flex;justify-content:space-between;align-items:center}.titles[data-v-e8292acd]{display:flex;flex-direction:column}.title[data-v-e8292acd]{font-size:var(--font-extralarge);color:var(--color-title);font-weight:700;transform:scaleX(.9294)}.cont[data-v-e8292acd]{align-self:stretch;height:100%}.subtitle[data-v-e8292acd]{font-size:var(--font-medium)}.buttons[data-v-e8292acd]{grid-column:span 6}.powermeter{width:100%}.radiobutton[data-v-270067ed]{border:0px solid var(--color-menu);opacity:1;font-size:var(--font-chargebutton);width:75px}.btn-outline-secondary.active[data-v-270067ed]{background-color:var(--color-bg);border:0px solid var(--color-fg);opacity:.8}.btn-group[data-v-270067ed]{border:.1px solid var(--color-menu);box-shadow:1px 3px #000}.rounded-pill[data-v-7fd067cd]{background-color:var(--color-menu)}.arrowButton[data-v-7fd067cd]{border:0}.datebadge[data-v-7fd067cd]{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-7fd067cd],.fa-magnifying-glass[data-v-ba892fa4]{color:var(--color-menu)}.datebadge[data-v-ba892fa4]{background-color:var(--color-menu);color:var(--color-bg);font-size:var(--font-medium);font-weight:400}.energymeter[data-v-35f92695]{width:100%}.modal-content[data-v-9e5993e8]{background-color:var(--color-bg);border-color:var(--color-menu);box-shadow:3px 5px #000}.modal-footer[data-v-9e5993e8],.modal-header[data-v-9e5993e8],.modal-body[data-v-9e5993e8]{background-color:var(--color-bg);color:var(--color-fg)}.modal-body[data-v-9e5993e8]{border-color:var(--color-fg)}.modal-footer[data-v-9e5993e8]{text-align:right}.modal-header .btn-close[data-v-9e5993e8]{color:var(--color-fg);background-color:var(--color-bg);border:0px}.modal-title[data-v-9e5993e8]{color:var(--color-fg)}.closebutton[data-v-9e5993e8]{background:var(--color-fg)}.modal.fade .modal-dialog[data-v-9e5993e8]{transition:transform 1s ease-out;transform:none;scale:.6}.modal.show .modal-dialog[data-v-9e5993e8]{transition:transform .3s ease-in;transform:none;scale:1}.fa-circle-check[data-v-9e5993e8]{color:var(--color-fg)}.padbutton[data-v-cc256a6f]{display:flex;align-items:center;justify-content:center;border-radius:50%;border:.1px dotted var(--color-menu);box-shadow:1px 3px #000}.digit[data-v-cc256a6f]{font-size:24px;font-weight:700;text-align:center;align-self:center;justify-self:center;display:flex}.numberpad[data-v-63c8fa5c]{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-bg)}.codedisplay[data-v-63c8fa5c]{display:flex;align-items:center;justify-content:center;font-size:24px;border:10px;color:var(--color-fg)}.numberentry[data-v-63c8fa5c]{display:grid;grid-template-columns:60px 60px 60px;grid-template-rows:65px 65px 65px 65px;grid-gap:5px}.statustable[data-v-74ffcddc]{display:grid;grid-template-columns:35% 65%;font-size:16px;color:#fff}.header[data-v-74ffcddc]{color:var(--color-fg)}.controlbuttons[data-v-74ffcddc]{font-size:var(--font-settings)}.controlbutton[data-v-74ffcddc]{background-color:var(--color-menu);color:var(--color-fg);font-size:var(--font-settings)}.confirmationBox[data-v-74ffcddc]{border:3px solid var(--color-evu);justify-self:stretch;font-size:var(--font-settings);background-color:var(--color-fg);color:var(--color-evu)}.confirmTitle[data-v-74ffcddc]{font-weight:700}.cancelButton[data-v-74ffcddc]{font-size:var(--font-settings);background-color:var(--color-battery)}.confirmButton[data-v-74ffcddc]{font-size:var(--font-settings);background-color:var(--color-evu);color:var(--color-fg)}.configwidget[data-v-b438f667],.configslot[data-v-b438f667]{width:100%}.infotext[data-v-b438f667]{font-size:var(--font-settings);color:var(--color-battery)}.item-icon[data-v-b438f667]{color:var(--color-charging);font-size:var(--font-settings)}.titlecolumn[data-v-b438f667]{color:var(--color-bg);font-size:var(--font-settings)}.selectors[data-v-b438f667]{font-size:var(--font-settings)}.configitem[data-v-b438f667]{font-size:var(--font-settings);align-items:baseline;justify-content:space-between}.rangewidget[data-v-41dc3794],.rangeslider[data-v-41dc3794]{width:100%}.minlabel[data-v-41dc3794],.maxlabel[data-v-41dc3794]{color:var(--color-menu);font-size:var(--font-settings)}.valuelabel[data-v-41dc3794]{color:var(--color-fg);font-size:var(--font-settings)}.minusButton[data-v-41dc3794],.plusButton[data-v-41dc3794]{color:var(--color-menu);font-size:var(--font-extralarge)}.rangeIndicator[data-v-41dc3794]{margin:0;padding:0;line-height:10px}.radiobutton[data-v-1e5bd3af]{border:.5px solid var(--color-fg);opacity:.5;font-size:14px}.btn-outline-secondary[data-v-1e5bd3af]{background-color:var(--color-bg)}.btn-outline-secondary.active[data-v-1e5bd3af]{background-color:var(--color-bg);border:1px solid var(--color-fg);box-shadow:0 .5rem 1rem #fff;font-weight:700;opacity:1}.instantsettings[data-v-49084b39]{display:grid;justify-content:center;align-items:center;grid-template-columns:auto auto;grid-gap:20px}.chargeConfigSelect[data-v-49084b39]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-49084b39]{color:var(--color-fg);font-size:var(--font-settings);font-weight:700}.fullwidth[data-v-49084b39]{grid-column:1 / -1}.form-switch .form-check-input[data-v-547e6de4]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='var(--color-fg)'/%3e%3c/svg%3e");background-color:var(--color-evu)}.form-switch .form-check-input[data-v-547e6de4]:checked{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='white'/%3e%3c/svg%3e");background-color:var(--color-pv)}.form-switch .form-check-input[data-v-547e6de4]{border:.1px dotted var(--color-fg);font-size:20px;box-shadow:2px 3px #000}.pvsettings[data-v-54a8d955]{display:grid;justify-content:center;align-items:center;grid-gap:20px;grid-template-columns:auto auto}.chargeConfigSelect[data-v-54a8d955]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-54a8d955]{color:var(--color-pv)}.fullwidth[data-v-54a8d955]{grid-column:1 / -1}.subtitle[data-v-f5100bdc]{font-size:var(--font-large);font-weight:700}.info[data-v-f5100bdc]{font-size:var(--font-large);font-weight:700;color:var(--color-fg)}td[data-v-f5100bdc],th[data-v-f5100bdc]{background-color:var(--color-bg)!important}.padbutton[data-v-c4e8b67a]{display:flex;align-items:center;justify-content:center;border-radius:50%;border:.1px dotted var(--color-menu);box-shadow:1px 3px #000}.digit[data-v-c4e8b67a]{font-size:18px;font-weight:700;text-align:center;align-self:center;justify-self:center;display:flex}.numberpad[data-v-2cdf4e9c]{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-bg)}.codedisplay[data-v-2cdf4e9c]{display:flex;align-items:center;justify-content:center;font-size:18px;border:10px;border-radius:10px;color:var(--color-bg);background-color:var(--color-fg)}.numberentry[data-v-2cdf4e9c]{display:grid;grid-template-columns:50px 50px 50px 50px;grid-template-rows:54px 54px 54px 54px;grid-gap:5px}.pricesettings[data-v-7e771d75]{display:grid;grid-template-columns:50% 50%;grid-template-rows:310px}.grapharea[data-v-7e771d75]{display:flex;flex-direction:column;justify-content:top;align-items:stretch;min-width:0px;overflow:hidden;height:100%;margin-right:5px;border:1px solid var(--color-frame);border-radius:30px}.controlarea[data-v-7e771d75]{display:flex;flex-direction:column;justify-content:center;align-items:stretch;min-width:0px;overflow:hidden;height:100%;padding-left:20px;padding-right:10px;margin-left:5px;border:1px solid var(--color-frame);border-radius:30px}.sliderarea[data-v-7e771d75]{margin-bottom:5px}.subtitle[data-v-7e771d75]{font-size:var(--font-settings);font-weight:regular}.priceinput[data-v-7e771d75]{width:100%}.color-charging[data-v-7e771d75]{color:var(--color-charging)}.fa-circle-check[data-v-7e771d75]{color:var(--color-menu)}.settingsheader[data-v-7e771d75]{color:var(--color-charging);font-size:16px;font-weight:700}.providername[data-v-7e771d75]{color:var(--color-axis);font-size:16px}.confirmbutton[data-v-7e771d75]{background-color:var(--color-charging);color:var}.keypadbutton[data-v-7e771d75]{background-color:var(--color-menu)}.jumpbutton[data-v-7e771d75]{background-color:var(--color-menu);color:var(--color-bg);border:0}.ecosettings[data-v-b46bd22a]{display:grid;justify-content:space-between;align-items:top;grid-template-columns:auto auto;grid-gap:0px}.chargeConfigSelect[data-v-b46bd22a]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-b46bd22a]{color:var(--color-fg);font-size:var(--font-settings);font-weight:700}.fullwidth[data-v-b46bd22a]{grid-column:1 / -1}.chartsection[data-v-b46bd22a]{border:1px solid var(--color-border)}.timeplantable[data-v-7817e508]{justify-content:center;gap:20px}.subtitle[data-v-7817e508]{font-size:var(--font-large);font-weight:700}.warning[data-v-7817e508]{font-size:var(--font-large);font-weight:700;color:var(--color-evu)}td[data-v-7817e508],th[data-v-7817e508]{background-color:var(--color-bg)!important}.chargesettings[data-v-276daf1f]{display:grid;grid-template-columns:auto,auto;justify-content:center;align-items:center;grid-gap:1px}.status-string[data-v-276daf1f]{font-size:var(--font-normal);font-style:italic;color:var(--color-battery)}.chargeConfigSelect[data-v-276daf1f]{background:var(--color-bg);color:var(--color-fg)}.chargeModeOption[data-v-276daf1f]{background:green;color:#00f}.nav-tabs .nav-link[data-v-276daf1f]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-276daf1f]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-276daf1f]{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-276daf1f]{color:var(--color-charging);font-size:16px;font-weight:700}hr[data-v-276daf1f]{color:var(--color-menu)}.tab-pane[data-v-cbeeb183]{font-size:16px;color:var(--color-fg);background-color:var(--color-bg);align-items:center}.nav-link[data-v-cbeeb183]{font-size:14px;color:var(--color-fg)}.nav-tabs .nav-link.active[data-v-cbeeb183]{background-color:var(--color-fg)}.fa-bolt[data-v-cbeeb183]{color:var(--color-charging)}.fa-charging-station[data-v-cbeeb183]{color:var(--color-menu)}.fa-bullseye[data-v-cbeeb183]{color:var(--color-battery)}.fa-solar-panel[data-v-cbeeb183]{color:var(--color-pv)}.fa-lock[data-v-cbeeb183]{color:var(--color-evu)}.fa-coins[data-v-cbeeb183]{color:var(--color-devices)}.fa-clock[data-v-cbeeb183]{color:var(--color-menu)}.heading[data-v-9215fd9b]{color:var(--color-menu);font-weight:400;text-align:center}.content[data-v-9215fd9b]{color:var(--color-fg);font-weight:700}.batIcon[data-v-fc156cd3]{color:var(--color-menu)}.titleline[data-v-ae1ba080]{display:flex;justify-content:left}.infoline[data-v-ae1ba080]{display:flex;justify-content:space-between;flex-direction:row}.chargemodes[data-v-ae1ba080]{grid-column:1 / 13;justify-self:center}.carname[data-v-ae1ba080]{color:var(--color-fg);font-size:var(--font-medium)}.maxprice[data-v-ae1ba080]{font-size:var(--font-medium);color:var(--color-fg)}.fa-star[data-v-ae1ba080]{color:var(--color-evu)}.fa-circle-check[data-v-ae1ba080]{font-size:20pt}.fa-edit[data-v-ae1ba080]{font-size:8pt}.socEditor[data-v-ae1ba080]{border:1px solid var(--color-menu);justify-self:stretch}.vehicleinfo[data-v-ae1ba080]{display:flex;flex-direction:column}.fa-clock[data-v-d3d48871]{color:var(--color-battery)}.fa-car[data-v-d3d48871],.fa-ellipsis-vertical[data-v-d3d48871],.fa-circle-check[data-v-d3d48871]{color:var(--color-menu)}.fa-coins[data-v-d3d48871]{color:var(--color-battery)}.fa-edit[data-v-d3d48871],.targetCurrent[data-v-d3d48871]{color:var(--color-menu)}.content[data-v-0450eedc]{display:grid;grid-template-columns:380px 420px;grid-template-rows:430px;overflow:hidden;min-width:0px}.leftside[data-v-0450eedc]{min-width:0px;overflow:hidden;height:100%;align-self:stretch}.rightside[data-v-0450eedc]{min-width:0px;overflow:hidden;height:100%;align-self:stretch;align-items:stretch}.settingstitle[data-v-0450eedc],.statustitle[data-v-0450eedc]{color:var(--color-fg)}.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";.displaybutton[data-v-0f8aebee]{border:.1px solid var(--color-frame);padding:6px 8px;align-self:top;box-shadow:1px 3px #000;font-weight:700;font-size:var(--font-small)}.navigation[data-v-6d0b9541]{display:flex;justify-content:space-between;padding:2px 10px;align-items:center;border-top:0px solid var(--color-menu);border-bottom:0px solid var(--color-menu)}.timedisplay[data-v-6d0b9541]{font-size:var(--font-medium);font-weight:700;color:var(--color-input)}.navbar[data-v-6d0b9541]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.graphbuttons[data-v-6d0b9541],.cpbuttons[data-v-6d0b9541]{display:flex;justify-content:left;align-items:center;gap:5px}.dropdown-menu[data-v-6d0b9541]{background-color:var(--color-bg);color:var(--color-fg)}.dropdown-item[data-v-6d0b9541]{background-color:var(--color-bg);color:var(--color-fg);font-size:var(--font-normal)}.btn[data-v-6d0b9541]{font-size:var(--font-medium);background-color:var(--color-bg);color:var(--color-fg)}.navbar-brand[data-v-6d0b9541]{font-weight:700;color:var(--color-fg);font-size:var(--font-normal)}.nav-link[data-v-6d0b9541]{color:var(--color-fg);border-color:red;font-size:var(--font-normal)}.navbar-toggler[data-v-6d0b9541]{color:var(--color-fg);border-color:var(--color-bg)}.navbar-time[data-v-6d0b9541]{font-weight:700;color:var(--color-menu);font-size:var(--font-normal)}.brand[data-v-6d0b9541]{font-size:var(--font-medium);font-weight:700;color:var(--color-input)}.wb-widget[data-v-e8292acd]{background-color:var(--color-bg);border:.1px solid var(--color-frame);height:100%;align-self:stretch;width:100%;border-radius:30px}.wb-subwidget[data-v-e8292acd]{border:0px solid var(--color-subframe);padding:var(--padding-widget)}.header[data-v-e8292acd]{grid-column:span 12;display:flex;justify-content:space-between;align-items:center}.titles[data-v-e8292acd]{display:flex;flex-direction:column}.title[data-v-e8292acd]{font-size:var(--font-extralarge);color:var(--color-title);font-weight:700;transform:scaleX(.9294)}.cont[data-v-e8292acd]{align-self:stretch;height:100%}.subtitle[data-v-e8292acd]{font-size:var(--font-medium)}.buttons[data-v-e8292acd]{grid-column:span 6}.powermeter{width:100%}.radiobutton[data-v-270067ed]{border:0px solid var(--color-menu);opacity:1;font-size:var(--font-chargebutton);width:75px}.btn-outline-secondary.active[data-v-270067ed]{background-color:var(--color-bg);border:0px solid var(--color-fg);opacity:.8}.btn-group[data-v-270067ed]{border:.1px solid var(--color-menu);box-shadow:1px 3px #000}.rounded-pill[data-v-7fd067cd]{background-color:var(--color-menu)}.arrowButton[data-v-7fd067cd]{border:0}.datebadge[data-v-7fd067cd]{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-7fd067cd],.fa-magnifying-glass[data-v-ba892fa4]{color:var(--color-menu)}.datebadge[data-v-ba892fa4]{background-color:var(--color-menu);color:var(--color-bg);font-size:var(--font-medium);font-weight:400}.energymeter[data-v-35f92695]{width:100%}.modal-content[data-v-9e5993e8]{background-color:var(--color-bg);border-color:var(--color-menu);box-shadow:3px 5px #000}.modal-footer[data-v-9e5993e8],.modal-header[data-v-9e5993e8],.modal-body[data-v-9e5993e8]{background-color:var(--color-bg);color:var(--color-fg)}.modal-body[data-v-9e5993e8]{border-color:var(--color-fg)}.modal-footer[data-v-9e5993e8]{text-align:right}.modal-header .btn-close[data-v-9e5993e8]{color:var(--color-fg);background-color:var(--color-bg);border:0px}.modal-title[data-v-9e5993e8]{color:var(--color-fg)}.closebutton[data-v-9e5993e8]{background:var(--color-fg)}.modal.fade .modal-dialog[data-v-9e5993e8]{transition:transform 1s ease-out;transform:none;scale:.6}.modal.show .modal-dialog[data-v-9e5993e8]{transition:transform .3s ease-in;transform:none;scale:1}.fa-circle-check[data-v-9e5993e8]{color:var(--color-fg)}.padbutton[data-v-cc256a6f]{display:flex;align-items:center;justify-content:center;border-radius:50%;border:.1px dotted var(--color-menu);box-shadow:1px 3px #000}.digit[data-v-cc256a6f]{font-size:24px;font-weight:700;text-align:center;align-self:center;justify-self:center;display:flex}.numberpad[data-v-63c8fa5c]{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-bg)}.codedisplay[data-v-63c8fa5c]{display:flex;align-items:center;justify-content:center;font-size:24px;border:10px;color:var(--color-fg)}.numberentry[data-v-63c8fa5c]{display:grid;grid-template-columns:60px 60px 60px;grid-template-rows:65px 65px 65px 65px;grid-gap:5px}.statustable[data-v-74ffcddc]{display:grid;grid-template-columns:35% 65%;font-size:16px;color:#fff}.header[data-v-74ffcddc]{color:var(--color-fg)}.controlbuttons[data-v-74ffcddc]{font-size:var(--font-settings)}.controlbutton[data-v-74ffcddc]{background-color:var(--color-menu);color:var(--color-fg);font-size:var(--font-settings)}.confirmationBox[data-v-74ffcddc]{border:3px solid var(--color-evu);justify-self:stretch;font-size:var(--font-settings);background-color:var(--color-fg);color:var(--color-evu)}.confirmTitle[data-v-74ffcddc]{font-weight:700}.cancelButton[data-v-74ffcddc]{font-size:var(--font-settings);background-color:var(--color-battery)}.confirmButton[data-v-74ffcddc]{font-size:var(--font-settings);background-color:var(--color-evu);color:var(--color-fg)}.configwidget[data-v-b438f667],.configslot[data-v-b438f667]{width:100%}.infotext[data-v-b438f667]{font-size:var(--font-settings);color:var(--color-battery)}.item-icon[data-v-b438f667]{color:var(--color-charging);font-size:var(--font-settings)}.titlecolumn[data-v-b438f667]{color:var(--color-bg);font-size:var(--font-settings)}.selectors[data-v-b438f667]{font-size:var(--font-settings)}.configitem[data-v-b438f667]{font-size:var(--font-settings);align-items:baseline;justify-content:space-between}.rangewidget[data-v-41dc3794],.rangeslider[data-v-41dc3794]{width:100%}.minlabel[data-v-41dc3794],.maxlabel[data-v-41dc3794]{color:var(--color-menu);font-size:var(--font-settings)}.valuelabel[data-v-41dc3794]{color:var(--color-fg);font-size:var(--font-settings)}.minusButton[data-v-41dc3794],.plusButton[data-v-41dc3794]{color:var(--color-menu);font-size:var(--font-extralarge)}.rangeIndicator[data-v-41dc3794]{margin:0;padding:0;line-height:10px}.radiobutton[data-v-1e5bd3af]{border:.5px solid var(--color-fg);opacity:.5;font-size:14px}.btn-outline-secondary[data-v-1e5bd3af]{background-color:var(--color-bg)}.btn-outline-secondary.active[data-v-1e5bd3af]{background-color:var(--color-bg);border:1px solid var(--color-fg);box-shadow:0 .5rem 1rem #fff;font-weight:700;opacity:1}.instantsettings[data-v-49084b39]{display:grid;justify-content:center;align-items:center;grid-template-columns:auto auto;grid-gap:20px}.chargeConfigSelect[data-v-49084b39]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-49084b39]{color:var(--color-fg);font-size:var(--font-settings);font-weight:700}.fullwidth[data-v-49084b39]{grid-column:1 / -1}.form-switch .form-check-input[data-v-547e6de4]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='var(--color-fg)'/%3e%3c/svg%3e");background-color:var(--color-evu)}.form-switch .form-check-input[data-v-547e6de4]:checked{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='white'/%3e%3c/svg%3e");background-color:var(--color-pv)}.form-switch .form-check-input[data-v-547e6de4]{border:.1px dotted var(--color-fg);font-size:20px;box-shadow:2px 3px #000}.pvsettings[data-v-54a8d955]{display:grid;justify-content:center;align-items:center;grid-gap:20px;grid-template-columns:auto auto}.chargeConfigSelect[data-v-54a8d955]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-54a8d955]{color:var(--color-pv)}.fullwidth[data-v-54a8d955]{grid-column:1 / -1}.subtitle[data-v-f5100bdc]{font-size:var(--font-large);font-weight:700}.info[data-v-f5100bdc]{font-size:var(--font-large);font-weight:700;color:var(--color-fg)}td[data-v-f5100bdc],th[data-v-f5100bdc]{background-color:var(--color-bg)!important}.padbutton[data-v-c4e8b67a]{display:flex;align-items:center;justify-content:center;border-radius:50%;border:.1px dotted var(--color-menu);box-shadow:1px 3px #000}.digit[data-v-c4e8b67a]{font-size:18px;font-weight:700;text-align:center;align-self:center;justify-self:center;display:flex}.numberpad[data-v-2cdf4e9c]{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-bg)}.codedisplay[data-v-2cdf4e9c]{display:flex;align-items:center;justify-content:center;font-size:18px;border:10px;border-radius:10px;color:var(--color-bg);background-color:var(--color-fg)}.numberentry[data-v-2cdf4e9c]{display:grid;grid-template-columns:50px 50px 50px 50px;grid-template-rows:54px 54px 54px 54px;grid-gap:5px}.pricesettings[data-v-7e771d75]{display:grid;grid-template-columns:50% 50%;grid-template-rows:310px}.grapharea[data-v-7e771d75]{display:flex;flex-direction:column;justify-content:top;align-items:stretch;min-width:0px;overflow:hidden;height:100%;margin-right:5px;border:1px solid var(--color-frame);border-radius:30px}.controlarea[data-v-7e771d75]{display:flex;flex-direction:column;justify-content:center;align-items:stretch;min-width:0px;overflow:hidden;height:100%;padding-left:20px;padding-right:10px;margin-left:5px;border:1px solid var(--color-frame);border-radius:30px}.sliderarea[data-v-7e771d75]{margin-bottom:5px}.subtitle[data-v-7e771d75]{font-size:var(--font-settings);font-weight:regular}.priceinput[data-v-7e771d75]{width:100%}.color-charging[data-v-7e771d75]{color:var(--color-charging)}.fa-circle-check[data-v-7e771d75]{color:var(--color-menu)}.settingsheader[data-v-7e771d75]{color:var(--color-charging);font-size:16px;font-weight:700}.providername[data-v-7e771d75]{color:var(--color-axis);font-size:16px}.confirmbutton[data-v-7e771d75]{background-color:var(--color-charging);color:var}.keypadbutton[data-v-7e771d75]{background-color:var(--color-menu)}.jumpbutton[data-v-7e771d75]{background-color:var(--color-menu);color:var(--color-bg);border:0}.ecosettings[data-v-e7b1660a]{display:grid;justify-content:space-between;align-items:top;grid-template-columns:auto auto;grid-gap:0px}.chargeConfigSelect[data-v-e7b1660a]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-e7b1660a]{color:var(--color-fg);font-size:var(--font-settings);font-weight:700}.fullwidth[data-v-e7b1660a]{grid-column:1 / -1}.chartsection[data-v-e7b1660a]{border:1px solid var(--color-border)}.timeplantable[data-v-7817e508]{justify-content:center;gap:20px}.subtitle[data-v-7817e508]{font-size:var(--font-large);font-weight:700}.warning[data-v-7817e508]{font-size:var(--font-large);font-weight:700;color:var(--color-evu)}td[data-v-7817e508],th[data-v-7817e508]{background-color:var(--color-bg)!important}.chargesettings[data-v-276daf1f]{display:grid;grid-template-columns:auto,auto;justify-content:center;align-items:center;grid-gap:1px}.status-string[data-v-276daf1f]{font-size:var(--font-normal);font-style:italic;color:var(--color-battery)}.chargeConfigSelect[data-v-276daf1f]{background:var(--color-bg);color:var(--color-fg)}.chargeModeOption[data-v-276daf1f]{background:green;color:#00f}.nav-tabs .nav-link[data-v-276daf1f]{color:var(--color-menu);opacity:.5}.nav-tabs .nav-link.disabled[data-v-276daf1f]{color:var(--color-axis);border:.5px solid var(--color-axis)}.nav-tabs .nav-link.active[data-v-276daf1f]{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-276daf1f]{color:var(--color-charging);font-size:16px;font-weight:700}hr[data-v-276daf1f]{color:var(--color-menu)}.tab-pane[data-v-cbeeb183]{font-size:16px;color:var(--color-fg);background-color:var(--color-bg);align-items:center}.nav-link[data-v-cbeeb183]{font-size:14px;color:var(--color-fg)}.nav-tabs .nav-link.active[data-v-cbeeb183]{background-color:var(--color-fg)}.fa-bolt[data-v-cbeeb183]{color:var(--color-charging)}.fa-charging-station[data-v-cbeeb183]{color:var(--color-menu)}.fa-bullseye[data-v-cbeeb183]{color:var(--color-battery)}.fa-solar-panel[data-v-cbeeb183]{color:var(--color-pv)}.fa-lock[data-v-cbeeb183]{color:var(--color-evu)}.fa-coins[data-v-cbeeb183]{color:var(--color-devices)}.fa-clock[data-v-cbeeb183]{color:var(--color-menu)}.heading[data-v-9215fd9b]{color:var(--color-menu);font-weight:400;text-align:center}.content[data-v-9215fd9b]{color:var(--color-fg);font-weight:700}.batIcon[data-v-fc156cd3]{color:var(--color-menu)}.titleline[data-v-ae1ba080]{display:flex;justify-content:left}.infoline[data-v-ae1ba080]{display:flex;justify-content:space-between;flex-direction:row}.chargemodes[data-v-ae1ba080]{grid-column:1 / 13;justify-self:center}.carname[data-v-ae1ba080]{color:var(--color-fg);font-size:var(--font-medium)}.maxprice[data-v-ae1ba080]{font-size:var(--font-medium);color:var(--color-fg)}.fa-star[data-v-ae1ba080]{color:var(--color-evu)}.fa-circle-check[data-v-ae1ba080]{font-size:20pt}.fa-edit[data-v-ae1ba080]{font-size:8pt}.socEditor[data-v-ae1ba080]{border:1px solid var(--color-menu);justify-self:stretch}.vehicleinfo[data-v-ae1ba080]{display:flex;flex-direction:column}.fa-clock[data-v-d3d48871]{color:var(--color-battery)}.fa-car[data-v-d3d48871],.fa-ellipsis-vertical[data-v-d3d48871],.fa-circle-check[data-v-d3d48871]{color:var(--color-menu)}.fa-coins[data-v-d3d48871]{color:var(--color-battery)}.fa-edit[data-v-d3d48871],.targetCurrent[data-v-d3d48871]{color:var(--color-menu)}.content[data-v-0450eedc]{display:grid;grid-template-columns:380px 420px;grid-template-rows:430px;overflow:hidden;min-width:0px}.leftside[data-v-0450eedc]{min-width:0px;overflow:hidden;height:100%;align-self:stretch}.rightside[data-v-0450eedc]{min-width:0px;overflow:hidden;height:100%;align-self:stretch;align-items:stretch}.settingstitle[data-v-0450eedc],.statustitle[data-v-0450eedc]{color:var(--color-fg)}.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/display_themes/colors/web/index.html b/packages/modules/display_themes/colors/web/index.html index 452dc57eed..6c70ea71e5 100644 --- a/packages/modules/display_themes/colors/web/index.html +++ b/packages/modules/display_themes/colors/web/index.html @@ -4,9 +4,9 @@ openWB Display - + - +
diff --git a/packages/modules/internal_chargepoint_handler/chargepoint_module.py b/packages/modules/internal_chargepoint_handler/chargepoint_module.py index 8b34b021d0..1ca68225ba 100644 --- a/packages/modules/internal_chargepoint_handler/chargepoint_module.py +++ b/packages/modules/internal_chargepoint_handler/chargepoint_module.py @@ -2,7 +2,6 @@ import time from helpermodules.broker import BrokerClient -from helpermodules.logger import ModifyLoglevelContext from helpermodules.utils import run_command from helpermodules.utils.error_handling import CP_ERROR, ErrorTimerContext @@ -53,15 +52,6 @@ def __init__(self, local_charge_point_num: int, phases_in_use=0, power=0) self._client = client_handler - version = self._client.evse_client.get_firmware_version() - with ModifyLoglevelContext(log, logging.DEBUG): - log.debug(f"Firmware-Version der EVSE: {version}") - if version < 17: - self._precise_current = False - else: - if self._client.evse_client.is_precise_current_active() is False: - self._client.evse_client.activate_precise_current() - self._precise_current = self._client.evse_client.is_precise_current_active() self.version = SubData.system_data["system"].data["version"] self.current_branch = SubData.system_data["system"].data["current_branch"] @@ -83,9 +73,7 @@ def on_message(client, userdata, message): def set_current(self, current: float) -> None: with SingleComponentUpdateContext(self.fault_state, update_always=False): - formatted_current = round(current*100) if self._precise_current else round(current) - if self.set_current_evse != formatted_current: - self._client.evse_client.set_current(formatted_current) + self._client.evse_client.set_current(current) def get_values(self, phase_switch_cp_active: bool, last_tag: str) -> ChargepointState: def store_state(chargepoint_state: ChargepointState) -> None: @@ -95,7 +83,6 @@ def store_state(chargepoint_state: ChargepointState) -> None: self.store_internal.update() with self.client_error_context: chargepoint_state = self.old_chargepoint_state - self.set_current_evse = chargepoint_state.evse_current evse_state, counter_state = self._client.request_and_check_hardware(self.fault_state) power = counter_state.power @@ -108,7 +95,6 @@ def store_state(chargepoint_state: ChargepointState) -> None: self.old_phases_in_use = phases_in_use time.sleep(0.1) - self.set_current_evse = evse_state.set_current self.client_error_context.reset_error_counter() if phase_switch_cp_active: @@ -135,7 +121,7 @@ def store_state(chargepoint_state: ChargepointState) -> None: phases_in_use=phases_in_use, power_factors=counter_state.power_factors, rfid=last_tag, - evse_current=self.set_current_evse, + evse_current=evse_state.set_current, serial_number=counter_state.serial_number, max_evse_current=evse_state.max_current, version=self.version, diff --git a/packages/modules/internal_chargepoint_handler/internal_chargepoint_handler.py b/packages/modules/internal_chargepoint_handler/internal_chargepoint_handler.py index 535f7a1f9d..d9f19dfeae 100644 --- a/packages/modules/internal_chargepoint_handler/internal_chargepoint_handler.py +++ b/packages/modules/internal_chargepoint_handler/internal_chargepoint_handler.py @@ -7,6 +7,7 @@ from helpermodules import timecheck from helpermodules import pub +from helpermodules.logger import clear_in_memory_log_handler from helpermodules.pub import Pub, pub_single from helpermodules.subdata import SubData from modules.chargepoints.internal_openwb.config import InternalChargepointMode @@ -147,6 +148,7 @@ def _loop(): while True: if self.event_stop.is_set(): break + clear_in_memory_log_handler("internal_chargepoint") log.debug("***Start***") data = copy.deepcopy(SubData.internal_chargepoint_data) log.debug(data) diff --git a/packages/modules/vehicles/vwgroup/vwgroup.py b/packages/modules/vehicles/vwgroup/vwgroup.py index 683baf2235..ece6945407 100644 --- a/packages/modules/vehicles/vwgroup/vwgroup.py +++ b/packages/modules/vehicles/vwgroup/vwgroup.py @@ -81,7 +81,7 @@ async def request_data(self, library) -> Union[int, float, str]: try: self.soc = int(self.data['charging']['batteryStatus']['value']['currentSOC_pct']) self.range = float(self.data['charging']['batteryStatus']['value']['cruisingRangeElectric_km']) - soc_tsZ = self.data['charging']['batteryStatus']['value']['carCapturedTimestamp'] + soc_tsZ = self.data['charging']['batteryStatus']['value']['carCapturedTimestamp'].replace('ZZ', 'Z') soc_tsdtZ = datetime.strptime(soc_tsZ, ts_fmt + "Z") soc_tsdtL = self.utc2local(soc_tsdtZ) self.soc_tsX = datetime.timestamp(soc_tsdtL) diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/ConfigEco.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/ConfigEco.vue index 0ce0f36e8b..53bab96d60 100644 --- a/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/ConfigEco.vue +++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/ConfigEco.vue @@ -26,7 +26,7 @@
- + 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 S(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 se(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"?x:m}function x(){throw new Error("BigInt not supported")}}(id)),id}var sd,Cw;function Wt(){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 S=[],T=[],A=[];for(const L of w)u(typeof L=="string","All expected entries have to be of type string"),i.includes(L)?S.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=S.indexOf("object");L!==-1&&(S.splice(S,L,1),T.push("Object"))}if(S.length>0){switch(S.length){case 1:y+=`of type ${S[0]}`;break;case 2:y+=`one of type ${S[0]} or ${S[1]}`;break;default:{const L=S.pop();y+=`one of type ${S.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 S=_!=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 ${S}.`},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 S=BigInt(2)**BigInt(32);(_>S||_<-S)&&(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(S){console&&console.warn&&console.warn(S)}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(S){if(typeof S!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof S)}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(S){if(typeof S!="number"||S<0||s(S))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+S+".");a=S}}),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(S){return S._maxListeners===void 0?i.defaultMaxListeners:S._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=S,U.type=T,U.count=R.length,n(U)}return S}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(S,T,A){var C={fired:!1,wrapFn:void 0,target:S,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(S,T,A){var C=S._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(S,T){return typeof S.listenerCount=="function"?S.listenerCount(T):p.call(S,T)},i.prototype.listenerCount=p;function p(S){var T=this._events;if(T!==void 0){var A=T[S];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(S,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}=Wt(),{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:S}=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,se){if(typeof J>"u"&&(J=se),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,se=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,`>= ${se} && <= ${Q}`,J)}),$=g((J,Y,se=-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,`>= ${se} && <= ${Q}`,J)}),Z=g((J,Y,se=!1)=>{if(typeof J!="number")throw new v(Y,"number",J);if(!s(J))throw new _(Y,"an integer",J);const Q=se?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,se=void 0,Q){if(typeof J!="number")throw new v(Y,"number",J);if(se!=null&&JQ||(se!=null||Q!=null)&&i(J))throw new _(Y,`${se!=null?`>= ${se}`:""}${se!=null&&Q!=null?" && ":""}${Q!=null?`<= ${Q}`:""}`,J)}const N=g((J,Y,se)=>{if(!e(se,J)){const oe="must be one of: "+r(n(se,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,se){return J==null||!u(J,Y)?se:J[Y]}const pe=g((J,Y,se=null)=>{const Q=G(se,"allowArray",!1),oe=G(se,"allowFunction",!1);if(!G(se,"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,se=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 se=S(Y),Q=J.length;if(se==="hex"&&Q%2!==0)throw new w("encoding",Y,`is invalid for data of length ${Q}`)}function ce(J,Y="Port",se=!0){if(typeof J!="number"&&typeof J!="string"||typeof J=="string"&&p(J).length===0||+J!==+J>>>0||J>65535||J===0&&!se)throw new b(Y,J,se);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,se){if(!e(se,J))throw new v(Y,`('${r(se,"|")}')`,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 se="";if(Y===0)return se;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||S(N)===!1)||!Se&&(!D||S(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),se=G;G=a((...Q)=>{Y[p](),se.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}=Wt(),{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(S,R)}function S(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}=Wt(),{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}=Wt(),{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}=Wt(),{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}=Wt(),{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 S=_.length-1;if(S=0?(T>0&&(w.lastNeed=T-1),T):--S=0?(T>0&&(w.lastNeed=T-2),T):--S=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 S=w.length-(y-this.lastNeed);return w.copy(this.lastChar,0,S),w.toString("utf8",_,S)}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 S=y.charCodeAt(y.length-1);if(S>=55296&&S<=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}=Wt(),{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:S,done:T}=await f.throw(w);if(await S,T)return}if(typeof f.return=="function"){const{value:S}=await f.return();await S}}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}=Wt();wd=Q,Q.ReadableState=se;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 S=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(se.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 se(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 S,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 se(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 x(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=x(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?Gt(this):E(this),null;if(ge=m(ge,be),ge===0&&be.ended)return be.length===0&&Gt(this),null;let Ve=(be.state&W)!==0;if(y("need readable",Ve),(be.length===0||be.length-ge0?Ke=Rt(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&&Gt(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(se.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[ne]!==!1},set(ge){this[ne]=!!ge}}}),Q._fromList=Rt;function Rt(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 Gt(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}=Wt();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:S,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 S)};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 S(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}=Wt();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(S(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,x=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 se=h;if(x){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)||S(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),x&&h.end(),t.nextTick(H)},he=>{h.destroy(he),t.nextTick(H,he)});else if(_(ue,!0))B++,N(ue,h,H,{end:x});else if(L(ue)||A(ue)){const he=ue.readable||ue;B++,N(he,h,H,{end:x})}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(S(ue)){B+=2;const h=F(ue,oe,H,{end:x});y(oe)&&m&&X.push(h)}else if(A(ue)||L(ue)){const h=ue.readable||ue;B++,N(h,oe,H,{end:x})}else if(_(ue))B++,N(ue,oe,H,{end:x});else throw new c("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],ue);ue=oe}else if(C(oe)){if(S(ue))B++,fe(ne(ue),oe,H,{end:x});else if(L(ue)||_(ue))B++,fe(ue,oe,H,{end:x});else if(A(ue))B++,fe(ue.readable,oe,H,{end:x});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,S,T;function A(U){const I=S;S=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&&S!==null&&(U=new c),y=null,w=null,_=null,S===null?I(U):(S=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=Wt().Symbol("kWeak"),c=Wt().Symbol("kResistStopPropagation"),{finished:f}=us(),d=bS(),{addAbortSignalNoValidate:p}=nf(),{isWritable:g,isNodeStream:b}=Bi(),{deprecate:v}=Nr(),{ArrayPrototypePush:w,Boolean:_,MathFloor:y,Number:S,NumberIsNaN:T,Promise:A,PromiseReject:C,PromiseResolve:L,PromisePrototypeThen:j,Symbol:R}=Wt(),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 se(){J=!0,Q()}function Q(){Y-=1,oe()}function oe(){ue&&!J&&Y=le||Y>=ce)&&await new A(x=>{ue=x})}B.push(I)}catch(Te){const x=C(Te);j(x,Q,se),B.push(x)}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=S(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}=Wt(),{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}=Wt(),{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(S,this,A))};var _=T;const S=i[y];e(T,"name",{__proto__:null,value:S.name}),e(T,"length",{__proto__:null,value:S.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(S,this,C)};var _=T;const S=a[y];e(T,"name",{__proto__:null,value:S.name}),e(T,"length",{__proto__:null,value:S.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(S){return S instanceof Uint8Array},v._uint8ArrayToBuffer=function(S){return t.from(S.buffer,S.byteOffset,S.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 se=!1;if(B!=null)if(Se(B))se=!0,ue+=e.byteLength(B)+2;else return K.destroy(new Error("Invalid username")),!1;if(H!=null){if(!se)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 S(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,se=+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|=se?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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(this.id))}set pvMinSocPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.phases_to_use_min_soc=e,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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=Ut({}),dt=Ut({}),pg=Ut({}),vB=Ut({});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;jt[r]?jt["cp"+t].color=e:jt[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 Vt(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=Ut(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=Ut({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)}}),qt=Ut({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=Ut({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=Ut({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",qt.deactivate(),qt.back(),qt.activate(),nr();break;case"day":qt.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":qt.forward(),qt.date.getDate()==t.getDate()&&qt.date.getMonth()==t.getMonth()&&qt.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"){qt.setDate(t);const e=new Date;qt.date.getDate()==e.getDate()&&qt.date.getMonth()==e.getMonth()&&qt.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,"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=Ut(new kB);function OS(){NB();const t=It("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=Ut({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","");ve(this,"country","de")}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=It("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=It("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 jt=Ut({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=Ut(new LS);function Fm(){qe=new LS}const ot=Ut({evuIn:$n("evuIn",pt.counter),pv:$n("pv",pt.pvSummary),batOut:$n("batOut",pt.batterySummary)}),tt=Ut({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)}),Ot=Ut(new LB);ct("");const Xo=ct(!1);function $n(t,e,r){return{name:jt[t]?jt[t].name:"item",type:e,power:0,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:r||(jt[t]?jt[t].color:"var(--color-charging)"),icon:jt[t]?jt[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=jt["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)}}Ut(new VB);const Pt=ct(new Map),RS=t=>{Pt.value.set(t,new FB(t)),Pt.value.get(t).color=jt["bat"+Pt.value.size].color};function jB(){Pt.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:ie(qB)(e.consumer.color)})},[z("tspan",GB,ke(r(e.consumer.name)),1),z("tspan",YB,ke(ie(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(()=>Pt.value.size>1?[...Pt.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(()=>Pt.value.size>1?[...Pt.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$,[Yt(n.$slots,"title",{},()=>[s[0]||(s[0]=z("div",{class:"p-0"},"(title goes here)",-1))]),Yt(n.$slots,"subtitle")]),z("div",u$,[Yt(n.$slots,"buttons")])]),z("div",c$,[z("div",f$,[z("div",d$,[z("div",h$,[Yt(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$,[Yt(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);ve(this,"country","de")}get etCurrentPriceString(){const[e]=Ct.etPriceList.values();return(Math.round(e*10)/10).toFixed(1)+(Ot.country==="ch"?" Rp":" ct")}}const Ct=Ut(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]=Ct.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+" "+ie(e)},[z("g",{transform:"translate("+Ts/2+","+ie(e)/2+")"},[xe(t$,{radius:i.value,"corner-radius":xv,"circle-gap-size":r,"empty-power":u.value,"show-labels":ie(_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":ie(_e).showPmLabels},null,8,["radius","empty-power","show-labels"]),xe(Pn,{x:0,y:-ie(e)/10*2,data:ie(ot).pv,props:ie(jt).pv,anchor:"middle",config:ie(_e)},null,8,["y","data","props","config"]),xe(Pn,{x:0,y:-ie(e)/10*3,data:ie(ot).evuIn,props:ie(jt).evuIn,anchor:"middle",config:ie(_e)},null,8,["y","data","props","config"]),xe(Pn,{x:0,y:-ie(e)/10,data:ie(ot).batOut,props:ie(jt).batOut,anchor:"middle",config:ie(_e)},null,8,["y","data","props","config"]),ie(Ct).active?(ae(),Re(Pn,{key:0,x:0,y:-ie(e)/10,data:ie(ot).batOut,props:ie(jt).batOut,anchor:"middle",config:ie(_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:ie(_e)},null,8,["x","y","data","labelicon","labelcolor","config"]))),128)),ie(rr)[0]!=null&&ie(dt)[ie(rr)[0]]!=null?(ae(),Re(Pn,{key:1,x:-500/2-ti/4+10,y:-ie(e)/2+ti+5,labeltext:p(ie(dt)[ie(rr)[0]].name)+": "+Math.round(ie(dt)[ie(rr)[0]].soc)+"%",labelcolor:l.value[0]?l.value[0].color:"var(--color-charging)",anchor:"start",config:ie(_e)},null,8,["x","y","labeltext","labelcolor","config"])):Me("",!0),ie(rr)[1]!=null&&ie(dt)[ie(rr)[1]]!=null?(ae(),Re(Pn,{key:2,x:Ts/2+ti/4-10,y:-ie(e)/2+ti+5,labeltext:p(ie(dt)[ie(rr)[1]].name)+": "+Math.round(ie(dt)[ie(rr)[1]].soc)+"%",labelcolor:l.value[1]?l.value[1].color:"var(--color-charging)",anchor:"end",config:ie(_e)},null,8,["x","y","labeltext","labelcolor","config"])):Me("",!0),ie(Ot).batterySoc>0?(ae(),Re(Pn,{key:3,x:-500/2-ti/4+10,y:ie(e)/2-ti+15,labeltext:"Speicher: "+ie(Ot).batterySoc+"%",labelcolor:ie(tt).batIn.color,anchor:"start",config:ie(_e)},null,8,["x","y","labeltext","labelcolor","config"])):Me("",!0),ie(Ct).active?(ae(),Re(Pn,{key:4,x:Ts/2+ti/4-10,y:ie(e)/2-ti+15,value:g.value,labeltext:ie(Ct).etCurrentPriceString,labelcolor:"var(--color-charging)",anchor:"end",config:ie(_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:ie(_e)},null,8,["labeltext","config"]),ie(_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:ie(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 S=It("g#pgSourceGraph");if(Ae.data.length>0){Ae.graphMode=="month"||Ae.graphMode=="year"?_(S,Xi.value):w(S,En.value),S.selectAll(".axis").remove();const T=S.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((S,T)=>S[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 S=[];const T=["batOut","evuIn"];if(_e.showInverters){const A=/pv\d+/;Ae.data.length>0&&(S=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 S.forEach(A=>{var C;r[A]=((C=ar.value.get(+A.slice(2)))==null?void 0:C.color)??"var(--color-pv)"}),_e.showInverters?[...S,...T]:["selfUsage","evuOut","batOut","evuIn"];default:return["evuIn","batOut","selfUsage","evuOut"]}}),d=we(()=>{let S=Tn(Ae.data,T=>Math.max(T.pv+T.evuIn+T.batOut,T.selfUsage+T.evuOut));return S[0]!=null&&S[1]!=null?(Ae.graphMode=="year"&&(S[0]=S[0]/1e3,S[1]=S[1]/1e3),S):[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(S=>(S==0?"":Math.round(S*10)/10).toLocaleString(void 0))),b=we(()=>_e.showGrid?"0.5":"1"),v=we(()=>_e.showGrid?"var(--color-grid)":"var(--color-bg)");function w(S,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?(S.selectAll("*").remove(),n=S.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 _(S,T){Ae.data.length>0&&(yl?(S.selectAll("*").remove(),s=S.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()):(S.selectAll("*").remove(),s=S.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 S=It("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);S.selectAll("path").attr("d",A=>A?T(A):""),S.selectAll("g#sourceToolTips").select("rect").attr("x",A=>En.value(A.date)).attr("width",e.width/Ae.data.length)}return"zoomed"});return(S,T)=>(ae(),Ee("g",{id:"pgSourceGraph",origin:o.value,origin2:y.value,transform:"translate("+S.margin.left+","+S.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=It("g#pgUsageGraph");Ae.graphMode=="month"||Ae.graphMode=="year"?w(y):v(y),y.selectAll(".axis").remove();const S=y.append("g").attr("class","axis");return S.call(b.value),S.selectAll(".tick").attr("font-size",12).attr("color","var(--color-axis)"),_e.showGrid?S.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):S.selectAll(".tick line").attr("stroke","var(--color-bg)"),S.select(".domain").attr("stroke","var(--color-bg)"),"pgUsageGraph.vue"}),u=we(()=>E1().value((y,S)=>y[S]??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(),S=y.indexOf("charging");y.splice(S,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(S+L,0,C),n[C]=((j=Ge[+C.slice(2)])==null?void 0:j.color)??"black"}),y}}),p=we(()=>{let y=Tn(Ae.data,S=>S.house+S.charging+S.batIn+S.devices+S.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 S=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=>S(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",(S,T)=>n[r.value[e.stackOrder][T]]).selectAll("rect").data(S=>S).enter().append("rect").attr("x",(S,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",S=>Ae.graphMode=="year"?f.value(S[0]/1e3):f.value(S[0])).attr("height",S=>Ae.graphMode=="year"?f.value(S[1]/1e3)-f.value(S[0]/1e3):f.value(S[1])-f.value(S[0])),vv()):(y.selectAll("*").remove(),i=y.selectAll(".usagebar").data(c.value).enter().append("g").attr("fill",(S,T)=>n[r.value[e.stackOrder][T]]).selectAll("rect").data(S=>S).enter().append("rect").attr("x",(S,T)=>Xi.value(Ae.data[T].date)??0).attr("y",S=>Ae.graphMode=="year"?f.value(S[0]/1e3):f.value(S[0])).attr("height",S=>Ae.graphMode=="year"?f.value(S[1]/1e3)-f.value(S[0]/1e3):f.value(S[1])-f.value(S[0])).attr("width",Xi.value.bandwidth()))}const _=we(()=>{const y=It("g#pgUsageGraph");if(Ae.graphMode!="month"&&Ae.graphMode!="year"){En.value.range(Zi.value);const S=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?S(T):"")}return"zoomed"});return(y,S)=>(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=It("g#PGXAxis"),f=It("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=It("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=It("g#PGXAxis"),f=It("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$),ie(_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),ie(_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=It("path#soc-"+i.value),p=It("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=It("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(ie(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 qt.date.getDate()+"."+(qt.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 qt.getDate();case"month":return Bn.getDate();default:return qt.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]=S=>a.value=S),class:"m-2",options:s.map((S,T)=>({text:i[T],value:S,color:"var(--color-menu)",active:S==ie(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]=S=>_.$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]=S=>_.$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:ie(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]=S=>_.$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]=S=>_.$emit("shiftDown"))},null,2)):Me("",!0),r.value>0?(ae(),Ee("span",{key:2,type:"button",class:"p-1",onClick:y[5]||(y[5]=S=>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:ie(jt)[r.cat].color},ke(r.name?r.name:ie(jt)[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(ie(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),It("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:ie(Ae).data.length>0?i.width/ie(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=It("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:ie(af),onShiftRight:ie(Nm),onShiftUp:ie(Dm),onShiftDown:ie(Um)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),ie(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 "+ie(Tr)+" "+ie(tn)},[xe(C$,{width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it)},null,8,["width","height","margin"]),xe(M$,{width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it),"stack-order":ie(_e).usageStackOrder},null,8,["width","height","margin","stack-order"]),xe(F$,{width:ie(Tr)-ie(it).left-ie(it).right,height:ie(tn)-ie(it).top-ie(it).bottom,margin:ie(it)},null,8,["width","height","margin"]),z("g",{transform:"translate("+ie(it).left+","+ie(it).top+")"},[(ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"||ie(Ae).graphMode=="live")&&Object.values(ie(dt)).filter(u=>u.visible).length>0?(ae(),Re(Dd,{key:0,width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it),order:0},null,8,["width","height","margin"])):Me("",!0),(ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"||ie(Ae).graphMode=="live")&&Object.values(ie(dt)).filter(u=>u.visible).length>1?(ae(),Re(Dd,{key:1,width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it),order:1},null,8,["width","height","margin"])):Me("",!0),(ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"||ie(Ae).graphMode=="live")&&ie(Ot).isBatteryConfigured?(ae(),Re(Dd,{key:2,width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it),order:2},null,8,["width","height","margin"])):Me("",!0),ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"||ie(Ae).graphMode=="live"?(ae(),Re(q$,{key:3,width:ie(Tr)-ie(it).left-ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it)},null,8,["width","height","margin"])):Me("",!0)],8,AN),ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"?(ae(),Re(EN,{key:0,width:ie(Tr)-ie(it).left-ie(it).right,height:ie(tn)-ie(it).top-ie(it).bottom,margin:ie(it),data:ie(Ae).data},null,8,["width","height","margin","data"])):Me("",!0),z("g",{id:"button",type:"button",onClick:r},[z("text",{x:ie(Tr)-10,y:ie(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,ie(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=It("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(ie(Mi)(l.item.energy,ie(_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:ie(af),onShiftRight:ie(Nm),onShiftUp:ie(Dm),onShiftDown:ie(Um)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),ie(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:ie(_e)},null,8,["y-scale","config"]),z("text",{x:-e.left,y:"-15",fill:"var(--color-axis)","font-size":Cv},ke(ie(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:ie(_e)},null,8,["plotdata","x-scale","y-scale","config"])],8,XN)]))]),ie(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(ie(Mi)(i.item.energy,ie(_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})}),Pt.value.size>1&&Pt.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:ie(af),onShiftRight:ie(Nm),onShiftUp:ie(Dm),onShiftDown:ie(Um)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),ie(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(ie(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))]),ie(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)},[Yt(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)},[Yt(s.$slots,"title",{},void 0,!0)],4),z("div",MD,[Yt(s.$slots,"buttons",{},void 0,!0)])]),z("div",kD,[Yt(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,[Yt(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,[Yt(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:ie(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"},Ht=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 mt-4"},u3={key:0,class:"subconfig subgrid"},c3={key:0,class:"subconfigstack mt-4"},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:ie(Gi).minpv,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{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:ie(Gi).minsoc,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{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:ie(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(Ht,{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-8d58a519"]]),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,Vt(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+"%":ie(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,Vt(e.chargePoint.id)}return(l,u)=>(ae(),Ee(Ye,null,[xe(et,{title:"Zeitplan aktiv",icon:"fa-clock",fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{modelValue:ie(n).timedCharging,"onUpdate:modelValue":u[0]||(u[0]=c=>ie(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 Ct.etPriceList.size>0&&Ct.etPriceList.forEach((U,I)=>{R.push([I,U])}),R}),c=we(()=>u.value.length>1?(yo-l.left-l.right)/u.value.length: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(u.value.length).tickSize(5).tickSizeInner(-250).tickFormat(R=>R.getHours()%6==0&&R.getMinutes()==0?rs("%H:%M")(R):"")),S=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=It("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-bg)").attr("stroke-width",$=>$.getMinutes()==0?$.getHours()%6==0?"2":"0.5":"0"),I.select(".domain").attr("stroke","var(--color-bg");const M=R.append("g").attr("class","axis").call(S.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 Ct.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(ie(Ct).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:ie(Ot).country=="ch"?"Rp":"ct"},null,8,["modelValue","min","max","subrange-min","subrange-max","unit"])])):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-67afb74e"]]),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)),ie(Ct).active?(ae(),Re(DS,{key:0,chargepoint:r.value},null,8,["chargepoint"])):Me("",!0),ie(Ct).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:ie(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(ie(r).vehicleName)+": ",1),xe(et,{title:"Lademodus",icon:"fa-charging-station",infotext:ie(Gi).chargemode,fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:ie(r).chargeMode,"onUpdate:modelValue":s[0]||(s[0]=i=>ie(r).chargeMode=i),columns:3,options:Object.keys(ie(yr)).map(i=>[ie(yr)[i].name,i,ie(yr)[i].color,ie(yr)[i].icon])},null,8,["modelValue","options"])]),_:1},8,["infotext"]),Object.values(ie(dt)).filter(i=>i.visible).length>1?(ae(),Re(et,{key:0,title:"Fahrzeug wechseln",icon:"fa-car",infotext:ie(Gi).vehicle,fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:ie(r).connectedVehicle,"onUpdate:modelValue":s[1]||(s[1]=i=>ie(r).connectedVehicle=i),modelModifiers:{number:!0},options:Object.values(ie(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:ie(Gi).locked,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{modelValue:ie(r).isLocked,"onUpdate:modelValue":s[2]||(s[2]=i=>ie(r).isLocked=i)},null,8,["modelValue"])]),_:1},8,["infotext"]),xe(et,{title:"Priorität",icon:"fa-star",infotext:ie(Gi).priority,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{modelValue:ie(r).hasPriority,"onUpdate:modelValue":s[3]||(s[3]=i=>ie(r).hasPriority=i)},null,8,["modelValue"])]),_:1},8,["infotext"]),xe(et,{title:"Zeitplan",icon:"fa-clock",infotext:ie(Gi).timeplan,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{modelValue:ie(r).timedCharging,"onUpdate:modelValue":s[4]||(s[4]=i=>ie(r).timedCharging=i)},null,8,["modelValue"])]),_:1},8,["infotext"]),ie(Ot).isBatteryConfigured?(ae(),Re(et,{key:1,title:"PV-Priorität",icon:"fa-car-battery",infotext:ie(Gi).pvpriority,fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:ie(Ot).pvBatteryPriority,"onUpdate:modelValue":s[5]||(s[5]=i=>ie(Ot).pvBatteryPriority=i),options:ie(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(ie(r).stateStr),1)]),_:1}),ie(r).faultState!=0?(ae(),Re(et,{key:0,title:"Fehler",class:"grid-col-12",icon:"fa-triangle-exclamation"},{default:Ie(()=>[z("span",d8,ke(ie(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:ie(r),vehicles:ie(dt),"charge-templates":ie(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:ie(r),vehicles:ie(dt),"charge-templates":ie(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":ie(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:ie(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":ie(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,[Yt(n.$slots,"title",{},()=>[s[0]||(s[0]=z("div",{class:"p-0"},"(title goes here)",-1))],!0),Yt(n.$slots,"subtitle",{},void 0,!0)]),z("div",O8,[Yt(n.$slots,"buttons",{},void 0,!0)])]),z("div",L8,[Yt(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)},[Yt(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(_){r.chargeMode=_}}),o=we(()=>{const _=e.chargepoint.rangeCharged,y=e.chargepoint.chargedSincePlugged,S=e.chargepoint.dailyYield;return y>0?Math.round(_/y*S).toString()+" "+e.chargepoint.rangeUnit:"0 km"}),l=we(()=>e.chargepoint.soc),u=we({get(){return e.chargepoint.soc},set(_){Ge[e.chargepoint.id].soc=_}}),c=we(()=>{const[_]=Ct.etPriceList.values();return(Math.round(_*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(_=>_.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}}}),b=we(()=>Ot.country==="ch"?" Rp":" ct");function v(){vr("socUpdate",1,e.chargepoint.connectedVehicle),Ge[e.chargepoint.id].waitingForSoc=!0}function w(){vr("setSoc",u.value,e.chargepoint.connectedVehicle),n.value=!1}return(_,y)=>(ae(),Ee(Ye,null,[z("div",z8,[z("h3",{onClick:y[0]||(y[0]=S=>i.value=!i.value)},[y[8]||(y[8]=z("i",{class:"fa-solid fa-sm fa-car me-2"},null,-1)),st(" "+ke(_.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),_.chargepoint.hasPriority?(ae(),Ee("span",H8)):Me("",!0),_.chargepoint.timedCharging?(ae(),Ee("span",q8)):Me("",!0)]),_.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"]),_.chargepoint.isSocManual?(ae(),Ee("i",{key:0,class:"fa-solid fa-sm fas fa-edit",style:{color:"var(--color-bg)"},onClick:y[1]||(y[1]=S=>n.value=!n.value)})):Me("",!0),_.chargepoint.isSocManual?Me("",!0):(ae(),Ee("i",{key:1,type:"button",class:rt(["fa-solid fa-sm",_.chargepoint.waitingForSoc?"fa-spinner fa-spin":"fa-sync"]),onClick:v},null,2))]),_:1},8,["bgcolor"])):Me("",!0)]),i.value?(ae(),Ee("div",G8,[y[9]||(y[9]=z("span",{class:"changeCarTitle mb-2"},"Fahrzeug wechseln:",-1)),xe(Ir,{modelValue:ie(r).connectedVehicle,"onUpdate:modelValue":[y[2]||(y[2]=S=>ie(r).connectedVehicle=S),y[3]||(y[3]=S=>i.value=!1)],modelModifiers:{number:!0},options:d.value.map(S=>[S.name,S.id])},null,8,["modelValue","options"])])):Me("",!0),z("div",Y8,[xe(NS,{id:"chargemode-"+_.chargepoint.name,modelValue:a.value,"onUpdate:modelValue":y[4]||(y[4]=S=>a.value=S),class:"chargemodes mt-3 mb-3",options:Object.keys(ie(yr)).map(S=>({text:ie(yr)[S].name,value:S,color:ie(yr)[S].color,icon:ie(yr)[S].icon,active:ie(yr)[S].mode==_.chargepoint.chargeMode}))},null,8,["id","modelValue","options"]),_.chargepoint.power>0?(ae(),Re(W8,{key:0,chargepoint:_.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(_.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}),_.chargepoint.isSocConfigured?(ae(),Re(mt,{key:1,heading:"Reichweite:",class:"grid-col-4 grid-right"},{default:Ie(()=>[st(ke(ie(dt)[e.chargepoint.connectedVehicle]?Math.round(ie(dt)[e.chargepoint.connectedVehicle].range):0)+" km ",1)]),_:1})):Me("",!0),n.value?(ae(),Ee("div",K8,[y[10]||(y[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":y[5]||(y[5]=S=>u.value=S),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:w})])):Me("",!0),y[12]||(y[12]=z("hr",{class:"divider grid-col-12"},null,-1)),ie(Ct).active?(ae(),Re(mt,{key:3,heading:"Strompreis:",class:"grid-col-4 grid-left"},{default:Ie(()=>[z("span",{style:ht(f.value)},ke(ie(Ct).etCurrentPriceString),5)]),_:1})):Me("",!0),ie(r).etActive?(ae(),Re(mt,{key:4,heading:"max. Preis:",class:"grid-col-4"},{default:Ie(()=>[z("span",{type:"button",onClick:y[6]||(y[6]=S=>s.value=!s.value)},[st(ke(e.chargepoint.etActive?(Math.round(e.chargepoint.etMaxPrice*10)/10).toFixed(1)+b.value:"-")+" ",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"},[ie(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:y[7]||(y[7]=S=>s.value=!1)},y[11]||(y[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-42dac082"]]),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 Dt(){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=Dt();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=Dt();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=Dt(),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=Dt();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=Dt(),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 Dt().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=Dt();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=Dt(),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=Dt(),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=Dt(),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=Dt();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=Dt(),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,S=-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===$&&S.push(ne)}):S.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&&S.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||S.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(S.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=_?S.length/p.grid.rows:S.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===Dt())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=Dt(),{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,S=s.resistanceRatio;if(s.touchReleaseOnEdges&&(S=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)**S))):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,S=ba.longSwipesMs){if(!a.longSwipes){e.slideTo(e.activeIndex);return}e.swipeDirection==="next"&&(y>=a.longSwipesRatio?e.slideTo(a.rewind&&e.isEnd?w:b+S):e.slideTo(b)),e.swipeDirection==="prev"&&(y>1-a.longSwipesRatio?e.slideTo(b+S):_!==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+S):e.slideTo(b):(e.swipeDirection==="next"&&e.slideTo(w!==null?w:b+S),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 S=t.params.enabled,T=t.params.loop;Object.assign(t,{allowTouchMove:t.params.allowTouchMove,allowSlideNext:t.params.allowSlideNext,allowSlidePrev:t.params.allowSlidePrev}),v&&!S?t.disable():!v&&S&&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=Dt(),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,[Yt(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,[Yt(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(()=>[ie(Ct).active?(ae(),Re(un,{key:0,bgcolor:"var(--color-menu)"},{default:Ie(()=>[st("Strompreis: "+ke(ie(Ct).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([ie(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 Ot.pvBatteryPriority==u?"btn-success":"btn-secondary"}function a(u){n.value.chargeMode=u}function o(u){n.value.isLocked=u}function l(u){Ot.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 "))])])]),ie(Ot).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(Ot.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(ie(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==ie(Hr).pv_charging&&ie(Ot).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,[ie(_e).showClock=="buttonbar"?(ae(),Ee("span",I4,ke(ie(BS)(ie(gg))),1)):Me("",!0),(ae(!0),Ee(Ye,null,ft(ie(Ge),(n,s)=>(ae(),Re(S4,{key:s,chargepoint:n,"charge-point-count":Object.values(ie(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 Pt.value.forEach(i=>{s+=i.dailyYieldImport}),s});return(s,i)=>ie(Ot).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:ie(Ot).batterySoc},null,8,["soc"])]),_:1}),xe(mt,{heading:"Geladen:",class:"grid-col-4"},{default:Ie(()=>[z("span",null,ke(ie(Mi)(n.value)),1)]),_:1}),xe(mt,{heading:"Geliefert",class:"grid-right grid-col-4"},{default:Ie(()=>[z("span",null,ke(ie(Mi)(ie(ot).batOut.energy)),1)]),_:1})]),ie(Pt).size>1?(ae(),Ee("div",$4,[(ae(!0),Ee(Ye,null,ft(ie(Pt),([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(ie(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(ie(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=Ut({});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(ie(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(ie(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 Ct.etPriceList.size>0&&Ct.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&&v.getMinutes()==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=It("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.getMinutes()==0?C.getHours()%6==0?"2":"0.5":"0"),_.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 S=v.selectAll("ttip").data(s.value).enter().append("g").attr("class","ttarea");S.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=S.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(()=>[ie(Ct).active?(ae(),Re(un,{key:0,bgcolor:"var(--color-charging)"},{default:Ie(()=>[st(ke(ie(Ct).etCurrentPriceString),1)]),_:1})):Me("",!0),ie(Ct).active?(ae(),Re(un,{key:1,bgcolor:"var(--color-menu)"},{default:Ie(()=>[st(ke(ie(Ct).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-82db80a3"]]),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(ie(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(()=>[ie(ot).pv.power>0?(ae(),Re(un,{key:0,bgcolor:"var(--color-pv)"},{default:Ie(()=>[st(ke(ie(Yr)(ie(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([ie(jn)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[Yt(i.$slots,"item1",{},void 0,!0)],2)]),z("swiper-slide",null,[z("div",{class:rt([ie(jn)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[Yt(i.$slots,"item2",{},void 0,!0)],2)]),z("swiper-slide",null,[z("div",{class:rt([ie(jn)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[Yt(i.$slots,"item3",{},void 0,!0)],2)])],8,g6)]))}}),b6=Je(m6,[["__scopeId","data-v-17424929"]]);function y6(t,e){t=="openWB/graph/boolDisplayLiveGraph"?Ot.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(` +`;super(n),this.name="AggregateError",this.errors=r}}return sd={AggregateError:t,ArrayIsArray(e){return Array.isArray(e)},ArrayPrototypeIncludes(e,r){return e.includes(r)},ArrayPrototypeIndexOf(e,r){return e.indexOf(r)},ArrayPrototypeJoin(e,r){return e.join(r)},ArrayPrototypeMap(e,r){return e.map(r)},ArrayPrototypePop(e,r){return e.pop(r)},ArrayPrototypePush(e,r){return e.push(r)},ArrayPrototypeSlice(e,r,n){return e.slice(r,n)},Error,FunctionPrototypeCall(e,r,...n){return e.call(r,...n)},FunctionPrototypeSymbolHasInstance(e,r){return Function.prototype[Symbol.hasInstance].call(e,r)},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(e,r){return Object.defineProperties(e,r)},ObjectDefineProperty(e,r,n){return Object.defineProperty(e,r,n)},ObjectGetOwnPropertyDescriptor(e,r){return Object.getOwnPropertyDescriptor(e,r)},ObjectKeys(e){return Object.keys(e)},ObjectSetPrototypeOf(e,r){return Object.setPrototypeOf(e,r)},Promise,PromisePrototypeCatch(e,r){return e.catch(r)},PromisePrototypeThen(e,r,n){return e.then(r,n)},PromiseReject(e){return Promise.reject(e)},PromiseResolve(e){return Promise.resolve(e)},ReflectApply:Reflect.apply,RegExpPrototypeTest(e,r){return e.test(r)},SafeSet:Set,String,StringPrototypeSlice(e,r,n){return e.slice(r,n)},StringPrototypeToLowerCase(e){return e.toLowerCase()},StringPrototypeToUpperCase(e){return e.toUpperCase()},StringPrototypeTrim(e){return e.trim()},Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,SymbolDispose:Symbol.dispose||Symbol("Symbol.dispose"),SymbolAsyncDispose:Symbol.asyncDispose||Symbol("Symbol.asyncDispose"),TypedArrayPrototypeSet(e,r,n){return e.set(r,n)},Boolean,Uint8Array},sd}var od={exports:{}},ad,Iw;function hS(){return Iw||(Iw=1,ad={format(t,...e){return t.replace(/%([sdifj])/g,function(...[r,n]){const s=e.shift();return n==="f"?s.toFixed(6):n==="j"?JSON.stringify(s):n==="s"&&typeof s=="object"?`${s.constructor!==Object?s.constructor.name:""} {}`.trim():s.toString()})},inspect(t){switch(typeof t){case"string":if(t.includes("'"))if(t.includes('"')){if(!t.includes("`")&&!t.includes("${"))return`\`${t}\``}else return`"${t}"`;return`'${t}'`;case"number":return isNaN(t)?"NaN":Object.is(t,-0)?String(t):t;case"bigint":return`${String(t)}n`;case"boolean":case"undefined":return String(t);case"object":return"{}"}}}),ad}var ld,Mw;function Pr(){if(Mw)return ld;Mw=1;const{format:t,inspect:e}=hS(),{AggregateError:r}=Wt(),n=globalThis.AggregateError||r,s=Symbol("kIsNodeError"),i=["string","function","number","object","Function","Object","boolean","bigint","symbol"],a=/^([A-Z][a-z0-9]*)+$/,o="__node_internal_",l={};function u(v,w){if(!v)throw new l.ERR_INTERNAL_ASSERTION(w)}function c(v){let w="",_=v.length;const y=v[0]==="-"?1:0;for(;_>=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 S=[],T=[],A=[];for(const L of w)u(typeof L=="string","All expected entries have to be of type string"),i.includes(L)?S.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=S.indexOf("object");L!==-1&&(S.splice(S,L,1),T.push("Object"))}if(S.length>0){switch(S.length){case 1:y+=`of type ${S[0]}`;break;case 2:y+=`one of type ${S[0]} or ${S[1]}`;break;default:{const L=S.pop();y+=`one of type ${S.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 S=_!=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 ${S}.`},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 S=BigInt(2)**BigInt(32);(_>S||_<-S)&&(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(S){console&&console.warn&&console.warn(S)}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(S){if(typeof S!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof S)}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(S){if(typeof S!="number"||S<0||s(S))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+S+".");a=S}}),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(S){return S._maxListeners===void 0?i.defaultMaxListeners:S._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=S,U.type=T,U.count=R.length,n(U)}return S}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(S,T,A){var C={fired:!1,wrapFn:void 0,target:S,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(S,T,A){var C=S._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(S,T){return typeof S.listenerCount=="function"?S.listenerCount(T):p.call(S,T)},i.prototype.listenerCount=p;function p(S){var T=this._events;if(T!==void 0){var A=T[S];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(S,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}=Wt(),{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:S}=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,se){if(typeof J>"u"&&(J=se),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,se=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,`>= ${se} && <= ${Q}`,J)}),$=g((J,Y,se=-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,`>= ${se} && <= ${Q}`,J)}),Z=g((J,Y,se=!1)=>{if(typeof J!="number")throw new v(Y,"number",J);if(!s(J))throw new _(Y,"an integer",J);const Q=se?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,se=void 0,Q){if(typeof J!="number")throw new v(Y,"number",J);if(se!=null&&JQ||(se!=null||Q!=null)&&i(J))throw new _(Y,`${se!=null?`>= ${se}`:""}${se!=null&&Q!=null?" && ":""}${Q!=null?`<= ${Q}`:""}`,J)}const N=g((J,Y,se)=>{if(!e(se,J)){const oe="must be one of: "+r(n(se,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,se){return J==null||!u(J,Y)?se:J[Y]}const pe=g((J,Y,se=null)=>{const Q=G(se,"allowArray",!1),oe=G(se,"allowFunction",!1);if(!G(se,"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,se=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 se=S(Y),Q=J.length;if(se==="hex"&&Q%2!==0)throw new w("encoding",Y,`is invalid for data of length ${Q}`)}function ce(J,Y="Port",se=!0){if(typeof J!="number"&&typeof J!="string"||typeof J=="string"&&p(J).length===0||+J!==+J>>>0||J>65535||J===0&&!se)throw new b(Y,J,se);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,se){if(!e(se,J))throw new v(Y,`('${r(se,"|")}')`,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 se="";if(Y===0)return se;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||S(N)===!1)||!Se&&(!D||S(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),se=G;G=a((...Q)=>{Y[p](),se.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}=Wt(),{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(S,R)}function S(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}=Wt(),{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}=Wt(),{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}=Wt(),{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}=Wt(),{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 S=_.length-1;if(S=0?(T>0&&(w.lastNeed=T-1),T):--S=0?(T>0&&(w.lastNeed=T-2),T):--S=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 S=w.length-(y-this.lastNeed);return w.copy(this.lastChar,0,S),w.toString("utf8",_,S)}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 S=y.charCodeAt(y.length-1);if(S>=55296&&S<=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}=Wt(),{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:S,done:T}=await f.throw(w);if(await S,T)return}if(typeof f.return=="function"){const{value:S}=await f.return();await S}}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}=Wt();wd=Q,Q.ReadableState=se;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 S=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(se.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 se(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 S,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 se(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 x(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=x(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?Gt(this):E(this),null;if(ge=m(ge,be),ge===0&&be.ended)return be.length===0&&Gt(this),null;let Ve=(be.state&W)!==0;if(y("need readable",Ve),(be.length===0||be.length-ge0?Ke=Rt(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&&Gt(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(se.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[ne]!==!1},set(ge){this[ne]=!!ge}}}),Q._fromList=Rt;function Rt(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 Gt(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}=Wt();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:S,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 S)};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 S(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}=Wt();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(S(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,x=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 se=h;if(x){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)||S(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),x&&h.end(),t.nextTick(H)},he=>{h.destroy(he),t.nextTick(H,he)});else if(_(ue,!0))B++,N(ue,h,H,{end:x});else if(L(ue)||A(ue)){const he=ue.readable||ue;B++,N(he,h,H,{end:x})}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(S(ue)){B+=2;const h=F(ue,oe,H,{end:x});y(oe)&&m&&X.push(h)}else if(A(ue)||L(ue)){const h=ue.readable||ue;B++,N(h,oe,H,{end:x})}else if(_(ue))B++,N(ue,oe,H,{end:x});else throw new c("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],ue);ue=oe}else if(C(oe)){if(S(ue))B++,fe(ne(ue),oe,H,{end:x});else if(L(ue)||_(ue))B++,fe(ue,oe,H,{end:x});else if(A(ue))B++,fe(ue.readable,oe,H,{end:x});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,S,T;function A(U){const I=S;S=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&&S!==null&&(U=new c),y=null,w=null,_=null,S===null?I(U):(S=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=Wt().Symbol("kWeak"),c=Wt().Symbol("kResistStopPropagation"),{finished:f}=us(),d=bS(),{addAbortSignalNoValidate:p}=nf(),{isWritable:g,isNodeStream:b}=Bi(),{deprecate:v}=Nr(),{ArrayPrototypePush:w,Boolean:_,MathFloor:y,Number:S,NumberIsNaN:T,Promise:A,PromiseReject:C,PromiseResolve:L,PromisePrototypeThen:j,Symbol:R}=Wt(),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 se(){J=!0,Q()}function Q(){Y-=1,oe()}function oe(){ue&&!J&&Y=le||Y>=ce)&&await new A(x=>{ue=x})}B.push(I)}catch(Te){const x=C(Te);j(x,Q,se),B.push(x)}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=S(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}=Wt(),{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}=Wt(),{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(S,this,A))};var _=T;const S=i[y];e(T,"name",{__proto__:null,value:S.name}),e(T,"length",{__proto__:null,value:S.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(S,this,C)};var _=T;const S=a[y];e(T,"name",{__proto__:null,value:S.name}),e(T,"length",{__proto__:null,value:S.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(S){return S instanceof Uint8Array},v._uint8ArrayToBuffer=function(S){return t.from(S.buffer,S.byteOffset,S.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 se=!1;if(B!=null)if(Se(B))se=!0,ue+=e.byteLength(B)+2;else return K.destroy(new Error("Invalid username")),!1;if(H!=null){if(!se)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 S(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,se=+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|=se?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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(this.id))}set pvMinSocPhases(e){this.chargeTemplate&&(this.chargeTemplate.chargemode.pv_charging.phases_to_use_min_soc=e,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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,Vt(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=Ut({}),dt=Ut({}),pg=Ut({}),vB=Ut({});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;jt[r]?jt["cp"+t].color=e:jt[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 Vt(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=Ut(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=Ut({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)}}),qt=Ut({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=Ut({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=Ut({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",qt.deactivate(),qt.back(),qt.activate(),nr();break;case"day":qt.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":qt.forward(),qt.date.getDate()==t.getDate()&&qt.date.getMonth()==t.getMonth()&&qt.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"){qt.setDate(t);const e=new Date;qt.date.getDate()==e.getDate()&&qt.date.getMonth()==e.getMonth()&&qt.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,"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=Ut(new kB);function OS(){NB();const t=It("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=Ut({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","");ve(this,"country","de")}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=It("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=It("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 jt=Ut({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=Ut(new LS);function Fm(){qe=new LS}const ot=Ut({evuIn:$n("evuIn",pt.counter),pv:$n("pv",pt.pvSummary),batOut:$n("batOut",pt.batterySummary)}),tt=Ut({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)}),Ot=Ut(new LB);ct("");const Xo=ct(!1);function $n(t,e,r){return{name:jt[t]?jt[t].name:"item",type:e,power:0,energy:0,energyPv:0,energyBat:0,pvPercentage:0,color:r||(jt[t]?jt[t].color:"var(--color-charging)"),icon:jt[t]?jt[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=jt["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)}}Ut(new VB);const Pt=ct(new Map),RS=t=>{Pt.value.set(t,new FB(t)),Pt.value.get(t).color=jt["bat"+Pt.value.size].color};function jB(){Pt.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:ie(qB)(e.consumer.color)})},[z("tspan",GB,ke(r(e.consumer.name)),1),z("tspan",YB,ke(ie(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(()=>Pt.value.size>1?[...Pt.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(()=>Pt.value.size>1?[...Pt.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$,[Yt(n.$slots,"title",{},()=>[s[0]||(s[0]=z("div",{class:"p-0"},"(title goes here)",-1))]),Yt(n.$slots,"subtitle")]),z("div",u$,[Yt(n.$slots,"buttons")])]),z("div",c$,[z("div",f$,[z("div",d$,[z("div",h$,[Yt(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$,[Yt(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);ve(this,"country","de")}get etCurrentPriceString(){const[e]=Ct.etPriceList.values();return(Math.round(e*10)/10).toFixed(1)+(Ot.country==="ch"?" Rp":" ct")}}const Ct=Ut(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]=Ct.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+" "+ie(e)},[z("g",{transform:"translate("+Ts/2+","+ie(e)/2+")"},[xe(t$,{radius:i.value,"corner-radius":xv,"circle-gap-size":r,"empty-power":u.value,"show-labels":ie(_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":ie(_e).showPmLabels},null,8,["radius","empty-power","show-labels"]),xe(Pn,{x:0,y:-ie(e)/10*2,data:ie(ot).pv,props:ie(jt).pv,anchor:"middle",config:ie(_e)},null,8,["y","data","props","config"]),xe(Pn,{x:0,y:-ie(e)/10*3,data:ie(ot).evuIn,props:ie(jt).evuIn,anchor:"middle",config:ie(_e)},null,8,["y","data","props","config"]),xe(Pn,{x:0,y:-ie(e)/10,data:ie(ot).batOut,props:ie(jt).batOut,anchor:"middle",config:ie(_e)},null,8,["y","data","props","config"]),ie(Ct).active?(ae(),Re(Pn,{key:0,x:0,y:-ie(e)/10,data:ie(ot).batOut,props:ie(jt).batOut,anchor:"middle",config:ie(_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:ie(_e)},null,8,["x","y","data","labelicon","labelcolor","config"]))),128)),ie(rr)[0]!=null&&ie(dt)[ie(rr)[0]]!=null?(ae(),Re(Pn,{key:1,x:-500/2-ti/4+10,y:-ie(e)/2+ti+5,labeltext:p(ie(dt)[ie(rr)[0]].name)+": "+Math.round(ie(dt)[ie(rr)[0]].soc)+"%",labelcolor:l.value[0]?l.value[0].color:"var(--color-charging)",anchor:"start",config:ie(_e)},null,8,["x","y","labeltext","labelcolor","config"])):Me("",!0),ie(rr)[1]!=null&&ie(dt)[ie(rr)[1]]!=null?(ae(),Re(Pn,{key:2,x:Ts/2+ti/4-10,y:-ie(e)/2+ti+5,labeltext:p(ie(dt)[ie(rr)[1]].name)+": "+Math.round(ie(dt)[ie(rr)[1]].soc)+"%",labelcolor:l.value[1]?l.value[1].color:"var(--color-charging)",anchor:"end",config:ie(_e)},null,8,["x","y","labeltext","labelcolor","config"])):Me("",!0),ie(Ot).batterySoc>0?(ae(),Re(Pn,{key:3,x:-500/2-ti/4+10,y:ie(e)/2-ti+15,labeltext:"Speicher: "+ie(Ot).batterySoc+"%",labelcolor:ie(tt).batIn.color,anchor:"start",config:ie(_e)},null,8,["x","y","labeltext","labelcolor","config"])):Me("",!0),ie(Ct).active?(ae(),Re(Pn,{key:4,x:Ts/2+ti/4-10,y:ie(e)/2-ti+15,value:g.value,labeltext:ie(Ct).etCurrentPriceString,labelcolor:"var(--color-charging)",anchor:"end",config:ie(_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:ie(_e)},null,8,["labeltext","config"]),ie(_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:ie(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 S=It("g#pgSourceGraph");if(Ae.data.length>0){Ae.graphMode=="month"||Ae.graphMode=="year"?_(S,Xi.value):w(S,En.value),S.selectAll(".axis").remove();const T=S.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((S,T)=>S[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 S=[];const T=["batOut","evuIn"];if(_e.showInverters){const A=/pv\d+/;Ae.data.length>0&&(S=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 S.forEach(A=>{var C;r[A]=((C=ar.value.get(+A.slice(2)))==null?void 0:C.color)??"var(--color-pv)"}),_e.showInverters?[...S,...T]:["selfUsage","evuOut","batOut","evuIn"];default:return["evuIn","batOut","selfUsage","evuOut"]}}),d=we(()=>{let S=Tn(Ae.data,T=>Math.max(T.pv+T.evuIn+T.batOut,T.selfUsage+T.evuOut));return S[0]!=null&&S[1]!=null?(Ae.graphMode=="year"&&(S[0]=S[0]/1e3,S[1]=S[1]/1e3),S):[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(S=>(S==0?"":Math.round(S*10)/10).toLocaleString(void 0))),b=we(()=>_e.showGrid?"0.5":"1"),v=we(()=>_e.showGrid?"var(--color-grid)":"var(--color-bg)");function w(S,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?(S.selectAll("*").remove(),n=S.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 _(S,T){Ae.data.length>0&&(yl?(S.selectAll("*").remove(),s=S.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()):(S.selectAll("*").remove(),s=S.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 S=It("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);S.selectAll("path").attr("d",A=>A?T(A):""),S.selectAll("g#sourceToolTips").select("rect").attr("x",A=>En.value(A.date)).attr("width",e.width/Ae.data.length)}return"zoomed"});return(S,T)=>(ae(),Ee("g",{id:"pgSourceGraph",origin:o.value,origin2:y.value,transform:"translate("+S.margin.left+","+S.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=It("g#pgUsageGraph");Ae.graphMode=="month"||Ae.graphMode=="year"?w(y):v(y),y.selectAll(".axis").remove();const S=y.append("g").attr("class","axis");return S.call(b.value),S.selectAll(".tick").attr("font-size",12).attr("color","var(--color-axis)"),_e.showGrid?S.selectAll(".tick line").attr("stroke","var(--color-grid)").attr("stroke-width","0.5"):S.selectAll(".tick line").attr("stroke","var(--color-bg)"),S.select(".domain").attr("stroke","var(--color-bg)"),"pgUsageGraph.vue"}),u=we(()=>E1().value((y,S)=>y[S]??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(),S=y.indexOf("charging");y.splice(S,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(S+L,0,C),n[C]=((j=Ge[+C.slice(2)])==null?void 0:j.color)??"black"}),y}}),p=we(()=>{let y=Tn(Ae.data,S=>S.house+S.charging+S.batIn+S.devices+S.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 S=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=>S(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",(S,T)=>n[r.value[e.stackOrder][T]]).selectAll("rect").data(S=>S).enter().append("rect").attr("x",(S,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",S=>Ae.graphMode=="year"?f.value(S[0]/1e3):f.value(S[0])).attr("height",S=>Ae.graphMode=="year"?f.value(S[1]/1e3)-f.value(S[0]/1e3):f.value(S[1])-f.value(S[0])),vv()):(y.selectAll("*").remove(),i=y.selectAll(".usagebar").data(c.value).enter().append("g").attr("fill",(S,T)=>n[r.value[e.stackOrder][T]]).selectAll("rect").data(S=>S).enter().append("rect").attr("x",(S,T)=>Xi.value(Ae.data[T].date)??0).attr("y",S=>Ae.graphMode=="year"?f.value(S[0]/1e3):f.value(S[0])).attr("height",S=>Ae.graphMode=="year"?f.value(S[1]/1e3)-f.value(S[0]/1e3):f.value(S[1])-f.value(S[0])).attr("width",Xi.value.bandwidth()))}const _=we(()=>{const y=It("g#pgUsageGraph");if(Ae.graphMode!="month"&&Ae.graphMode!="year"){En.value.range(Zi.value);const S=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?S(T):"")}return"zoomed"});return(y,S)=>(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=It("g#PGXAxis"),f=It("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=It("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=It("g#PGXAxis"),f=It("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$),ie(_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),ie(_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=It("path#soc-"+i.value),p=It("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=It("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(ie(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 qt.date.getDate()+"."+(qt.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 qt.getDate();case"month":return Bn.getDate();default:return qt.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]=S=>a.value=S),class:"m-2",options:s.map((S,T)=>({text:i[T],value:S,color:"var(--color-menu)",active:S==ie(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]=S=>_.$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]=S=>_.$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:ie(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]=S=>_.$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]=S=>_.$emit("shiftDown"))},null,2)):Me("",!0),r.value>0?(ae(),Ee("span",{key:2,type:"button",class:"p-1",onClick:y[5]||(y[5]=S=>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:ie(jt)[r.cat].color},ke(r.name?r.name:ie(jt)[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(ie(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),It("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:ie(Ae).data.length>0?i.width/ie(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=It("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:ie(af),onShiftRight:ie(Nm),onShiftUp:ie(Dm),onShiftDown:ie(Um)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),ie(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 "+ie(Tr)+" "+ie(tn)},[xe(C$,{width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it)},null,8,["width","height","margin"]),xe(M$,{width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it),"stack-order":ie(_e).usageStackOrder},null,8,["width","height","margin","stack-order"]),xe(F$,{width:ie(Tr)-ie(it).left-ie(it).right,height:ie(tn)-ie(it).top-ie(it).bottom,margin:ie(it)},null,8,["width","height","margin"]),z("g",{transform:"translate("+ie(it).left+","+ie(it).top+")"},[(ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"||ie(Ae).graphMode=="live")&&Object.values(ie(dt)).filter(u=>u.visible).length>0?(ae(),Re(Dd,{key:0,width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it),order:0},null,8,["width","height","margin"])):Me("",!0),(ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"||ie(Ae).graphMode=="live")&&Object.values(ie(dt)).filter(u=>u.visible).length>1?(ae(),Re(Dd,{key:1,width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it),order:1},null,8,["width","height","margin"])):Me("",!0),(ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"||ie(Ae).graphMode=="live")&&ie(Ot).isBatteryConfigured?(ae(),Re(Dd,{key:2,width:ie(Tr)-ie(it).left-2*ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it),order:2},null,8,["width","height","margin"])):Me("",!0),ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"||ie(Ae).graphMode=="live"?(ae(),Re(q$,{key:3,width:ie(Tr)-ie(it).left-ie(it).right,height:(ie(tn)-ie(it).top-ie(it).bottom)/2,margin:ie(it)},null,8,["width","height","margin"])):Me("",!0)],8,AN),ie(Ae).graphMode=="day"||ie(Ae).graphMode=="today"?(ae(),Re(EN,{key:0,width:ie(Tr)-ie(it).left-ie(it).right,height:ie(tn)-ie(it).top-ie(it).bottom,margin:ie(it),data:ie(Ae).data},null,8,["width","height","margin","data"])):Me("",!0),z("g",{id:"button",type:"button",onClick:r},[z("text",{x:ie(Tr)-10,y:ie(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,ie(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=It("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(ie(Mi)(l.item.energy,ie(_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:ie(af),onShiftRight:ie(Nm),onShiftUp:ie(Dm),onShiftDown:ie(Um)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),ie(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:ie(_e)},null,8,["y-scale","config"]),z("text",{x:-e.left,y:"-15",fill:"var(--color-axis)","font-size":Cv},ke(ie(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:ie(_e)},null,8,["plotdata","x-scale","y-scale","config"])],8,XN)]))]),ie(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(ie(Mi)(i.item.energy,ie(_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})}),Pt.value.size>1&&Pt.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:ie(af),onShiftRight:ie(Nm),onShiftUp:ie(Dm),onShiftDown:ie(Um)},null,8,["onShiftLeft","onShiftRight","onShiftUp","onShiftDown"]),ie(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(ie(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))]),ie(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)},[Yt(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)},[Yt(s.$slots,"title",{},void 0,!0)],4),z("div",MD,[Yt(s.$slots,"buttons",{},void 0,!0)])]),z("div",kD,[Yt(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,[Yt(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,[Yt(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:ie(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"},Ht=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 mt-4"},u3={key:0,class:"subconfig subgrid"},c3={key:0,class:"subconfigstack mt-4"},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:ie(Gi).minpv,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{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:ie(Gi).minsoc,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{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:ie(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(Ht,{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-8d58a519"]]),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,Vt(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+"%":ie(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,Vt(e.chargePoint.id)}return(l,u)=>(ae(),Ee(Ye,null,[xe(et,{title:"Zeitplan aktiv",icon:"fa-clock",fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{modelValue:ie(n).timedCharging,"onUpdate:modelValue":u[0]||(u[0]=c=>ie(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 Ct.etPriceList.size>0&&Ct.etPriceList.forEach((U,I)=>{R.push([I,U])}),R}),c=we(()=>u.value.length>1?(yo-l.left-l.right)/u.value.length: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(u.value.length).tickSize(5).tickSizeInner(-250).tickFormat(R=>R.getHours()%6==0&&R.getMinutes()==0?rs("%H:%M")(R):"")),S=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=It("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-bg)").attr("stroke-width",$=>$.getMinutes()==0?$.getHours()%6==0?"2":"0.5":"0"),I.select(".domain").attr("stroke","var(--color-bg");const M=R.append("g").attr("class","axis").call(S.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 Ct.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(ie(Ct).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:ie(Ot).country=="ch"?"Rp":"ct"},null,8,["modelValue","min","max","subrange-min","subrange-max","unit"])])):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-67afb74e"]]),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)),ie(Ct).active?(ae(),Re(DS,{key:0,chargepoint:r.value},null,8,["chargepoint"])):Me("",!0),ie(Ct).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 bei Überschuss",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:ie(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-345743f0"]]),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(ie(r).vehicleName)+": ",1),xe(et,{title:"Lademodus",icon:"fa-charging-station",infotext:ie(Gi).chargemode,fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:ie(r).chargeMode,"onUpdate:modelValue":s[0]||(s[0]=i=>ie(r).chargeMode=i),columns:3,options:Object.keys(ie(yr)).map(i=>[ie(yr)[i].name,i,ie(yr)[i].color,ie(yr)[i].icon])},null,8,["modelValue","options"])]),_:1},8,["infotext"]),Object.values(ie(dt)).filter(i=>i.visible).length>1?(ae(),Re(et,{key:0,title:"Fahrzeug wechseln",icon:"fa-car",infotext:ie(Gi).vehicle,fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:ie(r).connectedVehicle,"onUpdate:modelValue":s[1]||(s[1]=i=>ie(r).connectedVehicle=i),modelModifiers:{number:!0},options:Object.values(ie(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:ie(Gi).locked,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{modelValue:ie(r).isLocked,"onUpdate:modelValue":s[2]||(s[2]=i=>ie(r).isLocked=i)},null,8,["modelValue"])]),_:1},8,["infotext"]),xe(et,{title:"Priorität",icon:"fa-star",infotext:ie(Gi).priority,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{modelValue:ie(r).hasPriority,"onUpdate:modelValue":s[3]||(s[3]=i=>ie(r).hasPriority=i)},null,8,["modelValue"])]),_:1},8,["infotext"]),xe(et,{title:"Zeitplan",icon:"fa-clock",infotext:ie(Gi).timeplan,fullwidth:!0},{"inline-item":Ie(()=>[xe(Ht,{modelValue:ie(r).timedCharging,"onUpdate:modelValue":s[4]||(s[4]=i=>ie(r).timedCharging=i)},null,8,["modelValue"])]),_:1},8,["infotext"]),ie(Ot).isBatteryConfigured?(ae(),Re(et,{key:1,title:"PV-Priorität",icon:"fa-car-battery",infotext:ie(Gi).pvpriority,fullwidth:!0},{default:Ie(()=>[xe(Ir,{modelValue:ie(Ot).pvBatteryPriority,"onUpdate:modelValue":s[5]||(s[5]=i=>ie(Ot).pvBatteryPriority=i),options:ie(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(ie(r).stateStr),1)]),_:1}),ie(r).faultState!=0?(ae(),Re(et,{key:0,title:"Fehler",class:"grid-col-12",icon:"fa-triangle-exclamation"},{default:Ie(()=>[z("span",d8,ke(ie(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:ie(r),vehicles:ie(dt),"charge-templates":ie(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:ie(r),vehicles:ie(dt),"charge-templates":ie(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":ie(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:ie(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":ie(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,[Yt(n.$slots,"title",{},()=>[s[0]||(s[0]=z("div",{class:"p-0"},"(title goes here)",-1))],!0),Yt(n.$slots,"subtitle",{},void 0,!0)]),z("div",O8,[Yt(n.$slots,"buttons",{},void 0,!0)])]),z("div",L8,[Yt(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)},[Yt(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(_){r.chargeMode=_}}),o=we(()=>{const _=e.chargepoint.rangeCharged,y=e.chargepoint.chargedSincePlugged,S=e.chargepoint.dailyYield;return y>0?Math.round(_/y*S).toString()+" "+e.chargepoint.rangeUnit:"0 km"}),l=we(()=>e.chargepoint.soc),u=we({get(){return e.chargepoint.soc},set(_){Ge[e.chargepoint.id].soc=_}}),c=we(()=>{const[_]=Ct.etPriceList.values();return(Math.round(_*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(_=>_.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}}}),b=we(()=>Ot.country==="ch"?" Rp":" ct");function v(){vr("socUpdate",1,e.chargepoint.connectedVehicle),Ge[e.chargepoint.id].waitingForSoc=!0}function w(){vr("setSoc",u.value,e.chargepoint.connectedVehicle),n.value=!1}return(_,y)=>(ae(),Ee(Ye,null,[z("div",z8,[z("h3",{onClick:y[0]||(y[0]=S=>i.value=!i.value)},[y[8]||(y[8]=z("i",{class:"fa-solid fa-sm fa-car me-2"},null,-1)),st(" "+ke(_.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),_.chargepoint.hasPriority?(ae(),Ee("span",H8)):Me("",!0),_.chargepoint.timedCharging?(ae(),Ee("span",q8)):Me("",!0)]),_.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"]),_.chargepoint.isSocManual?(ae(),Ee("i",{key:0,class:"fa-solid fa-sm fas fa-edit",style:{color:"var(--color-bg)"},onClick:y[1]||(y[1]=S=>n.value=!n.value)})):Me("",!0),_.chargepoint.isSocManual?Me("",!0):(ae(),Ee("i",{key:1,type:"button",class:rt(["fa-solid fa-sm",_.chargepoint.waitingForSoc?"fa-spinner fa-spin":"fa-sync"]),onClick:v},null,2))]),_:1},8,["bgcolor"])):Me("",!0)]),i.value?(ae(),Ee("div",G8,[y[9]||(y[9]=z("span",{class:"changeCarTitle mb-2"},"Fahrzeug wechseln:",-1)),xe(Ir,{modelValue:ie(r).connectedVehicle,"onUpdate:modelValue":[y[2]||(y[2]=S=>ie(r).connectedVehicle=S),y[3]||(y[3]=S=>i.value=!1)],modelModifiers:{number:!0},options:d.value.map(S=>[S.name,S.id])},null,8,["modelValue","options"])])):Me("",!0),z("div",Y8,[xe(NS,{id:"chargemode-"+_.chargepoint.name,modelValue:a.value,"onUpdate:modelValue":y[4]||(y[4]=S=>a.value=S),class:"chargemodes mt-3 mb-3",options:Object.keys(ie(yr)).map(S=>({text:ie(yr)[S].name,value:S,color:ie(yr)[S].color,icon:ie(yr)[S].icon,active:ie(yr)[S].mode==_.chargepoint.chargeMode}))},null,8,["id","modelValue","options"]),_.chargepoint.power>0?(ae(),Re(W8,{key:0,chargepoint:_.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(_.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}),_.chargepoint.isSocConfigured?(ae(),Re(mt,{key:1,heading:"Reichweite:",class:"grid-col-4 grid-right"},{default:Ie(()=>[st(ke(ie(dt)[e.chargepoint.connectedVehicle]?Math.round(ie(dt)[e.chargepoint.connectedVehicle].range):0)+" km ",1)]),_:1})):Me("",!0),n.value?(ae(),Ee("div",K8,[y[10]||(y[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":y[5]||(y[5]=S=>u.value=S),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:w})])):Me("",!0),y[12]||(y[12]=z("hr",{class:"divider grid-col-12"},null,-1)),ie(Ct).active?(ae(),Re(mt,{key:3,heading:"Strompreis:",class:"grid-col-4 grid-left"},{default:Ie(()=>[z("span",{style:ht(f.value)},ke(ie(Ct).etCurrentPriceString),5)]),_:1})):Me("",!0),ie(r).etActive?(ae(),Re(mt,{key:4,heading:"max. Preis:",class:"grid-col-4"},{default:Ie(()=>[z("span",{type:"button",onClick:y[6]||(y[6]=S=>s.value=!s.value)},[st(ke(e.chargepoint.etActive?(Math.round(e.chargepoint.etMaxPrice*10)/10).toFixed(1)+b.value:"-")+" ",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"},[ie(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:y[7]||(y[7]=S=>s.value=!1)},y[11]||(y[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-42dac082"]]),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 Dt(){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=Dt();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=Dt();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=Dt(),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=Dt();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=Dt(),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 Dt().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=Dt();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=Dt(),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=Dt(),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=Dt(),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=Dt();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=Dt(),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,S=-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===$&&S.push(ne)}):S.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&&S.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||S.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(S.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=_?S.length/p.grid.rows:S.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===Dt())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=Dt(),{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,S=s.resistanceRatio;if(s.touchReleaseOnEdges&&(S=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)**S))):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,S=ba.longSwipesMs){if(!a.longSwipes){e.slideTo(e.activeIndex);return}e.swipeDirection==="next"&&(y>=a.longSwipesRatio?e.slideTo(a.rewind&&e.isEnd?w:b+S):e.slideTo(b)),e.swipeDirection==="prev"&&(y>1-a.longSwipesRatio?e.slideTo(b+S):_!==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+S):e.slideTo(b):(e.swipeDirection==="next"&&e.slideTo(w!==null?w:b+S),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 S=t.params.enabled,T=t.params.loop;Object.assign(t,{allowTouchMove:t.params.allowTouchMove,allowSlideNext:t.params.allowSlideNext,allowSlidePrev:t.params.allowSlidePrev}),v&&!S?t.disable():!v&&S&&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=Dt(),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,[Yt(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,[Yt(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(()=>[ie(Ct).active?(ae(),Re(un,{key:0,bgcolor:"var(--color-menu)"},{default:Ie(()=>[st("Strompreis: "+ke(ie(Ct).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([ie(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 Ot.pvBatteryPriority==u?"btn-success":"btn-secondary"}function a(u){n.value.chargeMode=u}function o(u){n.value.isLocked=u}function l(u){Ot.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 "))])])]),ie(Ot).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(Ot.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(ie(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==ie(Hr).pv_charging&&ie(Ot).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,[ie(_e).showClock=="buttonbar"?(ae(),Ee("span",I4,ke(ie(BS)(ie(gg))),1)):Me("",!0),(ae(!0),Ee(Ye,null,ft(ie(Ge),(n,s)=>(ae(),Re(S4,{key:s,chargepoint:n,"charge-point-count":Object.values(ie(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 Pt.value.forEach(i=>{s+=i.dailyYieldImport}),s});return(s,i)=>ie(Ot).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:ie(Ot).batterySoc},null,8,["soc"])]),_:1}),xe(mt,{heading:"Geladen:",class:"grid-col-4"},{default:Ie(()=>[z("span",null,ke(ie(Mi)(n.value)),1)]),_:1}),xe(mt,{heading:"Geliefert",class:"grid-right grid-col-4"},{default:Ie(()=>[z("span",null,ke(ie(Mi)(ie(ot).batOut.energy)),1)]),_:1})]),ie(Pt).size>1?(ae(),Ee("div",$4,[(ae(!0),Ee(Ye,null,ft(ie(Pt),([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(ie(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(ie(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=Ut({});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(ie(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(ie(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 Ct.etPriceList.size>0&&Ct.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&&v.getMinutes()==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=It("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.getMinutes()==0?C.getHours()%6==0?"2":"0.5":"0"),_.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 S=v.selectAll("ttip").data(s.value).enter().append("g").attr("class","ttarea");S.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=S.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(()=>[ie(Ct).active?(ae(),Re(un,{key:0,bgcolor:"var(--color-charging)"},{default:Ie(()=>[st(ke(ie(Ct).etCurrentPriceString),1)]),_:1})):Me("",!0),ie(Ct).active?(ae(),Re(un,{key:1,bgcolor:"var(--color-menu)"},{default:Ie(()=>[st(ke(ie(Ct).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-82db80a3"]]),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(ie(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(()=>[ie(ot).pv.power>0?(ae(),Re(un,{key:0,bgcolor:"var(--color-pv)"},{default:Ie(()=>[st(ke(ie(Yr)(ie(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([ie(jn)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[Yt(i.$slots,"item1",{},void 0,!0)],2)]),z("swiper-slide",null,[z("div",{class:rt([ie(jn)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[Yt(i.$slots,"item2",{},void 0,!0)],2)]),z("swiper-slide",null,[z("div",{class:rt([ie(jn)?"mb-0":"mb-5","flex-fill d-flex align-items-stretch"])},[Yt(i.$slots,"item3",{},void 0,!0)],2)])],8,g6)]))}}),b6=Je(m6,[["__scopeId","data-v-17424929"]]);function y6(t,e){t=="openWB/graph/boolDisplayLiveGraph"?Ot.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(()=>qt.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&&!Pt.value.has(r)){console.warn("Invalid battery index: ",r);return}t=="openWB/bat/config/configured"?Ot.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"?Ot.batterySoc=+e:t=="openWB/bat/get/daily_exported"?ot.batOut.energy=+e:t=="openWB/bat/get/daily_imported"?tt.batIn.energy=+e:r&&Pt.value.has(r)&&(t.match(/^openwb\/bat\/[0-9]+\/get\/daily_exported$/i)?Pt.value.get(r).dailyYieldExport=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/daily_imported$/i)?Pt.value.get(r).dailyYieldImport=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/exported$/i)?Pt.value.get(r).exported=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/fault_state$/i)?Pt.value.get(r).faultState=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/fault_str$/i)?Pt.value.get(r).faultStr=e:t.match(/^openwb\/bat\/[0-9]+\/get\/imported$/i)?Pt.value.get(r).imported=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/power$/i)?Pt.value.get(r).power=+e:t.match(/^openwb\/bat\/[0-9]+\/get\/soc$/i)&&(Pt.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"){const r=JSON.parse(e);r.type==null?Ct.active=!1:(Ct.active=!0,Ct.etProvider=JSON.parse(e).name),r.configuration&&r.configuration.country!=null&&(Ot.country=r.configuration.country)}else if(t=="openWB/optional/et/get/prices"){const r=JSON.parse(e);Ct.etPriceList=new Map,Object.keys(r).forEach(n=>{Ct.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")Ot.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,jt["cp"+r]?(jt["cp"+r].name=n.name,jt["cp"+r].icon=n.name):jt["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(),jt["sh"+r].name=e.toString(),jt["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=Ut([]);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==Ot.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"&&(Ot.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":Ot.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":Pt.value.has(r.id)||RS(r.id),Pt.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) diff --git a/packages/modules/web_themes/colors/web/assets/index-BpjSwEH1.css b/packages/modules/web_themes/colors/web/assets/index-Lu8hCskc.css similarity index 99% rename from packages/modules/web_themes/colors/web/assets/index-BpjSwEH1.css rename to packages/modules/web_themes/colors/web/assets/index-Lu8hCskc.css index 0893edd8f8..aa6ebe98ef 100644 --- a/packages/modules/web_themes/colors/web/assets/index-BpjSwEH1.css +++ b/packages/modules/web_themes/colors/web/assets/index-Lu8hCskc.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-8d58a519]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-8d58a519]{color:var(--color-pv);font-size:var(--font-settings);font-weight:700}.subconfigstack[data-v-8d58a519]{display:grid;grid-template-columns:repeat(2,auto);width:100%}.subconfig[data-v-8d58a519]{justify-content:end;align-items:baseline;margin-left:1em;width:100%}.subconfigtitle[data-v-8d58a519]{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-67afb74e]{color:var(--color-charging)}.fa-circle-check[data-v-67afb74e]{color:var(--color-menu)}.settingsheader[data-v-67afb74e]{color:var(--color-charging);font-size:16px;font-weight:700}.providername[data-v-67afb74e]{color:var(--color-axis);font-size:16px}.jumpbutton[data-v-67afb74e]{background-color:var(--color-menu);color:var(--color-bg);border:0;font-size:var(--font-settings-button)}.confirmButton[data-v-67afb74e]{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-42dac082]{color:var(--color-evu)}.fa-clock[data-v-42dac082]{color:var(--color-charging)}.fa-car[data-v-42dac082],.fa-circle-check[data-v-42dac082]{color:var(--color-menu)}.socEditor[data-v-42dac082],.priceEditor[data-v-42dac082]{border:1px solid var(--color-menu);justify-self:stretch}.chargemodes[data-v-42dac082]{grid-column:1 / 13;justify-self:center}.chargeinfo[data-v-42dac082]{display:grid;grid-template-columns:repeat(12,auto);justify-content:space-between}.divider[data-v-42dac082]{border-top:1px solid var(--color-fg);width:100%}.carSelector[data-v-42dac082]{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-82db80a3]{background-color:var(--color-charging);font-weight:400}.providerWbBadge[data-v-82db80a3]{background-color:var(--color-menu);font-weight:400}.grapharea[data-v-82db80a3]{grid-column-start:1;grid-column-end:13;width:100%;object-fit:cover;max-height:100%;justify-items:stretch}.pricefigure[data-v-82db80a3]{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}/*! +@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-8d58a519]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-8d58a519]{color:var(--color-pv);font-size:var(--font-settings);font-weight:700}.subconfigstack[data-v-8d58a519]{display:grid;grid-template-columns:repeat(2,auto);width:100%}.subconfig[data-v-8d58a519]{justify-content:end;align-items:baseline;margin-left:1em;width:100%}.subconfigtitle[data-v-8d58a519]{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-67afb74e]{color:var(--color-charging)}.fa-circle-check[data-v-67afb74e]{color:var(--color-menu)}.settingsheader[data-v-67afb74e]{color:var(--color-charging);font-size:16px;font-weight:700}.providername[data-v-67afb74e]{color:var(--color-axis);font-size:16px}.jumpbutton[data-v-67afb74e]{background-color:var(--color-menu);color:var(--color-bg);border:0;font-size:var(--font-settings-button)}.confirmButton[data-v-67afb74e]{font-size:var(--font-settings-button)}.chargeConfigSelect[data-v-345743f0]{background:var(--color-bg);color:var(--color-fg)}.heading[data-v-345743f0]{color:var(--color-devices);font-size:var(--font-settings);font-weight:700}.subconfigstack[data-v-345743f0]{display:grid;grid-template-columns:repeat(2,auto);width:100%}.subconfig[data-v-345743f0]{justify-content:end;align-items:baseline;margin-left:1em;width:100%}.subconfigtitle[data-v-345743f0]{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-42dac082]{color:var(--color-evu)}.fa-clock[data-v-42dac082]{color:var(--color-charging)}.fa-car[data-v-42dac082],.fa-circle-check[data-v-42dac082]{color:var(--color-menu)}.socEditor[data-v-42dac082],.priceEditor[data-v-42dac082]{border:1px solid var(--color-menu);justify-self:stretch}.chargemodes[data-v-42dac082]{grid-column:1 / 13;justify-self:center}.chargeinfo[data-v-42dac082]{display:grid;grid-template-columns:repeat(12,auto);justify-content:space-between}.divider[data-v-42dac082]{border-top:1px solid var(--color-fg);width:100%}.carSelector[data-v-42dac082]{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-82db80a3]{background-color:var(--color-charging);font-weight:400}.providerWbBadge[data-v-82db80a3]{background-color:var(--color-menu);font-weight:400}.grapharea[data-v-82db80a3]{grid-column-start:1;grid-column-end:13;width:100%;object-fit:cover;max-height:100%;justify-items:stretch}.pricefigure[data-v-82db80a3]{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/index.html b/packages/modules/web_themes/colors/web/index.html index 9a7a6f48b0..f81417801a 100644 --- a/packages/modules/web_themes/colors/web/index.html +++ b/packages/modules/web_themes/colors/web/index.html @@ -24,8 +24,8 @@ openWB - - + + diff --git a/packages/modules/web_themes/koala/source/README.md b/packages/modules/web_themes/koala/source/README.md index d31807a2b0..37f0e0a771 100644 --- a/packages/modules/web_themes/koala/source/README.md +++ b/packages/modules/web_themes/koala/source/README.md @@ -2,6 +2,7 @@ Koala web theme for openWB + ## Install the dependencies ```bash 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 15659bf6e7..7d0c670702 100644 --- a/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue +++ b/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue @@ -78,7 +78,7 @@ function measure() { onMounted(() => { measure(); - window.addEventListener('resize', measure); + window.addEventListener('resize', measure, {passive: true}); }); onBeforeUnmount(() => { @@ -92,17 +92,17 @@ const groupSize = computed(() => { const maxGroup = Math.max( 1, Math.floor( - (carouselWidth.value - (showArrows.value ? carouselPadding.value : 50)) / + (carouselWidth.value - 2 - (showArrows.value ? carouselPadding.value : 50)) / itemWidth.value, ), ); // Spezialfall: Alle passen nebeneinander if ( props.items.length > maxGroup && - props.items.length <= maxGroup * 2 && + props.items.length <= maxGroup + 1 && props.items.length - maxGroup === 1 ) { - if (props.items.length * itemWidth.value <= carouselWidth.value) { + if (props.items.length * itemWidth.value < carouselWidth.value) { return props.items.length; } } @@ -126,6 +126,7 @@ watch(groupedItems, (groups) => { if (currentSlide.value > groups.length - 1) { currentSlide.value = Math.max(0, groups.length - 1); } + measure(); }); diff --git a/packages/modules/web_themes/koala/source/src/components/ChargePointEcoSettings.vue b/packages/modules/web_themes/koala/source/src/components/ChargePointEcoSettings.vue index 23e56982b0..ec5533ae10 100644 --- a/packages/modules/web_themes/koala/source/src/components/ChargePointEcoSettings.vue +++ b/packages/modules/web_themes/koala/source/src/components/ChargePointEcoSettings.vue @@ -20,7 +20,7 @@ class="q-mt-md" /> -
Anzahl Phasen
+
Anzahl Phasen bei Überschuss
Number(homePower.value.value) < 0); const pvPower = computed(() => mqttStore.getPvPower('object') as ValueObject); const pvProduction = computed(() => { const value = Number(pvPower.value.value); - return Math.abs(value) >= 50; + return value < 0; +}); +const pvConsumption = computed(() => { + const value = Number(pvPower.value.value); + return value > 0; }); const connectedChargePoints = computed(() => mqttStore.chargePointIds); @@ -284,7 +288,7 @@ const svgComponents = computed((): FlowComponent[] => { base: 'pv', valueLabel: 'fill-success', animated: pvProduction.value, - animatedReverse: false, + animatedReverse: pvConsumption.value, }, position: { row: 1, column: 0 }, label: ['PV', absoluteValueObject(pvPower.value).textValue], diff --git a/packages/modules/web_themes/koala/web/assets/ErrorNotFound-D4_c-LqI.js b/packages/modules/web_themes/koala/web/assets/ErrorNotFound-Cr4NEN_j.js similarity index 88% rename from packages/modules/web_themes/koala/web/assets/ErrorNotFound-D4_c-LqI.js rename to packages/modules/web_themes/koala/web/assets/ErrorNotFound-Cr4NEN_j.js index 7fe5c80b6a..4d32530c35 100644 --- a/packages/modules/web_themes/koala/web/assets/ErrorNotFound-D4_c-LqI.js +++ b/packages/modules/web_themes/koala/web/assets/ErrorNotFound-Cr4NEN_j.js @@ -1 +1 @@ -import{C as o,a3 as s,F as l,a4 as t,H as n,Q as r}from"./index-CmDneGoC.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-BH3GZeBO.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-BDkTNmuK.js b/packages/modules/web_themes/koala/web/assets/IndexPage-BDkTNmuK.js deleted file mode 100644 index 034cc40a16..0000000000 --- a/packages/modules/web_themes/koala/web/assets/IndexPage-BDkTNmuK.js +++ /dev/null @@ -1,28 +0,0 @@ -var eg=Object.defineProperty;var tg=(t,e,n)=>e in t?eg(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ee=(t,e,n)=>tg(t,typeof e!="symbol"?e+"":e,n);import{i as Lo,e as Pn,K as Pd,g as Ye,r as N,a as g,o as qt,m as hn,j as sn,R as Td,h as S,J as xe,t as mi,L as aa,M as jr,N as Vt,c as Be,w as fe,q as ra,s as la,d as it,x as ng,O as Id,P as La,S as zn,T as Ra,n as Dd,U as io,V as Ro,W as ig,X as As,Y as sg,Z as og,v as ua,l as ag,y as rg,_ as lg,$ as Fl,a0 as Ur,a1 as qs,Q as ke,C as be,a2 as Od,a3 as Q,F as M,a4 as q,a5 as De,a6 as Ke,a7 as Re,a8 as le,I as Ve,a9 as se,aa as Vd,ab as ug,B as cg,ac as Tn,u as bt,ad as Ed,ae as dg,af as Ad,z as fg,ag as qd,ah as hg,ai as In,E as X,G as A,H as C,aj as Pe,ak as mg,al as ln,am as zi,an as Vi,ao as Ld,ap as gg,p as Rd,aq as si,ar as Bn,as as vg,f as pg,k as zl,at as Yr,au as Zr,av as bg,aw as ls,ax as yg,ay as Bl,az as Io,aA as xg,aB as wg,aC as _g,aD as Sg,aE as Nl,aF as Wl,aG as kg,aH as Cg,aI as Mg,aJ as Xr,aK as $d,aL as Pg}from"./index-CmDneGoC.js";import{y as Ps,j as Ls,Q as Tg,z as Hl,A as Ig,B as jl,u as mn,c as gn,_ as mt,o as gi,h as Fd,s as zd,C as Dg,D as Ul,E as Kr,i as Bd,F as Og,G as Nd,H as Vg,I as Eg,k as Wd,J as Hd,K as Yl,L as Ag,M as Zl,g as jd,N as qg,O as Lg,P as ca,w as xn,p as Bi,q as Ni,r as Xn,v as Wi,l as Rg,m as $g,R as Fg,S as Xl,t as At,U as zg,V as Bg,T as Ng,d as Ii,x as Vn}from"./_plugin-vue_export-helper-BTeormdj.js";import{u as Fe}from"./mqtt-store-CdQu5WWJ.js";let $a,so=0;const Pt=new Array(256);for(let t=0;t<256;t++)Pt[t]=(t+256).toString(16).substring(1);const Wg=(()=>{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}})(),Kl=4096;function mr(){($a===void 0||so+16>Kl)&&(so=0,$a=Wg(Kl));const t=Array.prototype.slice.call($a,so,so+=16);return t[6]=t[6]&15|64,t[8]=t[8]&63|128,Pt[t[0]]+Pt[t[1]]+Pt[t[2]]+Pt[t[3]]+"-"+Pt[t[4]]+Pt[t[5]]+"-"+Pt[t[6]]+Pt[t[7]]+"-"+Pt[t[8]]+Pt[t[9]]+"-"+Pt[t[10]]+Pt[t[11]]+Pt[t[12]]+Pt[t[13]]+Pt[t[14]]+Pt[t[15]]}let Hg=0;const jg=["click","keydown"],Ug={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${Hg++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function Yg(t,e,n,i){const s=Lo(Pd,Pn);if(s===Pn)return console.error("QTab/QRouteTab component needs to be child of QTabs"),Pn;const{proxy:o}=Ye(),a=N(null),r=N(null),l=N(null),u=g(()=>t.disable===!0||t.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},t.ripple===!0?{}:t.ripple)),c=g(()=>s.currentModel.value===t.name),d=g(()=>"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=g(()=>"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=g(()=>t.disable===!0||s.hasFocus.value===!0||c.value===!1&&s.hasActiveTab.value===!0?-1:t.tabindex||0);function m(x,w){if(w!==!0&&x?.qAvoidFocus!==!0&&a.value?.focus(),t.disable!==!0){s.updateModel({name:t.name}),n("click",x);return}}function p(x){aa(x,[13,32])?m(x,!0):jr(x)!==!0&&x.keyCode>=35&&x.keyCode<=40&&x.altKey!==!0&&x.metaKey!==!0&&s.onKbdNavigate(x.keyCode,o.$el)===!0&&Vt(x),n("keydown",x)}function v(){const x=s.tabProps.value.narrowIndicator,w=[],y=S("div",{ref:l,class:["q-tab__indicator",s.tabProps.value.indicatorClass]});t.icon!==void 0&&w.push(S(xe,{class:"q-tab__icon",name:t.icon})),t.label!==void 0&&w.push(S("div",{class:"q-tab__label"},t.label)),t.alert!==!1&&w.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}`:"")})),x===!0&&w.push(y);const V=[S("div",{class:"q-focus-helper",tabindex:-1,ref:a}),S("div",{class:f.value},mi(e.default,w))];return x===!1&&V.push(y),V}const b={name:g(()=>t.name),rootRef:r,tabIndicatorRef:l,routeData:i};qt(()=>{s.unregisterTab(b)}),hn(()=>{s.registerTab(b)});function _(x,w){const y={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:m,onKeydown:p,...w};return sn(S(x,y,v()),[[Td,u.value]])}return{renderTab:_,$tabs:s}}const Fa=Be({name:"QTab",props:Ug,emits:jg,setup(t,{slots:e,emit:n}){const{renderTab:i}=Yg(t,e,n);return()=>i("div")}});let Rs=!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,Rs=t.scrollLeft>=0,t.remove()}function Zg(t,e,n){const i=n===!0?["left","right"]:["top","bottom"];return`absolute-${e===!0?i[0]:i[1]}${t?` text-${t}`:""}`}const Xg=["left","center","right","justify"],Kg=Be({name:"QTabs",props:{modelValue:[Number,String],align:{type:String,default:"center",validator:t=>Xg.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}=Ye(),{$q:s}=i,{registerTick:o}=Ps(),{registerTick:a}=Ps(),{registerTick:r}=Ps(),{registerTimeout:l,removeTimeout:u}=Ls(),{registerTimeout:c,removeTimeout:d}=Ls(),f=N(null),h=N(null),m=N(t.modelValue),p=N(!1),v=N(!0),b=N(!1),_=N(!1),x=[],w=N(0),y=N(!1);let V=null,E=null,L;const D=g(()=>({activeClass:t.activeClass,activeColor:t.activeColor,activeBgColor:t.activeBgColor,indicatorClass:Zg(t.indicatorColor,t.switchIndicator,t.vertical),narrowIndicator:t.narrowIndicator,inlineLabel:t.inlineLabel,noCaps:t.noCaps})),T=g(()=>{const $=w.value,Z=m.value;for(let K=0;K<$;K++)if(x[K].name.value===Z)return!0;return!1}),R=g(()=>`q-tabs__content--align-${p.value===!0?"left":_.value===!0?"justify":t.align}`),I=g(()=>`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=g(()=>"q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position "+R.value+(t.contentClass!==void 0?` ${t.contentClass}`:"")),z=g(()=>t.vertical===!0?{container:"height",content:"offsetHeight",scroll:"scrollHeight"}:{container:"width",content:"offsetWidth",scroll:"scrollWidth"}),Y=g(()=>t.vertical!==!0&&s.lang.rtl===!0),j=g(()=>Rs===!1&&Y.value===!0);fe(Y,P),fe(()=>t.modelValue,$=>{ee({name:$,setCurrent:!0,skipEmit:!0})}),fe(()=>t.outsideArrows,U);function ee({name:$,setCurrent:Z,skipEmit:K}){m.value!==$&&(K!==!0&&t["onUpdate:modelValue"]!==void 0&&n("update:modelValue",$),(Z===!0||t["onUpdate:modelValue"]===void 0)&&(ce(m.value,$),m.value=$))}function U(){o(()=>{f.value&&re({width:f.value.offsetWidth,height:f.value.offsetHeight})})}function re($){if(z.value===void 0||h.value===null)return;const Z=$[z.value.container],K=Math.min(h.value[z.value.scroll],Array.prototype.reduce.call(h.value.children,(He,Me)=>He+(Me[z.value.content]||0),0)),Oe=Z>0&&K>Z;p.value=Oe,Oe===!0&&a(P),_.value=ZHe.name.value===$):null,Oe=Z!=null&&Z!==""?x.find(He=>He.name.value===Z):null;if(Le===!0)Le=!1;else if(K&&Oe){const He=K.tabIndicatorRef.value,Me=Oe.tabIndicatorRef.value;V!==null&&(clearTimeout(V),V=null),He.style.transition="none",He.style.transform="none",Me.style.transition="none",Me.style.transform="none";const Ie=He.getBoundingClientRect(),rt=Me.getBoundingClientRect();Me.style.transform=t.vertical===!0?`translate3d(0,${Ie.top-rt.top}px,0) scale3d(1,${rt.height?Ie.height/rt.height:1},1)`:`translate3d(${Ie.left-rt.left}px,0,0) scale3d(${rt.width?Ie.width/rt.width:1},1,1)`,r(()=>{V=setTimeout(()=>{V=null,Me.style.transition="transform .25s cubic-bezier(.4, 0, .2, 1)",Me.style.transform="none"},70)})}Oe&&p.value===!0&&O(Oe.rootRef.value)}function O($){const{left:Z,width:K,top:Oe,height:He}=h.value.getBoundingClientRect(),Me=$.getBoundingClientRect();let Ie=t.vertical===!0?Me.top-Oe:Me.left-Z;if(Ie<0){h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.floor(Ie),P();return}Ie+=t.vertical===!0?Me.height-He:Me.width-K,Ie>0&&(h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.ceil(Ie),P())}function P(){const $=h.value;if($===null)return;const Z=$.getBoundingClientRect(),K=t.vertical===!0?$.scrollTop:Math.abs($.scrollLeft);Y.value===!0?(v.value=Math.ceil(K+Z.width)<$.scrollWidth-1,b.value=K>0):(v.value=K>0,b.value=t.vertical===!0?Math.ceil(K+Z.height)<$.scrollHeight:Math.ceil(K+Z.width)<$.scrollWidth)}function J($){E!==null&&clearInterval(E),E=setInterval(()=>{G($)===!0&&B()},5)}function ue(){J(j.value===!0?Number.MAX_SAFE_INTEGER:0)}function he(){J(j.value===!0?0:Number.MAX_SAFE_INTEGER)}function B(){E!==null&&(clearInterval(E),E=null)}function te($,Z){const K=Array.prototype.filter.call(h.value.children,rt=>rt===Z||rt.matches&&rt.matches(".q-tab.q-focusable")===!0),Oe=K.length;if(Oe===0)return;if($===36)return O(K[0]),K[0].focus(),!0;if($===35)return O(K[Oe-1]),K[Oe-1].focus(),!0;const He=$===(t.vertical===!0?38:37),Me=$===(t.vertical===!0?40:39),Ie=He===!0?-1:Me===!0?1:void 0;if(Ie!==void 0){const rt=Y.value===!0?-1:1,st=K.indexOf(Z)+Ie*rt;return st>=0&&stj.value===!0?{get:$=>Math.abs($.scrollLeft),set:($,Z)=>{$.scrollLeft=-Z}}:t.vertical===!0?{get:$=>$.scrollTop,set:($,Z)=>{$.scrollTop=Z}}:{get:$=>$.scrollLeft,set:($,Z)=>{$.scrollLeft=Z}});function G($){const Z=h.value,{get:K,set:Oe}=_e.value;let He=!1,Me=K(Z);const Ie=$=$)&&(He=!0,Me=$),Oe(Z,Me),P(),He}function qe($,Z){for(const K in $)if($[K]!==Z[K])return!1;return!0}function Qe(){let $=null,Z={matchedLen:0,queryDiff:9999,hrefLen:0};const K=x.filter(Ie=>Ie.routeData?.hasRouterLink.value===!0),{hash:Oe,query:He}=i.$route,Me=Object.keys(He).length;for(const Ie of K){const rt=Ie.routeData.exact.value===!0;if(Ie.routeData[rt===!0?"linkIsExactActive":"linkIsActive"].value!==!0)continue;const{hash:st,query:xt,matched:Rt,href:W}=Ie.routeData.resolvedLink.value,me=Object.keys(xt).length;if(rt===!0){if(st!==Oe||me!==Me||qe(He,xt)===!1)continue;$=Ie.name.value;break}if(st!==""&&st!==Oe||me!==0&&qe(xt,He)===!1)continue;const Se={matchedLen:Rt.length,queryDiff:Me-me,hrefLen:W.length-st.length};if(Se.matchedLen>Z.matchedLen){$=Ie.name.value,Z=Se;continue}else if(Se.matchedLen!==Z.matchedLen)continue;if(Se.queryDiffZ.hrefLen&&($=Ie.name.value,Z=Se)}if($===null&&x.some(Ie=>Ie.routeData===void 0&&Ie.name.value===m.value)===!0){Le=!1;return}ee({name:$,setCurrent:!0})}function Nt($){if(u(),y.value!==!0&&f.value!==null&&$.target&&typeof $.target.closest=="function"){const Z=$.target.closest(".q-tab");Z&&f.value.contains(Z)===!0&&(y.value=!0,p.value===!0&&O(Z))}}function ft(){l(()=>{y.value=!1},30)}function gt(){Dt.avoidRouteWatcher===!1?c(Qe):d()}function yt(){if(L===void 0){const $=fe(()=>i.$route.fullPath,gt);L=()=>{$(),L=void 0}}}function Je($){x.push($),w.value++,U(),$.routeData===void 0||i.$route===void 0?c(()=>{if(p.value===!0){const Z=m.value,K=Z!=null&&Z!==""?x.find(Oe=>Oe.name.value===Z):null;K&&O(K.rootRef.value)}}):(yt(),$.routeData.hasRouterLink.value===!0&>())}function wt($){x.splice(x.indexOf($),1),w.value--,U(),L!==void 0&&$.routeData!==void 0&&(x.every(Z=>Z.routeData===void 0)===!0&&L(),gt())}const Dt={currentModel:m,tabProps:D,hasFocus:y,hasActiveTab:T,registerTab:Je,unregisterTab:wt,verifyRouteModel:gt,updateModel:ee,onKbdNavigate:te,avoidRouteWatcher:!1};ng(Pd,Dt);function Yt(){V!==null&&clearTimeout(V),B(),L?.()}let Lt,Le;return qt(Yt),ra(()=>{Lt=L!==void 0,Yt()}),la(()=>{Lt===!0&&(yt(),Le=!0,gt()),U()}),()=>S("div",{ref:f,class:I.value,role:"tablist",onFocusin:Nt,onFocusout:ft},[S(Tg,{onResize:re}),S("div",{ref:h,class:H.value,onScroll:P},it(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 Qg(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 Gg=Id({name:"touch-swipe",beforeMount(t,{value:e,arg:n,modifiers:i}){if(i.mouse!==!0&&zn.has.touch!==!0)return;const s=i.mouseCapture===!0?"Capture":"",o={handler:e,sensitivity:Qg(n),direction:Hl(i),noop:Dd,mouseStart(a){jl(a,o)&&ig(a)&&(io(o,"temp",[[document,"mousemove","move",`notPassive${s}`],[document,"mouseup","end","notPassiveCapture"]]),o.start(a,!0))},touchStart(a){if(jl(a,o)){const r=a.target;io(o,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","notPassiveCapture"],[r,"touchend","end","notPassiveCapture"]]),o.start(a)}},start(a,r){zn.is.firefox===!0&&Ra(t,!0);const l=Ro(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){Vt(a);return}const r=Date.now()-o.event.time;if(r===0)return;const l=Ro(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&&m>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?(Vt(a),o.event.mouse===!0&&(document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),Ig(),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&&(La(o,"temp"),zn.is.firefox===!0&&Ra(t,!1),o.styleCleanup?.(!0),a!==void 0&&o.event.dir!==!1&&Vt(a),o.event=void 0)}};if(t.__qtouchswipe=o,i.mouse===!0){const a=i.mouseCapture===!0||i.mousecapture===!0?"Capture":"";io(o,"main",[[t,"mousedown","mouseStart",`passive${a}`]])}zn.has.touch===!0&&io(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=Hl(e.modifiers))},beforeUnmount(t){const e=t.__qtouchswipe;e!==void 0&&(La(e,"main"),La(e,"temp"),zn.is.firefox===!0&&Ra(t,!1),e.styleCleanup?.(),delete t.__qtouchswipe)}});function Jg(){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 Ud={name:{required:!0},disable:Boolean},Ql={setup(t,{slots:e}){return()=>S("div",{class:"q-panel scroll",role:"tabpanel"},it(e.default))}},Yd={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},Zd=["update:modelValue","beforeTransition","transition"];function Xd(){const{props:t,emit:e,proxy:n}=Ye(),{getCache:i}=Jg(),{registerTimeout:s}=Ls();let o,a;const r=N(null),l={value:null};function u(z){const Y=t.vertical===!0?"up":"left";L((n.$q.lang.rtl===!0?-1:1)*(z.direction===Y?1:-1))}const c=g(()=>[[Gg,u,void 0,{horizontal:t.vertical!==!0,vertical:t.vertical,mouse:!0}]]),d=g(()=>t.transitionPrev||`slide-${t.vertical===!0?"down":"right"}`),f=g(()=>t.transitionNext||`slide-${t.vertical===!0?"up":"left"}`),h=g(()=>`--q-transition-duration: ${t.transitionDuration}ms`),m=g(()=>typeof t.modelValue=="string"||typeof t.modelValue=="number"?t.modelValue:String(t.modelValue)),p=g(()=>({include:t.keepAliveInclude,exclude:t.keepAliveExclude,max:t.keepAliveMax})),v=g(()=>t.keepAliveInclude!==void 0||t.keepAliveExclude!==void 0);fe(()=>t.modelValue,(z,Y)=>{const j=w(z)===!0?y(z):-1;a!==!0&&E(j===-1?0:j{e("transition",z,Y)},t.transitionDuration))});function b(){L(1)}function _(){L(-1)}function x(z){e("update:modelValue",z)}function w(z){return z!=null&&z!==""}function y(z){return o.findIndex(Y=>Y.props.name===z&&Y.props.disable!==""&&Y.props.disable!==!0)}function V(){return o.filter(z=>z.props.disable!==""&&z.props.disable!==!0)}function E(z){const Y=z!==0&&t.animated===!0&&l.value!==-1?"q-transition--"+(z===-1?d.value:f.value):null;r.value!==Y&&(r.value=Y)}function L(z,Y=l.value){let j=Y+z;for(;j!==-1&&j{a=!1});return}j+=z}t.infinite===!0&&o.length!==0&&Y!==-1&&Y!==o.length&&L(z,z===-1?o.length:-1)}function D(){const z=y(t.modelValue);return l.value!==z&&(l.value=z),!0}function T(){const z=w(t.modelValue)===!0&&D()&&o[l.value];return t.keepAlive===!0?[S(og,p.value,[S(v.value===!0?i(m.value,()=>({...Ql,name:m.value})):Ql,{key:m.value,style:h.value},()=>z)])]:[S("div",{class:"q-panel scroll",style:h.value,key:m.value,role:"tabpanel"},[z])]}function R(){if(o.length!==0)return t.animated===!0?[S(As,{name:r.value},T)]:T()}function I(z){return o=sg(it(z.default,[])).filter(Y=>Y.props!==null&&Y.props.slot===void 0&&w(Y.props.name)===!0),o.length}function H(){return o}return Object.assign(n,{next:b,previous:_,goTo:x}),{panelIndex:l,panelDirectives:c,updatePanelsList:I,updatePanelIndex:D,getPanelContent:R,getEnabledPanels:V,getPanels:H,isValidPanelName:w,keepAliveProps:p,needsUniqueKeepAliveWrapper:v,goToPanelByOffset:L,goToPanel:x,nextPanel:b,previousPanel:_}}const za=Be({name:"QTabPanel",props:Ud,setup(t,{slots:e}){return()=>S("div",{class:"q-tab-panel",role:"tabpanel"},it(e.default))}}),ev=Be({name:"QTabPanels",props:{...Yd,...mn},emits:Zd,setup(t,{slots:e}){const n=Ye(),i=gn(t,n.proxy.$q),{updatePanelsList:s,getPanelContent:o,panelDirectives:a}=Xd(),r=g(()=>"q-tab-panels q-panel-parent"+(i.value===!0?" q-tab-panels--dark q-dark":""));return()=>(s(e),ua("div",{class:r.value},o(),"pan",t.swipeable,()=>a.value))}}),tv=Be({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(t,{slots:e}){const{proxy:{$q:n}}=Ye(),i=Lo(ag,Pn);if(i===Pn)return console.error("QPage needs to be a deep child of QLayout"),Pn;if(Lo(rg,Pn)===Pn)return console.error("QPage needs to be child of QPageContainer"),Pn;const o=g(()=>{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=g(()=>`q-page${t.padding===!0?" q-layout-padding":""}`);return()=>S("main",{class:a.value,style:o.value},it(e.default))}}),Kd=Be({name:"QCarouselSlide",props:{...Ud,imgSrc:String},setup(t,{slots:e}){const n=g(()=>t.imgSrc?{backgroundImage:`url("${t.imgSrc}")`}:{});return()=>S("div",{class:"q-carousel__slide",style:n.value},it(e.default))}}),nv=Be({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=g(()=>`q-carousel__control absolute absolute-${t.position}`),i=g(()=>({margin:`${t.offset[1]}px ${t.offset[0]}px`}));return()=>S("div",{class:n.value,style:i.value},it(e.default))}});let us=0;const Qd={fullscreen:Boolean,noRouteFullscreenExit:Boolean},Gd=["update:fullscreen","fullscreen"];function Jd(){const t=Ye(),{props:e,emit:n,proxy:i}=t;let s,o,a;const r=N(!1);lg(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),us++,us===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,us=Math.max(0,us-1),us===0&&(document.body.classList.remove("q-body--fullscreen-mixin"),i.$el.scrollIntoView!==void 0&&setTimeout(()=>{i.$el.scrollIntoView()})))}return Ur(()=>{o=document.createElement("span")}),hn(()=>{e.fullscreen===!0&&u()}),qt(c),Object.assign(i,{toggleFullscreen:l,setFullscreen:u,exitFullscreen:c}),{inFullscreen:r,toggleFullscreen:l}}const iv=["top","right","bottom","left"],sv=["regular","flat","outline","push","unelevated"],ef=Be({name:"QCarousel",props:{...mn,...Yd,...Qd,transitionPrev:{type:String,default:"fade"},transitionNext:{type:String,default:"fade"},height:String,padding:Boolean,controlColor:String,controlTextColor:String,controlType:{type:String,validator:t=>sv.includes(t),default:"flat"},autoplay:[Number,Boolean],arrows:Boolean,prevIcon:String,nextIcon:String,navigation:Boolean,navigationPosition:{type:String,validator:t=>iv.includes(t)},navigationIcon:String,navigationActiveIcon:String,thumbnails:Boolean},emits:[...Gd,...Zd],setup(t,{slots:e}){const{proxy:{$q:n}}=Ye(),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}=Xd(),{inFullscreen:m}=Jd(),p=g(()=>m.value!==!0&&t.height!==void 0?{height:t.height}:{}),v=g(()=>t.vertical===!0?"vertical":"horizontal"),b=g(()=>t.navigationPosition||(t.vertical===!0?"right":"bottom")),_=g(()=>`q-carousel q-panel-parent q-carousel--with${t.padding===!0?"":"out"}-padding`+(m.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}`:"")),x=g(()=>{const T=[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?T.reverse():T}),w=g(()=>t.navigationIcon||n.iconSet.carousel.navigationIcon),y=g(()=>t.navigationActiveIcon||w.value),V=g(()=>({color:t.controlColor,textColor:t.controlTextColor,round:!0,[t.controlType]:!0,dense:!0}));fe(()=>t.modelValue,()=>{t.autoplay&&E()}),fe(()=>t.autoplay,T=>{T?E():s!==null&&(clearTimeout(s),s=null)});function E(){const T=qs(t.autoplay)===!0?Math.abs(t.autoplay):5e3;s!==null&&clearTimeout(s),s=setTimeout(()=>{s=null,T>=0?d():c()},T)}hn(()=>{t.autoplay&&E()}),qt(()=>{s!==null&&clearTimeout(s)});function L(T,R){return S("div",{class:`q-carousel__control q-carousel__navigation no-wrap absolute flex q-carousel__navigation--${T} 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(R))])}function D(){const T=[];if(t.navigation===!0){const R=e["navigation-icon"]!==void 0?e["navigation-icon"]:H=>S(ke,{key:"nav"+H.name,class:`q-carousel__navigation-icon q-carousel__navigation-icon--${H.active===!0?"":"in"}active`,...H.btnProps,onClick:H.onClick}),I=o-1;T.push(L("buttons",(H,z)=>{const Y=H.props.name,j=h.value===z;return R({index:z,maxIndex:I,name:Y,active:j,btnProps:{icon:j===!0?y.value:w.value,size:"sm",...V.value},onClick:()=>{u(Y)}})}))}else if(t.thumbnails===!0){const R=t.controlColor!==void 0?` text-${t.controlColor}`:"";T.push(L("thumbnails",I=>{const H=I.props;return S("img",{key:"tmb#"+H.name,class:`q-carousel__thumbnail q-carousel__thumbnail--${H.name===t.modelValue?"":"in"}active`+R,src:H.imgSrc||H["img-src"],onClick:()=>{u(H.name)}})}))}return t.arrows===!0&&h.value>=0&&((t.infinite===!0||h.value>0)&&T.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(ke,{icon:x.value[0],...V.value,onClick:c})])),(t.infinite===!0||h.value(o=a(e),S("div",{class:_.value,style:p.value},[ua("div",{class:"q-carousel__slides-container"},r(),"sl-cont",t.swipeable,()=>l.value)].concat(D())))}}),ov={class:"svg-container"},av=["viewBox"],rv={id:"layer1",style:{display:"inline"}},lv=["d"],uv={id:"layer2",style:{display:"inline"}},cv=["cx","cy","r"],dv=["transform","onClick"],fv=["id"],hv=["x","y","width","height"],mv=["id"],gv=["x","y","width","height","rx","ry"],vv=["x","y","width","height","rx","ry"],pv=["clip-path"],bv=["id","x","y"],yv=["id","values"],xv=["id","x","y"],wv=["transform"],_v=["r"],Sv=["r"],kv=["r","clip-path"],Cv=["href","x","y","height","width"],Mv=be({__name:"EnergyFlowChart",setup(t){Od($=>({"7061f1f7":s.value,"7c22ee07":r.value}));const e=Fe(),n=N({xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3}),i=g(()=>`${n.value.xMin} ${n.value.yMin} ${n.value.xMax} ${n.value.yMax}`),s=g(()=>n.value.strokeWidth),o=g(()=>n.value.circleRadius),a=g(()=>n.value.circleRadius),r=g(()=>`${n.value.textSize}px`),l=$=>{let Z={...$};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=g(()=>e.getGridPower("object")),c=g(()=>Number(u.value.value)>0),d=g(()=>Number(u.value.value)<0),f=g(()=>e.batteryTotalPower("object")),h=g(()=>Number(e.batteryTotalPower("value"))<0),m=g(()=>Number(e.batteryTotalPower("value"))>0),p=g(()=>Number(e.batterySocTotal)/100),v=g(()=>e.getHomePower("object")),b=g(()=>Number(v.value.value)>0),_=g(()=>Number(v.value.value)<0),x=g(()=>e.getPvPower("object")),w=g(()=>{const $=Number(x.value.value);return Math.abs($)>=50}),y=g(()=>e.chargePointIds),V=g(()=>e.chargePointName(y.value[0])||"---"),E=g(()=>e.chargePointName(y.value[1])||"---"),L=g(()=>e.chargePointName(y.value[2])||"---"),D=g(()=>y.value.length>0?e.chargePointPower(y.value[0],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),T=g(()=>y.value.length>0?e.chargePointPower(y.value[1],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),R=g(()=>y.value.length>0?e.chargePointPower(y.value[2],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),I=g(()=>Number(D.value.value)>0),H=g(()=>Number(D.value.value)<0),z=g(()=>Number(T.value.value)>0),Y=g(()=>Number(T.value.value)<0),j=g(()=>Number(R.value.value)>0),ee=g(()=>Number(R.value.value)<0),U=$=>{switch($){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"}}},re=g(()=>e.chargePointPlugState(y.value[0])),ce=g(()=>{const $=e.chargePointConnectedVehicleChargeMode(y.value[0]);return U($.value||"")}),O=g(()=>e.chargePointConnectedVehicleInfo(y.value[0]).value?.name||"---"),P=g(()=>e.chargePointConnectedVehicleSoc(y.value[0])),J=g(()=>e.chargePointPlugState(y.value[1])),ue=g(()=>{const $=e.chargePointConnectedVehicleChargeMode(y.value[1]);return U($.value||"")}),he=g(()=>e.chargePointConnectedVehicleInfo(y.value[1]).value?.name||"---"),B=g(()=>e.chargePointConnectedVehicleSoc(y.value[1])),te=g(()=>e.chargePointPlugState(y.value[2])),_e=g(()=>{const $=e.chargePointConnectedVehicleChargeMode(y.value[2]);return U($.value||"")}),G=g(()=>e.chargePointConnectedVehicleInfo(y.value[2]).value?.name||"---"),qe=g(()=>e.chargePointConnectedVehicleSoc(y.value[2])),Qe=g(()=>e.chargePointSumPower("object")),Nt=g(()=>Number(Qe.value.value)<0),ft=g(()=>Number(Qe.value.value)>0),gt=g(()=>{const $=[];return $.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"}),$.push({id:"home",class:{base:"home",valueLabel:"",animated:_.value,animatedReverse:b.value},position:{row:0,column:2},label:["Haus",l(v.value).textValue],icon:"icons/owbHouse.svg"}),e.getPvConfigured&&$.push({id:"pv",class:{base:"pv",valueLabel:"fill-success",animated:w.value,animatedReverse:!1},position:{row:1,column:0},label:["PV",l(x.value).textValue],icon:"icons/owbPV.svg"}),e.batteryConfigured&&$.push({id:"battery",class:{base:"battery",valueLabel:"",animated:h.value,animatedReverse:m.value},position:{row:1,column:2},label:["Speicher",l(f.value).textValue],soc:p.value,icon:"icons/owbBattery.svg"}),y.value.length>0&&(y.value.length<=3?($.push({id:"charge-point-1",class:{base:"charge-point",valueLabel:"",animated:H.value,animatedReverse:I.value},position:{row:2,column:y.value.length>1?0:1},label:[V.value,l(D.value).textValue],icon:"icons/owbChargePoint.svg"}),re.value&&$.push({id:"vehicle-1",class:{base:"vehicle",valueLabel:"fill-"+ce.value.class,animated:H.value,animatedReverse:I.value},position:{row:3,column:y.value.length>1?0:1},label:[O.value||"---",ce.value.label||"---"],soc:(P.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),y.value.length>1&&$.push({id:"charge-point-2",class:{base:"charge-point",valueLabel:"",animated:Y.value,animatedReverse:z.value},position:{row:2,column:y.value.length>2?1:2},label:[E.value,l(T.value).textValue],icon:"icons/owbChargePoint.svg"}),J.value&&$.push({id:"vehicle-2",class:{base:"vehicle",valueLabel:"fill-"+ue.value.class,animated:Y.value,animatedReverse:z.value},position:{row:3,column:y.value.length>2?1:2},label:[he.value||"---",ue.value.label||"---"],soc:(B.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),y.value.length>2&&$.push({id:"charge-point-3",class:{base:"charge-point",valueLabel:"",animated:ee.value,animatedReverse:j.value},position:{row:2,column:2},label:[L.value,l(R.value).textValue],icon:"icons/owbChargePoint.svg"}),te.value&&$.push({id:"vehicle-3",class:{base:"vehicle",valueLabel:"fill-"+_e.value.class,animated:ee.value,animatedReverse:j.value},position:{row:3,column:2},label:[G.value||"---",_e.value.label||"---"],soc:(qe.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"})):$.push({id:"charge-point-sum",class:{base:"charge-point",valueLabel:"",animated:Nt.value,animatedReverse:ft.value},position:{row:2,column:1},label:["Ladepunkte",l(Qe.value).textValue],icon:"icons/owbChargePoint.svg"})),$}),yt=g(()=>y.value?.length>0?y.value.length>3?3:4:3);fe(yt,$=>{n.value.numRows=$},{immediate:!0});const Je=$=>{const Z=n.value.yMin+n.value.strokeWidth+n.value.circleRadius,Oe=n.value.yMax-n.value.strokeWidth-n.value.circleRadius-Z;return $*(Oe/(n.value.numRows-1))+Z},wt=$=>{const Z=n.value.xMin+n.value.strokeWidth+Le.value/2,Oe=n.value.xMax-n.value.strokeWidth-Le.value/2-Z;return $*(Oe/(n.value.numColumns-1))+Z},Dt=$=>{const Z=wt($);return $<(n.value.numColumns-1)/2?Z+Le.value/2-n.value.circleRadius:$>(n.value.numColumns-1)/2?Z-Le.value/2+n.value.circleRadius:Z},Yt=$=>{const Z=document.getElementById($);if(Z==null||!(Z instanceof SVGGraphicsElement))return{x:0,y:0,width:0,height:0};const K=Z.getBBox();return{x:K.x,y:K.y,width:K.width,height:K.height}},Lt=$=>{const Z=document.querySelector(`#${$}`);Z&&Z.beginElement()},Le=g(()=>(n.value.xMax-n.value.xMin-n.value.strokeWidth-n.value.numColumns)/n.value.numColumns);return($,Z)=>(M(),Q("div",ov,[(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",rv,[(M(!0),Q(De,null,Ke(gt.value,K=>(M(),Q("path",{key:K.id,class:Re([K.class.base,{animated:K.class.animated},{animatedReverse:K.class.animatedReverse}]),d:K.class.base!=="vehicle"?`M ${Dt(K.position.column)}, ${Je(K.position.row)} ${wt(1)}, ${Je(1)}`:`M ${Dt(K.position.column)}, ${Je(K.position.row)} ${Dt(K.position.column)}, ${Je(K.position.row-1)}`},null,10,lv))),128))]),q("g",uv,[q("circle",{id:"center",cx:wt(1),cy:Je(1),r:n.value.circleRadius/3},null,8,cv),(M(!0),Q(De,null,Ke(gt.value,K=>(M(),Q("g",{key:K.id,class:Re(K.class.base),transform:`translate(${wt(K.position.column)}, ${Je(K.position.row)})`,onClick:Oe=>Lt(`animate-label-${K.id}`)},[q("defs",null,[K.soc?(M(),Q("clipPath",{key:0,id:`clip-soc-${K.id}`},[q("rect",{x:-n.value.circleRadius-n.value.strokeWidth,y:(n.value.circleRadius+n.value.strokeWidth)*(1-2*K.soc),width:(n.value.circleRadius+n.value.strokeWidth)*2,height:(n.value.circleRadius+n.value.strokeWidth)*2*K.soc},null,8,hv)],8,fv)):le("",!0),q("clipPath",{id:`clip-label-${K.id}`},[q("rect",{x:-Le.value/2,y:-n.value.circleRadius,width:Le.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,gv)],8,mv)]),q("rect",{x:-Le.value/2,y:-n.value.circleRadius,width:Le.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,vv),q("text",{"clip-path":`url(#clip-label-${K.id})`},[q("tspan",{id:`label-${K.id}`,"text-anchor":"start",x:-Le.value/2+2*n.value.circleRadius+n.value.strokeWidth,y:-n.value.textSize/2},[Yt(`label-${K.id}`).width>Le.value-2*n.value.circleRadius-2*n.value.strokeWidth?(M(),Q("animate",{key:0,id:`animate-label-${K.id}`,xmlns:"http://www.w3.org/2000/svg",attributeName:"x",dur:"5s",values:"0; "+(-Yt(`label-${K.id}`).width+Le.value-2.5*n.value.circleRadius-2*n.value.strokeWidth)+"; 0;",repeatCount:"0",additive:"sum"},null,8,yv)):le("",!0),Ve(" "+se(K.label[0]),1)],8,bv),q("tspan",{id:`value-${K.id}`,class:Re(K.class.valueLabel),"text-anchor":"end",x:2*n.value.circleRadius+n.value.strokeWidth,y:n.value.textSize},se(K.label[1]),11,xv)],8,pv),q("g",{transform:`translate(${n.value.circleRadius-Le.value/2}, 0)`},[q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:"background-circle"},null,8,_v),q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:Re({soc:K.soc})},null,10,Sv),K.soc?(M(),Q("circle",{key:0,cx:"0",cy:"0",r:n.value.circleRadius,"clip-path":`url(#clip-soc-${K.id})`},null,8,kv)):le("",!0),q("image",{href:K.icon,x:-o.value/2,y:-a.value/2,height:a.value,width:o.value},null,8,Cv)],8,wv)],10,dv))),128))])],8,av))]))}}),Pv=mt(Mv,[["__scopeId","data-v-62f971c1"]]);/*! - * @kurkle/color v0.3.4 - * https://github.com/kurkle/color#readme - * (c) 2024 Jukka Kurkela - * Released under the MIT License - */function js(t){return t+.5|0}const Wn=(t,e,n)=>Math.max(Math.min(t,n),e);function ys(t){return Wn(js(t*2.55),0,255)}function jn(t){return Wn(js(t*255),0,255)}function Dn(t){return Wn(js(t/2.55)/100,0,1)}function Gl(t){return Wn(js(t*100),0,100)}const Gt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},gr=[..."0123456789ABCDEF"],Tv=t=>gr[t&15],Iv=t=>gr[(t&240)>>4]+gr[t&15],oo=t=>(t&240)>>4===(t&15),Dv=t=>oo(t.r)&&oo(t.g)&&oo(t.b)&&oo(t.a);function Ov(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&Gt[t[1]]*17,g:255&Gt[t[2]]*17,b:255&Gt[t[3]]*17,a:e===5?Gt[t[4]]*17:255}:(e===7||e===9)&&(n={r:Gt[t[1]]<<4|Gt[t[2]],g:Gt[t[3]]<<4|Gt[t[4]],b:Gt[t[5]]<<4|Gt[t[6]],a:e===9?Gt[t[7]]<<4|Gt[t[8]]:255})),n}const Vv=(t,e)=>t<255?e(t):"";function Ev(t){var e=Dv(t)?Tv:Iv;return t?"#"+e(t.r)+e(t.g)+e(t.b)+Vv(t.a,e):void 0}const Av=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function tf(t,e,n){const i=e*Math.min(n,1-n),s=(o,a=(o+t/30)%12)=>n-i*Math.max(Math.min(a-3,9-a,1),-1);return[s(0),s(8),s(4)]}function qv(t,e,n){const i=(s,o=(s+t/60)%6)=>n-n*e*Math.max(Math.min(o,4-o,1),0);return[i(5),i(3),i(1)]}function Lv(t,e,n){const i=tf(t,1,.5);let s;for(e+n>1&&(s=1/(e+n),e*=s,n*=s),s=0;s<3;s++)i[s]*=1-e-n,i[s]+=e;return i}function Rv(t,e,n,i,s){return t===s?(e-n)/i+(e.5?c/(2-o-a):c/(o+a),l=Rv(n,i,s,c,o),l=l*60+.5),[l|0,u||0,r]}function Gr(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(jn)}function Jr(t,e,n){return Gr(tf,t,e,n)}function $v(t,e,n){return Gr(Lv,t,e,n)}function Fv(t,e,n){return Gr(qv,t,e,n)}function nf(t){return(t%360+360)%360}function zv(t){const e=Av.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?ys(+e[5]):jn(+e[5]));const s=nf(+e[2]),o=+e[3]/100,a=+e[4]/100;return e[1]==="hwb"?i=$v(s,o,a):e[1]==="hsv"?i=Fv(s,o,a):i=Jr(s,o,a),{r:i[0],g:i[1],b:i[2],a:n}}function Bv(t,e){var n=Qr(t);n[0]=nf(n[0]+e),n=Jr(n),t.r=n[0],t.g=n[1],t.b=n[2]}function Nv(t){if(!t)return;const e=Qr(t),n=e[0],i=Gl(e[1]),s=Gl(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${s}%, ${Dn(t.a)})`:`hsl(${n}, ${i}%, ${s}%)`}const Jl={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},eu={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Wv(){const t={},e=Object.keys(eu),n=Object.keys(Jl);let i,s,o,a,r;for(i=0;i>16&255,o>>8&255,o&255]}return t}let ao;function Hv(t){ao||(ao=Wv(),ao.transparent=[0,0,0,0]);const e=ao[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const jv=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Uv(t){const e=jv.exec(t);let n=255,i,s,o;if(e){if(e[7]!==i){const a=+e[7];n=e[8]?ys(a):Wn(a*255,0,255)}return i=+e[1],s=+e[3],o=+e[5],i=255&(e[2]?ys(i):Wn(i,0,255)),s=255&(e[4]?ys(s):Wn(s,0,255)),o=255&(e[6]?ys(o):Wn(o,0,255)),{r:i,g:s,b:o,a:n}}}function Yv(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${Dn(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const Ba=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,ki=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Zv(t,e,n){const i=ki(Dn(t.r)),s=ki(Dn(t.g)),o=ki(Dn(t.b));return{r:jn(Ba(i+n*(ki(Dn(e.r))-i))),g:jn(Ba(s+n*(ki(Dn(e.g))-s))),b:jn(Ba(o+n*(ki(Dn(e.b))-o))),a:t.a+n*(e.a-t.a)}}function ro(t,e,n){if(t){let i=Qr(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=Jr(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function sf(t,e){return t&&Object.assign(e||{},t)}function tu(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=jn(t[3]))):(e=sf(t,{r:0,g:0,b:0,a:1}),e.a=jn(e.a)),e}function Xv(t){return t.charAt(0)==="r"?Uv(t):zv(t)}class $s{constructor(e){if(e instanceof $s)return e;const n=typeof e;let i;n==="object"?i=tu(e):n==="string"&&(i=Ov(e)||Hv(e)||Xv(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=sf(this._rgb);return e&&(e.a=Dn(e.a)),e}set rgb(e){this._rgb=tu(e)}rgbString(){return this._valid?Yv(this._rgb):void 0}hexString(){return this._valid?Ev(this._rgb):void 0}hslString(){return this._valid?Nv(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,s=e.rgb;let o;const a=n===o?.5:n,r=2*a-1,l=i.a-s.a,u=((r*l===-1?r:(r+l)/(1+r*l))+1)/2;o=1-u,i.r=255&u*i.r+o*s.r+.5,i.g=255&u*i.g+o*s.g+.5,i.b=255&u*i.b+o*s.b+.5,i.a=a*i.a+(1-a)*s.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=Zv(this._rgb,e._rgb,n)),this}clone(){return new $s(this.rgb)}alpha(e){return this._rgb.a=jn(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=js(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return ro(this._rgb,2,e),this}darken(e){return ro(this._rgb,2,-e),this}saturate(e){return ro(this._rgb,1,e),this}desaturate(e){return ro(this._rgb,1,-e),this}rotate(e){return Bv(this._rgb,e),this}}/*! - * Chart.js v4.5.0 - * https://www.chartjs.org - * (c) 2025 Chart.js Contributors - * Released under the MIT License - */function Sn(){}const Kv=(()=>{let t=0;return()=>t++})();function Ge(t){return t==null}function nt(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function we(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Ct(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function vn(t,e){return Ct(t)?t:e}function Ce(t,e){return typeof t>"u"?e:t}const Qv=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,of=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function Ue(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function Ne(t,e,n,i){let s,o,a;if(nt(t))for(o=t.length,s=0;st,x:t=>t.x,y:t=>t.y};function ep(t){const e=t.split("."),n=[];let i="";for(const s of e)i+=s,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function tp(t){const e=ep(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function zs(t,e){return(nu[e]||(nu[e]=tp(e)))(t)}function el(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Qt=t=>typeof t<"u",Ut=t=>typeof t=="function",iu=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function np(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const We=Math.PI,St=2*We,ip=St+We,zo=Number.POSITIVE_INFINITY,tl=We/180,Tt=We/2,en=We/4,Bo=We*2/3,rf=Math.log10,Hi=Math.sign;function Is(t,e,n){return Math.abs(t-e)s-o).pop(),e}function op(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function di(t){return!op(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function ap(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function rp(t,e,n){let i,s,o;for(i=0,s=t.length;il&&u=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function nl(t,e,n){n=n||(a=>t[a]1;)o=s+i>>1,n(o)?s=o:i=o;return{lo:s,hi:i}}const oi=(t,e,n,i)=>nl(t,n,i?s=>{const o=t[s][e];return ot[s][e]nl(t,n,i=>t[i][e]>=n);function dp(t,e,n){let i=0,s=t.length;for(;ii&&t[s-1]>n;)s--;return i>0||s{const i="_onData"+el(n),s=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...o){const a=s.apply(this,o);return t._chartjs.listeners.forEach(r=>{typeof r[i]=="function"&&r[i](...o)}),a}})})}function au(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,s=i.indexOf(e);s!==-1&&i.splice(s,1),!(i.length>0)&&(uf.forEach(o=>{delete t[o]}),delete t._chartjs)}function hp(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const cf=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function df(t,e){let n=[],i=!1;return function(...s){n=s,i||(i=!0,cf.call(window,()=>{i=!1,t.apply(e,n)}))}}function mp(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const ff=t=>t==="start"?"left":t==="end"?"right":"center",Xt=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2,gp=(t,e,n,i)=>t===(i?"left":"right")?n:t==="center"?(e+n)/2:e;function vp(t,e,n){const i=e.length;let s=0,o=i;if(t._sorted){const{iScale:a,vScale:r,_parsed:l}=t,u=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,c=a.axis,{min:d,max:f,minDefined:h,maxDefined:m}=a.getUserBounds();if(h){if(s=Math.min(oi(l,c,d).lo,n?i:oi(e,c,a.getPixelForValue(d)).lo),u){const p=l.slice(0,s+1).reverse().findIndex(v=>!Ge(v[r.axis]));s-=Math.max(0,p)}s=cn(s,0,i-1)}if(m){let p=Math.max(oi(l,a.axis,f,!0).hi+1,n?0:oi(e,c,a.getPixelForValue(f),!0).hi+1);if(u){const v=l.slice(p-1).findIndex(b=>!Ge(b[r.axis]));p+=Math.max(0,v)}o=cn(p,s,i)-s}else o=i-s}return{start:s,count:o}}function pp(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,s={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=s,!0;const o=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,s),o}const lo=t=>t===0||t===1,ru=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*St/n)),lu=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*St/n)+1,Ds={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*Tt)+1,easeOutSine:t=>Math.sin(t*Tt),easeInOutSine:t=>-.5*(Math.cos(We*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>lo(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>lo(t)?t:ru(t,.075,.3),easeOutElastic:t=>lo(t)?t:lu(t,.075,.3),easeInOutElastic(t){return lo(t)?t:t<.5?.5*ru(t*2,.1125,.45):.5+.5*lu(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-Ds.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?Ds.easeInBounce(t*2)*.5:Ds.easeOutBounce(t*2-1)*.5+.5};function il(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function uu(t){return il(t)?t:new $s(t)}function Na(t){return il(t)?t:new $s(t).saturate(.5).darken(.1).hexString()}const bp=["x","y","borderWidth","radius","tension"],yp=["color","borderColor","backgroundColor"];function xp(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:yp},numbers:{type:"number",properties:bp}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function wp(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const cu=new Map;function _p(t,e){e=e||{};const n=t+JSON.stringify(e);let i=cu.get(n);return i||(i=new Intl.NumberFormat(t,e),cu.set(n,i)),i}function sl(t,e,n){return _p(e,n).format(t)}const Sp={values(t){return nt(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let s,o=t;if(n.length>1){const u=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(u<1e-4||u>1e15)&&(s="scientific"),o=kp(t,n)}const a=rf(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:s,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),sl(t,i,l)}};function kp(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var hf={formatters:Sp};function Cp(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:hf.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const fi=Object.create(null),pr=Object.create(null);function Os(t,e){if(!e)return t;const n=e.split(".");for(let i=0,s=n.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,s)=>Na(s.backgroundColor),this.hoverBorderColor=(i,s)=>Na(s.borderColor),this.hoverColor=(i,s)=>Na(s.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return Wa(this,e,n)}get(e){return Os(this,e)}describe(e,n){return Wa(pr,e,n)}override(e,n){return Wa(fi,e,n)}route(e,n,i,s){const o=Os(this,e),a=Os(this,i),r="_"+n;Object.defineProperties(o,{[r]:{value:o[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[r],u=a[s];return we(l)?Object.assign({},u,l):Ce(l,u)},set(l){this[r]=l}}})}apply(e){e.forEach(n=>n(this))}}var dt=new Mp({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[xp,wp,Cp]);function Pp(t){return!t||Ge(t.size)||Ge(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function du(t,e,n,i,s){let o=e[s];return o||(o=e[s]=t.measureText(s).width,n.push(s)),o>i&&(i=o),i}function Gn(t,e,n){const i=t.currentDevicePixelRatio,s=n!==0?Math.max(n/2,.5):0;return Math.round((e-s)*i)/i+s}function fu(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function br(t,e,n,i){mf(t,e,n,i,null)}function mf(t,e,n,i,s){let o,a,r,l,u,c,d,f;const h=e.pointStyle,m=e.rotation,p=e.radius;let v=(m||0)*tl;if(h&&typeof h=="object"&&(o=h.toString(),o==="[object HTMLImageElement]"||o==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(v),t.drawImage(h,-h.width/2,-h.height/2,h.width,h.height),t.restore();return}if(!(isNaN(p)||p<=0)){switch(t.beginPath(),h){default:s?t.ellipse(n,i,s/2,p,0,0,St):t.arc(n,i,p,0,St),t.closePath();break;case"triangle":c=s?s/2:p,t.moveTo(n+Math.sin(v)*c,i-Math.cos(v)*p),v+=Bo,t.lineTo(n+Math.sin(v)*c,i-Math.cos(v)*p),v+=Bo,t.lineTo(n+Math.sin(v)*c,i-Math.cos(v)*p),t.closePath();break;case"rectRounded":u=p*.516,l=p-u,a=Math.cos(v+en)*l,d=Math.cos(v+en)*(s?s/2-u:l),r=Math.sin(v+en)*l,f=Math.sin(v+en)*(s?s/2-u:l),t.arc(n-d,i-r,u,v-We,v-Tt),t.arc(n+f,i-a,u,v-Tt,v),t.arc(n+d,i+r,u,v,v+Tt),t.arc(n-f,i+a,u,v+Tt,v+We),t.closePath();break;case"rect":if(!m){l=Math.SQRT1_2*p,c=s?s/2:l,t.rect(n-c,i-l,2*c,2*l);break}v+=en;case"rectRot":d=Math.cos(v)*(s?s/2:p),a=Math.cos(v)*p,r=Math.sin(v)*p,f=Math.sin(v)*(s?s/2:p),t.moveTo(n-d,i-r),t.lineTo(n+f,i-a),t.lineTo(n+d,i+r),t.lineTo(n-f,i+a),t.closePath();break;case"crossRot":v+=en;case"cross":d=Math.cos(v)*(s?s/2:p),a=Math.cos(v)*p,r=Math.sin(v)*p,f=Math.sin(v)*(s?s/2:p),t.moveTo(n-d,i-r),t.lineTo(n+d,i+r),t.moveTo(n+f,i-a),t.lineTo(n-f,i+a);break;case"star":d=Math.cos(v)*(s?s/2:p),a=Math.cos(v)*p,r=Math.sin(v)*p,f=Math.sin(v)*(s?s/2:p),t.moveTo(n-d,i-r),t.lineTo(n+d,i+r),t.moveTo(n+f,i-a),t.lineTo(n-f,i+a),v+=en,d=Math.cos(v)*(s?s/2:p),a=Math.cos(v)*p,r=Math.sin(v)*p,f=Math.sin(v)*(s?s/2:p),t.moveTo(n-d,i-r),t.lineTo(n+d,i+r),t.moveTo(n+f,i-a),t.lineTo(n-f,i+a);break;case"line":a=s?s/2:Math.cos(v)*p,r=Math.sin(v)*p,t.moveTo(n-a,i-r),t.lineTo(n+a,i+r);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(v)*(s?s/2:p),i+Math.sin(v)*p);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function Bs(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.xe.top-n&&t.y0&&o.strokeColor!=="";let l,u;for(t.save(),t.font=s.string,Dp(t,o),l=0;l+t||0;function gf(t,e){const n={},i=we(e),s=i?Object.keys(e):e,o=we(t)?i?a=>Ce(t[a],t[e[a]]):a=>t[a]:()=>t;for(const a of s)n[a]=Lp(o(a));return n}function Rp(t){return gf(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Ei(t){return gf(t,["topLeft","topRight","bottomLeft","bottomRight"])}function zt(t){const e=Rp(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function It(t,e){t=t||{},e=e||dt.font;let n=Ce(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=Ce(t.style,e.style);i&&!(""+i).match(Ap)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const s={family:Ce(t.family,e.family),lineHeight:qp(Ce(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:Ce(t.weight,e.weight),string:""};return s.string=Pp(s),s}function uo(t,e,n,i){let s,o,a;for(s=0,o=t.length;sn&&r===0?0:r+l;return{min:a(i,-Math.abs(o)),max:a(s,o)}}function vi(t,e){return Object.assign(Object.create(t),e)}function ol(t,e=[""],n,i,s=()=>t[0]){const o=n||t;typeof i>"u"&&(i=yf("_fallback",t));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:i,_getTarget:s,override:r=>ol([r,...t],e,o,i)};return new Proxy(a,{deleteProperty(r,l){return delete r[l],delete r._keys,delete t[0][l],!0},get(r,l){return pf(r,l,()=>Up(l,e,t,r))},getOwnPropertyDescriptor(r,l){return Reflect.getOwnPropertyDescriptor(r._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(r,l){return mu(r).includes(l)},ownKeys(r){return mu(r)},set(r,l,u){const c=r._storage||(r._storage=s());return r[l]=c[l]=u,delete r._keys,!0}})}function Ui(t,e,n,i){const s={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:vf(t,i),setContext:o=>Ui(t,o,n,i),override:o=>Ui(t.override(o),e,n,i)};return new Proxy(s,{deleteProperty(o,a){return delete o[a],delete t[a],!0},get(o,a,r){return pf(o,a,()=>zp(o,a,r))},getOwnPropertyDescriptor(o,a){return o._descriptors.allKeys?Reflect.has(t,a)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,a)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(o,a){return Reflect.has(t,a)},ownKeys(){return Reflect.ownKeys(t)},set(o,a,r){return t[a]=r,delete o[a],!0}})}function vf(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:s=e.allKeys}=t;return{allKeys:s,scriptable:n,indexable:i,isScriptable:Ut(n)?n:()=>n,isIndexable:Ut(i)?i:()=>i}}const Fp=(t,e)=>t?t+el(e):e,al=(t,e)=>we(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function pf(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function zp(t,e,n){const{_proxy:i,_context:s,_subProxy:o,_descriptors:a}=t;let r=i[e];return Ut(r)&&a.isScriptable(e)&&(r=Bp(e,r,t,n)),nt(r)&&r.length&&(r=Np(e,r,t,a.isIndexable)),al(e,r)&&(r=Ui(r,s,o&&o[e],a)),r}function Bp(t,e,n,i){const{_proxy:s,_context:o,_subProxy:a,_stack:r}=n;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t);let l=e(o,a||i);return r.delete(t),al(t,l)&&(l=rl(s._scopes,s,t,l)),l}function Np(t,e,n,i){const{_proxy:s,_context:o,_subProxy:a,_descriptors:r}=n;if(typeof o.index<"u"&&i(t))return e[o.index%e.length];if(we(e[0])){const l=e,u=s._scopes.filter(c=>c!==l);e=[];for(const c of l){const d=rl(u,s,t,c);e.push(Ui(d,o,a&&a[t],r))}}return e}function bf(t,e,n){return Ut(t)?t(e,n):t}const Wp=(t,e)=>t===!0?e:typeof t=="string"?zs(e,t):void 0;function Hp(t,e,n,i,s){for(const o of e){const a=Wp(n,o);if(a){t.add(a);const r=bf(a._fallback,n,s);if(typeof r<"u"&&r!==n&&r!==i)return r}else if(a===!1&&typeof i<"u"&&n!==i)return null}return!1}function rl(t,e,n,i){const s=e._rootScopes,o=bf(e._fallback,n,i),a=[...t,...s],r=new Set;r.add(i);let l=hu(r,a,n,o||n,i);return l===null||typeof o<"u"&&o!==n&&(l=hu(r,a,o,l,i),l===null)?!1:ol(Array.from(r),[""],s,o,()=>jp(e,n,i))}function hu(t,e,n,i,s){for(;n;)n=Hp(t,e,n,i,s);return n}function jp(t,e,n){const i=t._getTarget();e in i||(i[e]={});const s=i[e];return nt(s)&&we(n)?n:s||{}}function Up(t,e,n,i){let s;for(const o of e)if(s=yf(Fp(o,t),n),typeof s<"u")return al(t,s)?rl(n,i,t,s):s}function yf(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function mu(t){let e=t._keys;return e||(e=t._keys=Yp(t._scopes)),e}function Yp(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(s=>!s.startsWith("_")))e.add(i);return Array.from(e)}const Zp=Number.EPSILON||1e-14,Yi=(t,e)=>et==="x"?"y":"x";function Xp(t,e,n,i){const s=t.skip?e:t,o=e,a=n.skip?e:n,r=ji(o,s),l=ji(a,o);let u=r/(r+l),c=l/(r+l);u=isNaN(u)?0:u,c=isNaN(c)?0:c;const d=i*u,f=i*c;return{previous:{x:o.x-d*(a.x-s.x),y:o.y-d*(a.y-s.y)},next:{x:o.x+f*(a.x-s.x),y:o.y+f*(a.y-s.y)}}}function Kp(t,e,n){const i=t.length;let s,o,a,r,l,u=Yi(t,0);for(let c=0;c!u.skip)),e.cubicInterpolationMode==="monotone")Gp(t,s);else{let u=i?t[t.length-1]:t[0];for(o=0,a=t.length;ot.ownerDocument.defaultView.getComputedStyle(t,null);function tb(t,e){return da(t).getPropertyValue(e)}const nb=["top","right","bottom","left"];function li(t,e,n){const i={};n=n?"-"+n:"";for(let s=0;s<4;s++){const o=nb[s];i[o]=parseFloat(t[e+"-"+o+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const ib=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function sb(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:s,offsetY:o}=i;let a=!1,r,l;if(ib(s,o,t.target))r=s,l=o;else{const u=e.getBoundingClientRect();r=i.clientX-u.left,l=i.clientY-u.top,a=!0}return{x:r,y:l,box:a}}function ni(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,s=da(n),o=s.boxSizing==="border-box",a=li(s,"padding"),r=li(s,"border","width"),{x:l,y:u,box:c}=sb(t,n),d=a.left+(c&&r.left),f=a.top+(c&&r.top);let{width:h,height:m}=e;return o&&(h-=a.width+r.width,m-=a.height+r.height),{x:Math.round((l-d)/h*n.width/i),y:Math.round((u-f)/m*n.height/i)}}function ob(t,e,n){let i,s;if(e===void 0||n===void 0){const o=t&&ul(t);if(!o)e=t.clientWidth,n=t.clientHeight;else{const a=o.getBoundingClientRect(),r=da(o),l=li(r,"border","width"),u=li(r,"padding");e=a.width-u.width-l.width,n=a.height-u.height-l.height,i=jo(r.maxWidth,o,"clientWidth"),s=jo(r.maxHeight,o,"clientHeight")}}return{width:e,height:n,maxWidth:i||zo,maxHeight:s||zo}}const fo=t=>Math.round(t*10)/10;function ab(t,e,n,i){const s=da(t),o=li(s,"margin"),a=jo(s.maxWidth,t,"clientWidth")||zo,r=jo(s.maxHeight,t,"clientHeight")||zo,l=ob(t,e,n);let{width:u,height:c}=l;if(s.boxSizing==="content-box"){const f=li(s,"border","width"),h=li(s,"padding");u-=h.width+f.width,c-=h.height+f.height}return u=Math.max(0,u-o.width),c=Math.max(0,i?u/i:c-o.height),u=fo(Math.min(u,a,l.maxWidth)),c=fo(Math.min(c,r,l.maxHeight)),u&&!c&&(c=fo(u/2)),(e!==void 0||n!==void 0)&&i&&l.height&&c>l.height&&(c=l.height,u=fo(Math.floor(c*i))),{width:u,height:c}}function gu(t,e,n){const i=e||1,s=Math.floor(t.height*i),o=Math.floor(t.width*i);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const a=t.canvas;return a.style&&(n||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||a.height!==s||a.width!==o?(t.currentDevicePixelRatio=i,a.height=s,a.width=o,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const rb=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};ll()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function vu(t,e){const n=tb(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function ii(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function lb(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function ub(t,e,n,i){const s={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=ii(t,s,n),r=ii(s,o,n),l=ii(o,e,n),u=ii(a,r,n),c=ii(r,l,n);return ii(u,c,n)}const cb=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},db=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function Ai(t,e,n){return t?cb(e,n):db()}function wf(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function _f(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Sf(t){return t==="angle"?{between:No,compare:lp,normalize:yn}:{between:Di,compare:(e,n)=>e-n,normalize:e=>e}}function pu({start:t,end:e,count:n,loop:i,style:s}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:s}}function fb(t,e,n){const{property:i,start:s,end:o}=n,{between:a,normalize:r}=Sf(i),l=e.length;let{start:u,end:c,loop:d}=t,f,h;if(d){for(u+=l,c+=l,f=0,h=l;fl(s,x,b)&&r(s,x)!==0,y=()=>r(o,b)===0||l(o,x,b),V=()=>p||w(),E=()=>!p||y();for(let L=c,D=c;L<=d;++L)_=e[L%a],!_.skip&&(b=u(_[i]),b!==x&&(p=l(b,s,o),v===null&&V()&&(v=r(b,s)===0?L:D),v!==null&&E()&&(m.push(pu({start:v,end:L,loop:f,count:a,style:h})),v=null),D=L,x=b));return v!==null&&m.push(pu({start:v,end:d,loop:f,count:a,style:h})),m}function Cf(t,e){const n=[],i=t.segments;for(let s=0;ss&&t[o%e].skip;)o--;return o%=e,{start:s,end:o}}function mb(t,e,n,i){const s=t.length,o=[];let a=e,r=t[e],l;for(l=e+1;l<=n;++l){const u=t[l%s];u.skip||u.stop?r.skip||(i=!1,o.push({start:e%s,end:(l-1)%s,loop:i}),e=a=u.stop?l:null):(a=l,r.skip&&(e=l)),r=u}return a!==null&&o.push({start:e%s,end:a%s,loop:i}),o}function gb(t,e){const n=t.points,i=t.options.spanGaps,s=n.length;if(!s)return[];const o=!!t._loop,{start:a,end:r}=hb(n,s,o,i);if(i===!0)return bu(t,[{start:a,end:r,loop:o}],n,e);const l=rr({chart:e,initial:n.initial,numSteps:a,currentStep:Math.min(i-n.start,a)}))}_refresh(){this._request||(this._running=!0,this._request=cf.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const o=i.items;let a=o.length-1,r=!1,l;for(;a>=0;--a)l=o[a],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),r=!0):(o[a]=o[o.length-1],o.pop());r&&(s.draw(),this._notify(s,i,e,"progress")),o.length||(i.running=!1,this._notify(s,i,e,"complete"),i.initial=!1),n+=o.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var Cn=new yb;const xu="transparent",xb={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=uu(t||xu),s=i.valid&&uu(e||xu);return s&&s.valid?s.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class wb{constructor(e,n,i,s){const o=n[i];s=uo([e.to,s,o,e.from]);const a=uo([e.from,o,s]);this._active=!0,this._fn=e.fn||xb[e.type||typeof a],this._easing=Ds[e.easing]||Ds.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=a,this._to=s,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const s=this._target[this._prop],o=i-this._start,a=this._duration-o;this._start=i,this._duration=Math.floor(Math.max(a,e.duration)),this._total+=o,this._loop=!!e.loop,this._to=uo([e.to,n,s,e.from]),this._from=uo([e.from,s,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,s=this._prop,o=this._from,a=this._loop,r=this._to;let l;if(this._active=o!==r&&(a||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(o,r,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let s=0;s{const o=e[s];if(!we(o))return;const a={};for(const r of n)a[r]=o[r];(nt(o.properties)&&o.properties||[s]).forEach(r=>{(r===s||!i.has(r))&&i.set(r,a)})})}_animateOptions(e,n){const i=n.options,s=Sb(e,i);if(!s)return[];const o=this._createAnimations(s,i);return i.$shared&&_b(e.options.$animations,i).then(()=>{e.options=i},()=>{}),o}_createAnimations(e,n){const i=this._properties,s=[],o=e.$animations||(e.$animations={}),a=Object.keys(n),r=Date.now();let l;for(l=a.length-1;l>=0;--l){const u=a[l];if(u.charAt(0)==="$")continue;if(u==="options"){s.push(...this._animateOptions(e,n));continue}const c=n[u];let d=o[u];const f=i.get(u);if(d)if(f&&d.active()){d.update(f,c,r);continue}else d.cancel();if(!f||!f.duration){e[u]=c;continue}o[u]=d=new wb(f,e,u,c),s.push(d)}return s}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return Cn.add(this._chart,i),!0}}function _b(t,e){const n=[],i=Object.keys(e);for(let s=0;s0||!n&&o<0)return s.index}return null}function ku(t,e){const{chart:n,_cachedMeta:i}=t,s=n._stacks||(n._stacks={}),{iScale:o,vScale:a,index:r}=i,l=o.axis,u=a.axis,c=Pb(o,a,i),d=e.length;let f;for(let h=0;hn[i].axis===e).shift()}function Db(t,e){return vi(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function Ob(t,e,n){return vi(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function cs(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const s of e){const o=s._stacks;if(!o||o[i]===void 0||o[i][n]===void 0)return;delete o[i][n],o[i]._visualValues!==void 0&&o[i]._visualValues[n]!==void 0&&delete o[i]._visualValues[n]}}}const Ua=t=>t==="reset"||t==="none",Cu=(t,e)=>e?t:Object.assign({},t),Vb=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:Pf(n,!0),values:null};class qi{constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Ha(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&cs(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),s=(d,f,h,m)=>d==="x"?f:d==="r"?m:h,o=n.xAxisID=Ce(i.xAxisID,ja(e,"x")),a=n.yAxisID=Ce(i.yAxisID,ja(e,"y")),r=n.rAxisID=Ce(i.rAxisID,ja(e,"r")),l=n.indexAxis,u=n.iAxisID=s(l,o,a,r),c=n.vAxisID=s(l,a,o,r);n.xScale=this.getScaleForId(o),n.yScale=this.getScaleForId(a),n.rScale=this.getScaleForId(r),n.iScale=this.getScaleForId(u),n.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&au(this._data,this),e._stacked&&cs(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(we(n)){const s=this._cachedMeta;this._data=Mb(n,s)}else if(i!==n){if(i){au(i,this);const s=this._cachedMeta;cs(s),s._parsed=[]}n&&Object.isExtensible(n)&&fp(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const o=n._stacked;n._stacked=Ha(n.vScale,n),n.stack!==i.stack&&(s=!0,cs(n),n.stack=i.stack),this._resyncElements(e),(s||o!==n._stacked)&&(ku(this,n._parsed),n._stacked=Ha(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:s}=this,{iScale:o,_stacked:a}=i,r=o.axis;let l=e===0&&n===s.length?!0:i._sorted,u=e>0&&i._parsed[e-1],c,d,f;if(this._parsing===!1)i._parsed=s,i._sorted=!0,f=s;else{nt(s[e])?f=this.parseArrayData(i,s,e,n):we(s[e])?f=this.parseObjectData(i,s,e,n):f=this.parsePrimitiveData(i,s,e,n);const h=()=>d[r]===null||u&&d[r]p||d=0;--f)if(!m()){this.updateRangeFromParsed(u,e,h,l);break}}return u}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let s,o,a;for(s=0,o=n.length;s=0&&ethis.getContext(i,s,n),p=u.resolveNamedOptions(f,h,m,d);return p.$shared&&(p.$shared=l,o[a]=Object.freeze(Cu(p,l))),p}_resolveAnimations(e,n,i){const s=this.chart,o=this._cachedDataOpts,a=`animation-${n}`,r=o[a];if(r)return r;let l;if(s.options.animation!==!1){const c=this.chart.config,d=c.datasetAnimationScopeKeys(this._type,n),f=c.getOptionScopes(this.getDataset(),d);l=c.createResolver(f,this.getContext(e,i,n))}const u=new cl(s,l&&l.animations);return l&&l._cacheable&&(o[a]=Object.freeze(u)),u}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||Ua(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),s=this._sharedOptions,o=this.getSharedOptions(i),a=this.includeOptions(n,o)||o!==s;return this.updateSharedOptions(o,n,i),{sharedOptions:o,includeOptions:a}}updateElement(e,n,i,s){Ua(s)?Object.assign(e,i):this._resolveAnimations(n,s).update(e,i)}updateSharedOptions(e,n,i){e&&!Ua(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,s){e.active=s;const o=this.getStyle(n,s);this._resolveAnimations(n,i,s).update(e,{options:!s&&this.getSharedOptions(o)||o})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[r,l,u]of this._syncList)this[r](l,u);this._syncList=[];const s=i.length,o=n.length,a=Math.min(o,s);a&&this.parse(0,a),o>s?this._insertElements(s,o-s,e):o{for(u.length+=n,r=u.length-1;r>=a;r--)u[r]=u[r-n]};for(l(o),r=e;rNo(x,r,l,!0)?1:Math.max(w,w*n,y,y*n),m=(x,w,y)=>No(x,r,l,!0)?-1:Math.min(w,w*n,y,y*n),p=h(0,u,d),v=h(Tt,c,f),b=m(We,u,d),_=m(We+Tt,c,f);i=(p-b)/2,s=(v-_)/2,o=-(p+b)/2,a=-(v+_)/2}return{ratioX:i,ratioY:s,offsetX:o,offsetY:a}}class xs extends qi{constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,s=this._cachedMeta;if(this._parsing===!1)s._parsed=i;else{let o=l=>+i[l];if(we(i[e])){const{key:l="value"}=this._parsing;o=u=>+zs(i[u],l)}let a,r;for(a=e,r=e+n;a0&&!isNaN(e)?St*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,s=i.data.labels||[],o=sl(n._parsed[e],i.options.locale);return{label:s[e]||"",value:o}}getMaxBorderWidth(e){let n=0;const i=this.chart;let s,o,a,r,l;if(!e){for(s=0,o=i.data.datasets.length;se!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")}),Ee(xs,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data;if(n.labels.length&&n.datasets.length){const{labels:{pointStyle:i,color:s}}=e.legend.options;return n.labels.map((o,a)=>{const l=e.getDatasetMeta(0).controller.getStyle(a);return{text:o,fillStyle:l.backgroundColor,strokeStyle:l.borderColor,fontColor:s,lineWidth:l.borderWidth,pointStyle:i,hidden:!e.getDataVisibility(a),index:a}})}return[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}});class Li extends qi{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const n=this._cachedMeta,{dataset:i,data:s=[],_dataset:o}=n,a=this.chart._animationsDisabled;let{start:r,count:l}=vp(n,s,a);this._drawStart=r,this._drawCount=l,pp(n)&&(r=0,l=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!o._decimated,i.points=s;const u=this.resolveDatasetElementOptions(e);this.options.showLine||(u.borderWidth=0),u.segment=this.options.segment,this.updateElement(i,void 0,{animated:!a,options:u},e),this.updateElements(s,r,l,e)}updateElements(e,n,i,s){const o=s==="reset",{iScale:a,vScale:r,_stacked:l,_dataset:u}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(n,s),f=a.axis,h=r.axis,{spanGaps:m,segment:p}=this.options,v=di(m)?m:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||s==="none",_=n+i,x=e.length;let w=n>0&&this.getParsed(n-1);for(let y=0;y=_){E.skip=!0;continue}const L=this.getParsed(y),D=Ge(L[h]),T=E[f]=a.getPixelForValue(L[f],y),R=E[h]=o||D?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,L,l):L[h],y);E.skip=isNaN(T)||isNaN(R)||D,E.stop=y>0&&Math.abs(L[f]-w[f])>v,p&&(E.parsed=L,E.raw=u.data[y]),d&&(E.options=c||this.resolveDataElementOptions(y,V.active?"active":s)),b||this.updateElement(V,y,E,s),w=L}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,s=e.data||[];if(!s.length)return i;const o=s[0].size(this.resolveDataElementOptions(0)),a=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,o,a)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}Ee(Li,"id","line"),Ee(Li,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),Ee(Li,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});function Jn(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class dl{static override(e){Object.assign(dl.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return Jn()}parse(){return Jn()}format(){return Jn()}add(){return Jn()}diff(){return Jn()}startOf(){return Jn()}endOf(){return Jn()}}var Tf={_date:dl};function Ab(t,e,n,i){const{controller:s,data:o,_sorted:a}=t,r=s._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(r&&e===r.axis&&e!=="r"&&a&&o.length){const u=r._reversePixels?cp:oi;if(i){if(s._sharedOptions){const c=o[0],d=typeof c.getRange=="function"&&c.getRange(e);if(d){const f=u(o,e,n-d),h=u(o,e,n+d);return{lo:f.lo,hi:h.hi}}}}else{const c=u(o,e,n);if(l){const{vScale:d}=s._cachedMeta,{_parsed:f}=t,h=f.slice(0,c.lo+1).reverse().findIndex(p=>!Ge(p[d.axis]));c.lo-=Math.max(0,h);const m=f.slice(c.hi).findIndex(p=>!Ge(p[d.axis]));c.hi+=Math.max(0,m)}return c}}return{lo:0,hi:o.length-1}}function fa(t,e,n,i,s){const o=t.getSortedVisibleDatasetMetas(),a=n[e];for(let r=0,l=o.length;r{l[a]&&l[a](e[n],s)&&(o.push({element:l,datasetIndex:u,index:c}),r=r||l.inRange(e.x,e.y,s))}),i&&!r?[]:o}var $b={modes:{index(t,e,n,i){const s=ni(e,t),o=n.axis||"x",a=n.includeInvisible||!1,r=n.intersect?Ya(t,s,o,i,a):Za(t,s,o,!1,i,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach(u=>{const c=r[0].index,d=u.data[c];d&&!d.skip&&l.push({element:d,datasetIndex:u.index,index:c})}),l):[]},dataset(t,e,n,i){const s=ni(e,t),o=n.axis||"xy",a=n.includeInvisible||!1;let r=n.intersect?Ya(t,s,o,i,a):Za(t,s,o,!1,i,a);if(r.length>0){const l=r[0].datasetIndex,u=t.getDatasetMeta(l).data;r=[];for(let c=0;cn.pos===e)}function Pu(t,e){return t.filter(n=>If.indexOf(n.pos)===-1&&n.box.axis===e)}function fs(t,e){return t.sort((n,i)=>{const s=e?i:n,o=e?n:i;return s.weight===o.weight?s.index-o.index:s.weight-o.weight})}function Fb(t){const e=[];let n,i,s,o,a,r;for(n=0,i=(t||[]).length;nu.box.fullSize),!0),i=fs(ds(e,"left"),!0),s=fs(ds(e,"right")),o=fs(ds(e,"top"),!0),a=fs(ds(e,"bottom")),r=Pu(e,"x"),l=Pu(e,"y");return{fullSize:n,leftAndTop:i.concat(o),rightAndBottom:s.concat(l).concat(a).concat(r),chartArea:ds(e,"chartArea"),vertical:i.concat(s).concat(l),horizontal:o.concat(a).concat(r)}}function Tu(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function Df(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function Wb(t,e,n,i){const{pos:s,box:o}=n,a=t.maxPadding;if(!we(s)){n.size&&(t[s]-=n.size);const d=i[n.stack]||{size:0,count:1};d.size=Math.max(d.size,n.horizontal?o.height:o.width),n.size=d.size/d.count,t[s]+=n.size}o.getPadding&&Df(a,o.getPadding());const r=Math.max(0,e.outerWidth-Tu(a,t,"left","right")),l=Math.max(0,e.outerHeight-Tu(a,t,"top","bottom")),u=r!==t.w,c=l!==t.h;return t.w=r,t.h=l,n.horizontal?{same:u,other:c}:{same:c,other:u}}function Hb(t){const e=t.maxPadding;function n(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function jb(t,e){const n=e.maxPadding;function i(s){const o={left:0,top:0,right:0,bottom:0};return s.forEach(a=>{o[a]=Math.max(e[a],n[a])}),o}return i(t?["left","right"]:["top","bottom"])}function ws(t,e,n,i){const s=[];let o,a,r,l,u,c;for(o=0,a=t.length,u=0;o{typeof p.beforeLayout=="function"&&p.beforeLayout()});const c=l.reduce((p,v)=>v.box.options&&v.box.options.display===!1?p:p+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:n,padding:s,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),f=Object.assign({},s);Df(f,zt(i));const h=Object.assign({maxPadding:f,w:o,h:a,x:s.left,y:s.top},s),m=Bb(l.concat(u),d);ws(r.fullSize,h,d,m),ws(l,h,d,m),ws(u,h,d,m)&&ws(l,h,d,m),Hb(h),Iu(r.leftAndTop,h,d,m),h.x+=h.w,h.y+=h.h,Iu(r.rightAndBottom,h,d,m),t.chartArea={left:h.left,top:h.top,right:h.left+h.w,bottom:h.top+h.h,height:h.h,width:h.w},Ne(r.chartArea,p=>{const v=p.box;Object.assign(v,t.chartArea),v.update(h.w,h.h,{left:0,top:0,right:0,bottom:0})})}};class Of{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,s){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,s?Math.floor(n/s):i)}}isAttached(e){return!0}updateConfig(e){}}class Ub extends Of{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const Do="$chartjs",Yb={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Du=t=>t===null||t==="";function Zb(t,e){const n=t.style,i=t.getAttribute("height"),s=t.getAttribute("width");if(t[Do]={initial:{height:i,width:s,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",Du(s)){const o=vu(t,"width");o!==void 0&&(t.width=o)}if(Du(i))if(t.style.height==="")t.height=t.width/(e||2);else{const o=vu(t,"height");o!==void 0&&(t.height=o)}return t}const Vf=rb?{passive:!0}:!1;function Xb(t,e,n){t&&t.addEventListener(e,n,Vf)}function Kb(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,Vf)}function Qb(t,e){const n=Yb[t.type]||t.type,{x:i,y:s}=ni(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:s!==void 0?s:null}}function Uo(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function Gb(t,e,n){const i=t.canvas,s=new MutationObserver(o=>{let a=!1;for(const r of o)a=a||Uo(r.addedNodes,i),a=a&&!Uo(r.removedNodes,i);a&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}function Jb(t,e,n){const i=t.canvas,s=new MutationObserver(o=>{let a=!1;for(const r of o)a=a||Uo(r.removedNodes,i),a=a&&!Uo(r.addedNodes,i);a&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}const Ns=new Map;let Ou=0;function Ef(){const t=window.devicePixelRatio;t!==Ou&&(Ou=t,Ns.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function ey(t,e){Ns.size||window.addEventListener("resize",Ef),Ns.set(t,e)}function ty(t){Ns.delete(t),Ns.size||window.removeEventListener("resize",Ef)}function ny(t,e,n){const i=t.canvas,s=i&&ul(i);if(!s)return;const o=df((r,l)=>{const u=s.clientWidth;n(r,l),u{const l=r[0],u=l.contentRect.width,c=l.contentRect.height;u===0&&c===0||o(u,c)});return a.observe(s),ey(t,o),a}function Xa(t,e,n){n&&n.disconnect(),e==="resize"&&ty(t)}function iy(t,e,n){const i=t.canvas,s=df(o=>{t.ctx!==null&&n(Qb(o,t))},t);return Xb(i,e,s),s}class sy extends Of{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(Zb(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[Do])return!1;const i=n[Do].initial;["height","width"].forEach(o=>{const a=i[o];Ge(a)?n.removeAttribute(o):n.setAttribute(o,a)});const s=i.style||{};return Object.keys(s).forEach(o=>{n.style[o]=s[o]}),n.width=n.width,delete n[Do],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const s=e.$proxies||(e.$proxies={}),a={attach:Gb,detach:Jb,resize:ny}[n]||iy;s[n]=a(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),s=i[n];if(!s)return;({attach:Xa,detach:Xa,resize:Xa}[n]||Kb)(e,n,s),i[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,s){return ab(e,n,i,s)}isAttached(e){const n=e&&ul(e);return!!(n&&n.isConnected)}}function oy(t){return!ll()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?Ub:sy}class Bt{x;y;active=!1;options;$animations;tooltipPosition(e){const{x:n,y:i}=this.getProps(["x","y"],e);return{x:n,y:i}}hasValue(){return di(this.x)&&di(this.y)}getProps(e,n){const i=this.$animations;if(!n||!i)return this;const s={};return e.forEach(o=>{s[o]=i[o]&&i[o].active()?i[o]._to:this[o]}),s}}Ee(Bt,"defaults",{}),Ee(Bt,"defaultRoutes");function ay(t,e){const n=t.options.ticks,i=ry(t),s=Math.min(n.maxTicksLimit||i,i),o=n.major.enabled?uy(e):[],a=o.length,r=o[0],l=o[a-1],u=[];if(a>s)return cy(e,u,o,a/s),u;const c=ly(o,e,s);if(a>0){let d,f;const h=a>1?Math.round((l-r)/(a-1)):null;for(go(e,u,c,Ge(h)?0:r-h,r),d=0,f=a-1;ds)return l}return Math.max(s,1)}function uy(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,Vu=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,Eu=(t,e)=>Math.min(e||t,t);function Au(t,e){const n=[],i=t.length/e,s=t.length;let o=0;for(;oa+r)))return l}function my(t,e){Ne(t,n=>{const i=n.gc,s=i.length/2;let o;if(s>e){for(o=0;oi?i:n,i=s&&n>i?n:i,{min:vn(n,vn(i,n)),max:vn(i,vn(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Ue(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:s,grace:o,ticks:a}=this.options,r=a.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=$p(this,o,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=r=o||i<=1||!this.isHorizontal()){this.labelRotation=s;return}const c=this._getLabelSizes(),d=c.widest.width,f=c.highest.height,h=cn(this.chart.width-d,0,this.maxWidth);r=e.offset?this.maxWidth/i:h/(i-1),d+6>r&&(r=h/(i-(e.offset?.5:1)),l=this.maxHeight-hs(e.grid)-n.padding-qu(e.title,this.chart.options.font),u=Math.sqrt(d*d+f*f),a=lf(Math.min(Math.asin(cn((c.highest.height+6)/r,-1,1)),Math.asin(cn(l/u,-1,1))-Math.asin(cn(f/u,-1,1)))),a=Math.max(s,Math.min(o,a))),this.labelRotation=a}afterCalculateLabelRotation(){Ue(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Ue(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:s,grid:o}}=this,a=this._isVisible(),r=this.isHorizontal();if(a){const l=qu(s,n.options.font);if(r?(e.width=this.maxWidth,e.height=hs(o)+l):(e.height=this.maxHeight,e.width=hs(o)+l),i.display&&this.ticks.length){const{first:u,last:c,widest:d,highest:f}=this._getLabelSizes(),h=i.padding*2,m=kt(this.labelRotation),p=Math.cos(m),v=Math.sin(m);if(r){const b=i.mirror?0:v*d.width+p*f.height;e.height=Math.min(this.maxHeight,e.height+b+h)}else{const b=i.mirror?0:p*d.width+v*f.height;e.width=Math.min(this.maxWidth,e.width+b+h)}this._calculatePadding(u,c,v,p)}}this._handleMargins(),r?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,s){const{ticks:{align:o,padding:a},position:r}=this.options,l=this.labelRotation!==0,u=r!=="top"&&this.axis==="x";if(this.isHorizontal()){const c=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,h=0;l?u?(f=s*e.width,h=i*n.height):(f=i*e.height,h=s*n.width):o==="start"?h=n.width:o==="end"?f=e.width:o!=="inner"&&(f=e.width/2,h=n.width/2),this.paddingLeft=Math.max((f-c+a)*this.width/(this.width-c),0),this.paddingRight=Math.max((h-d+a)*this.width/(this.width-d),0)}else{let c=n.height/2,d=e.height/2;o==="start"?(c=0,d=e.height):o==="end"&&(c=n.height,d=0),this.paddingTop=c+a,this.paddingBottom=d+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Ue(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:a[D]||0,height:r[D]||0});return{first:L(0),last:L(n-1),widest:L(V),highest:L(E),widths:a,heights:r}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return up(this._alignToPixels?Gn(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&er*s?r/i:l/s:l*s0}_computeGridLineItems(e){const n=this.axis,i=this.chart,s=this.options,{grid:o,position:a,border:r}=s,l=o.offset,u=this.isHorizontal(),d=this.ticks.length+(l?1:0),f=hs(o),h=[],m=r.setContext(this.getContext()),p=m.display?m.width:0,v=p/2,b=function(j){return Gn(i,j,p)};let _,x,w,y,V,E,L,D,T,R,I,H;if(a==="top")_=b(this.bottom),E=this.bottom-f,D=_-v,R=b(e.top)+v,H=e.bottom;else if(a==="bottom")_=b(this.top),R=e.top,H=b(e.bottom)-v,E=_+v,D=this.top+f;else if(a==="left")_=b(this.right),V=this.right-f,L=_-v,T=b(e.left)+v,I=e.right;else if(a==="right")_=b(this.left),T=e.left,I=b(e.right)-v,V=_+v,L=this.left+f;else if(n==="x"){if(a==="center")_=b((e.top+e.bottom)/2+.5);else if(we(a)){const j=Object.keys(a)[0],ee=a[j];_=b(this.chart.scales[j].getPixelForValue(ee))}R=e.top,H=e.bottom,E=_+v,D=E+f}else if(n==="y"){if(a==="center")_=b((e.left+e.right)/2);else if(we(a)){const j=Object.keys(a)[0],ee=a[j];_=b(this.chart.scales[j].getPixelForValue(ee))}V=_-v,L=V-f,T=e.left,I=e.right}const z=Ce(s.ticks.maxTicksLimit,d),Y=Math.max(1,Math.ceil(d/z));for(x=0;x0&&(B-=ue/2);break}O={left:B,top:he,width:ue+P.width,height:J+P.height,color:Y.backdropColor}}v.push({label:w,font:D,textOffset:I,options:{rotation:p,color:ee,strokeColor:U,strokeWidth:re,textAlign:ce,textBaseline:H,translation:[y,V],backdrop:O}})}return v}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-kt(this.labelRotation))return e==="top"?"left":"right";let s="center";return n.align==="start"?s="left":n.align==="end"?s="right":n.align==="inner"&&(s="inner"),s}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:s,padding:o}}=this.options,a=this._getLabelSizes(),r=e+o,l=a.widest.width;let u,c;return n==="left"?s?(c=this.right+o,i==="near"?u="left":i==="center"?(u="center",c+=l/2):(u="right",c+=l)):(c=this.right-r,i==="near"?u="right":i==="center"?(u="center",c-=l/2):(u="left",c=this.left)):n==="right"?s?(c=this.left+o,i==="near"?u="right":i==="center"?(u="center",c-=l/2):(u="left",c-=l)):(c=this.left+r,i==="near"?u="left":i==="center"?(u="center",c+=l/2):(u="right",c=this.right)):u="right",{textAlign:u,x:c}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:s,width:o,height:a}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,s,o,a),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const s=this.ticks.findIndex(o=>o.value===e);return s>=0?n.setContext(this.getContext(s)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let o,a;const r=(l,u,c)=>{!c.width||!c.color||(i.save(),i.lineWidth=c.width,i.strokeStyle=c.color,i.setLineDash(c.borderDash||[]),i.lineDashOffset=c.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(u.x,u.y),i.stroke(),i.restore())};if(n.display)for(o=0,a=s.length;o{this.draw(o)}}]:[{z:i,draw:o=>{this.drawBackground(),this.drawGrid(o),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:n,draw:o=>{this.drawLabels(o)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let o,a;for(o=0,a=n.length;o{const i=n.split("."),s=i.pop(),o=[t].concat(i).join("."),a=e[n].split("."),r=a.pop(),l=a.join(".");dt.route(o,s,l,r)})}function wy(t){return"id"in t&&"defaults"in t}class _y{constructor(){this.controllers=new vo(qi,"datasets",!0),this.elements=new vo(Bt,"elements"),this.plugins=new vo(Object,"plugins"),this.scales=new vo(Zs,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(s=>{const o=i||this._getRegistryForType(s);i||o.isForType(s)||o===this.plugins&&s.id?this._exec(e,o,s):Ne(s,a=>{const r=i||this._getRegistryForType(a);this._exec(e,r,a)})})}_exec(e,n,i){const s=el(e);Ue(i["before"+s],[],i),n[e](i),Ue(i["after"+s],[],i)}_getRegistryForType(e){for(let n=0;no.filter(r=>!a.some(l=>r.plugin.id===l.plugin.id));this._notify(s(n,i),e,"stop"),this._notify(s(i,n),e,"start")}}function ky(t){const e={},n=[],i=Object.keys(bn.plugins.items);for(let o=0;o1&&Lu(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function Ru(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function Oy(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return Ru(t,"x",n[0])||Ru(t,"y",n[0])}return{}}function Vy(t,e){const n=fi[t.type]||{scales:{}},i=e.scales||{},s=yr(t.type,e),o=Object.create(null);return Object.keys(i).forEach(a=>{const r=i[a];if(!we(r))return console.error(`Invalid scale configuration for scale: ${a}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${a}`);const l=xr(a,r,Oy(a,t),dt.scales[r.type]),u=Iy(l,s),c=n.scales||{};o[a]=Ts(Object.create(null),[{axis:l},r,c[l],c[u]])}),t.data.datasets.forEach(a=>{const r=a.type||t.type,l=a.indexAxis||yr(r,e),c=(fi[r]||{}).scales||{};Object.keys(c).forEach(d=>{const f=Ty(d,l),h=a[f+"AxisID"]||f;o[h]=o[h]||Object.create(null),Ts(o[h],[{axis:f},i[h],c[d]])})}),Object.keys(o).forEach(a=>{const r=o[a];Ts(r,[dt.scales[r.type],dt.scale])}),o}function Af(t){const e=t.options||(t.options={});e.plugins=Ce(e.plugins,{}),e.scales=Vy(t,e)}function qf(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function Ey(t){return t=t||{},t.data=qf(t.data),Af(t),t}const $u=new Map,Lf=new Set;function po(t,e){let n=$u.get(t);return n||(n=e(),$u.set(t,n),Lf.add(n)),n}const ms=(t,e,n)=>{const i=zs(e,n);i!==void 0&&t.add(i)};class Ay{constructor(e){this._config=Ey(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=qf(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),Af(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return po(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return po(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return po(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return po(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let s=i.get(e);return(!s||n)&&(s=new Map,i.set(e,s)),s}getOptionScopes(e,n,i){const{options:s,type:o}=this,a=this._cachedScopes(e,i),r=a.get(n);if(r)return r;const l=new Set;n.forEach(c=>{e&&(l.add(e),c.forEach(d=>ms(l,e,d))),c.forEach(d=>ms(l,s,d)),c.forEach(d=>ms(l,fi[o]||{},d)),c.forEach(d=>ms(l,dt,d)),c.forEach(d=>ms(l,pr,d))});const u=Array.from(l);return u.length===0&&u.push(Object.create(null)),Lf.has(n)&&a.set(n,u),u}chartOptionScopes(){const{options:e,type:n}=this;return[e,fi[n]||{},dt.datasets[n]||{},{type:n},dt,pr]}resolveNamedOptions(e,n,i,s=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=Fu(this._resolverCache,e,s);let l=a;if(Ly(a,n)){o.$shared=!1,i=Ut(i)?i():i;const u=this.createResolver(e,i,r);l=Ui(a,i,u)}for(const u of n)o[u]=l[u];return o}createResolver(e,n,i=[""],s){const{resolver:o}=Fu(this._resolverCache,e,i);return we(n)?Ui(o,n,void 0,s):o}}function Fu(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const s=n.join();let o=i.get(s);return o||(o={resolver:ol(e,n),subPrefixes:n.filter(r=>!r.toLowerCase().includes("hover"))},i.set(s,o)),o}const qy=t=>we(t)&&Object.getOwnPropertyNames(t).some(e=>Ut(t[e]));function Ly(t,e){const{isScriptable:n,isIndexable:i}=vf(t);for(const s of e){const o=n(s),a=i(s),r=(a||o)&&t[s];if(o&&(Ut(r)||qy(r))||a&&nt(r))return!0}return!1}var Ry="4.5.0";const $y=["top","bottom","left","right","chartArea"];function zu(t,e){return t==="top"||t==="bottom"||$y.indexOf(t)===-1&&e==="x"}function Bu(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function Nu(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),Ue(n&&n.onComplete,[t],e)}function Fy(t){const e=t.chart,n=e.options.animation;Ue(n&&n.onProgress,[t],e)}function Rf(t){return ll()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Oo={},Wu=t=>{const e=Rf(t);return Object.values(Oo).filter(n=>n.canvas===e).pop()};function zy(t,e,n){const i=Object.keys(t);for(const s of i){const o=+s;if(o>=e){const a=t[s];delete t[s],(n>0||o>e)&&(t[o+n]=a)}}}function By(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}var Rn;let Un=(Rn=class{static register(...e){bn.add(...e),Hu()}static unregister(...e){bn.remove(...e),Hu()}constructor(e,n){const i=this.config=new Ay(n),s=Rf(e),o=Wu(s);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||oy(s)),this.platform.updateConfig(i);const r=this.platform.acquireContext(s,a.aspectRatio),l=r&&r.canvas,u=l&&l.height,c=l&&l.width;if(this.id=Kv(),this.ctx=r,this.canvas=l,this.width=c,this.height=u,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Sy,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=mp(d=>this.update(d),a.resizeDelay||0),this._dataChanges=[],Oo[this.id]=this,!r||!l){console.error("Failed to create chart: can't acquire context from the given item");return}Cn.listen(this,"complete",Nu),Cn.listen(this,"progress",Fy),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:n},width:i,height:s,_aspectRatio:o}=this;return Ge(e)?n&&o?o:s?i/s:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return bn}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():gu(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return fu(this.canvas,this.ctx),this}stop(){return Cn.stop(this),this}resize(e,n){Cn.running(this)?this._resizeBeforeDraw={width:e,height:n}:this._resize(e,n)}_resize(e,n){const i=this.options,s=this.canvas,o=i.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(s,e,n,o),r=i.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,gu(this,r,!0)&&(this.notifyPlugins("resize",{size:a}),Ue(i.onResize,[this,a],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};Ne(n,(i,s)=>{i.id=s})}buildOrUpdateScales(){const e=this.options,n=e.scales,i=this.scales,s=Object.keys(i).reduce((a,r)=>(a[r]=!1,a),{});let o=[];n&&(o=o.concat(Object.keys(n).map(a=>{const r=n[a],l=xr(a,r),u=l==="r",c=l==="x";return{options:r,dposition:u?"chartArea":c?"bottom":"left",dtype:u?"radialLinear":c?"category":"linear"}}))),Ne(o,a=>{const r=a.options,l=r.id,u=xr(l,r),c=Ce(r.type,a.dtype);(r.position===void 0||zu(r.position,u)!==zu(a.dposition))&&(r.position=a.dposition),s[l]=!0;let d=null;if(l in i&&i[l].type===c)d=i[l];else{const f=bn.getScale(c);d=new f({id:l,type:c,ctx:this.ctx,chart:this}),i[d.id]=d}d.init(r,e)}),Ne(s,(a,r)=>{a||delete i[r]}),Ne(i,a=>{Hn.configure(this,a,a.options),Hn.addBox(this,a)})}_updateMetasets(){const e=this._metasets,n=this.data.datasets.length,i=e.length;if(e.sort((s,o)=>s.index-o.index),i>n){for(let s=n;sn.length&&delete this._stacks,e.forEach((i,s)=>{n.filter(o=>o===i._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const e=[],n=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=n.length;i{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const n=this.config;n.update();const i=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let u=0,c=this.data.datasets.length;u{u.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(Bu("z","_idx"));const{_active:r,_lastEvent:l}=this;l?this._eventHandler(l,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){Ne(this.scales,e=>{Hn.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,n=new Set(Object.keys(this._listeners)),i=new Set(e.events);(!iu(n,i)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,n=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:o}of n){const a=i==="_removeElements"?-o:o;zy(e,s,a)}}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const n=this.data.datasets.length,i=o=>new Set(e.filter(a=>a[0]===o).map((a,r)=>r+","+a.splice(1).join(","))),s=i(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(e){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Hn.update(this,this.width,this.height,e);const n=this.chartArea,i=n.width<=0||n.height<=0;this._layers=[],Ne(this.boxes,s=>{i&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,o)=>{s._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})!==!1){for(let n=0,i=this.data.datasets.length;n=0;--n)this._drawDataset(e[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const n=this.ctx,i={meta:e,index:e.index,cancelable:!0},s=Mf(this,e);this.notifyPlugins("beforeDatasetDraw",i)!==!1&&(s&&Us(n,s),e.controller.draw(),s&&Ys(n),i.cancelable=!1,this.notifyPlugins("afterDatasetDraw",i))}isPointInArea(e){return Bs(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,n,i,s){const o=$b.modes[n];return typeof o=="function"?o(this,e,i,s):[]}getDatasetMeta(e){const n=this.data.datasets[e],i=this._metasets;let s=i.filter(o=>o&&o._dataset===n).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:e,_dataset:n,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=vi(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const n=this.data.datasets[e];if(!n)return!1;const i=this.getDatasetMeta(e);return typeof i.hidden=="boolean"?!i.hidden:!n.hidden}setDatasetVisibility(e,n){const i=this.getDatasetMeta(e);i.hidden=!n}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,n,i){const s=i?"show":"hide",o=this.getDatasetMeta(e),a=o.controller._resolveAnimations(void 0,s);Qt(n)?(o.data[n].hidden=!i,this.update()):(this.setDatasetVisibility(e,i),a.update(o,{visible:i}),this.update(r=>r.datasetIndex===e?s:void 0))}hide(e,n){this._updateVisibility(e,n,!1)}show(e,n){this._updateVisibility(e,n,!0)}_destroyDatasetMeta(e){const n=this._metasets[e];n&&n.controller&&n.controller._destroy(),delete this._metasets[e]}_stop(){let e,n;for(this.stop(),Cn.remove(this),e=0,n=this.data.datasets.length;e{n.addEventListener(this,o,a),e[o]=a},s=(o,a,r)=>{o.offsetX=a,o.offsetY=r,this._eventHandler(o)};Ne(this.options.events,o=>i(o,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,n=this.platform,i=(l,u)=>{n.addEventListener(this,l,u),e[l]=u},s=(l,u)=>{e[l]&&(n.removeEventListener(this,l,u),delete e[l])},o=(l,u)=>{this.canvas&&this.resize(l,u)};let a;const r=()=>{s("attach",r),this.attached=!0,this.resize(),i("resize",o),i("detach",a)};a=()=>{this.attached=!1,s("resize",o),this._stop(),this._resize(0,0),i("attach",r)},n.isAttached(this.canvas)?r():a()}unbindEvents(){Ne(this._listeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._listeners={},Ne(this._responsiveListeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,n,i){const s=i?"set":"remove";let o,a,r,l;for(n==="dataset"&&(o=this.getDatasetMeta(e[0].datasetIndex),o.controller["_"+s+"DatasetHoverStyle"]()),r=0,l=e.length;r{const r=this.getDatasetMeta(o);if(!r)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:r.data[a],index:a}});!$o(i,n)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,n))}notifyPlugins(e,n,i){return this._plugins.notify(this,e,n,i)}isPluginEnabled(e){return this._plugins._cache.filter(n=>n.plugin.id===e).length===1}_updateHoverStyles(e,n,i){const s=this.options.hover,o=(l,u)=>l.filter(c=>!u.some(d=>c.datasetIndex===d.datasetIndex&&c.index===d.index)),a=o(n,e),r=i?e:o(e,n);a.length&&this.updateHoverStyle(a,s.mode,!1),r.length&&s.mode&&this.updateHoverStyle(r,s.mode,!0)}_eventHandler(e,n){const i={event:e,replay:n,cancelable:!0,inChartArea:this.isPointInArea(e)},s=a=>(a.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins("beforeEvent",i,s)===!1)return;const o=this._handleEvent(e,n,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(o||i.changed)&&this.render(),this}_handleEvent(e,n,i){const{_active:s=[],options:o}=this,a=n,r=this._getActiveElements(e,s,i,a),l=np(e),u=By(e,this._lastEvent,i,l);i&&(this._lastEvent=null,Ue(o.onHover,[e,r,this],this),l&&Ue(o.onClick,[e,r,this],this));const c=!$o(r,s);return(c||n)&&(this._active=r,this._updateHoverStyles(r,s,n)),this._lastEvent=u,c}_getActiveElements(e,n,i,s){if(e.type==="mouseout")return[];if(!i)return n;const o=this.options.hover;return this.getElementsAtEventForMode(e,o.mode,o,s)}},Ee(Rn,"defaults",dt),Ee(Rn,"instances",Oo),Ee(Rn,"overrides",fi),Ee(Rn,"registry",bn),Ee(Rn,"version",Ry),Ee(Rn,"getChart",Wu),Rn);function Hu(){return Ne(Un.instances,t=>t._plugins.invalidate())}function $f(t,e,n=e){t.lineCap=Ce(n.borderCapStyle,e.borderCapStyle),t.setLineDash(Ce(n.borderDash,e.borderDash)),t.lineDashOffset=Ce(n.borderDashOffset,e.borderDashOffset),t.lineJoin=Ce(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=Ce(n.borderWidth,e.borderWidth),t.strokeStyle=Ce(n.borderColor,e.borderColor)}function Ny(t,e,n){t.lineTo(n.x,n.y)}function Wy(t){return t.stepped?Tp:t.tension||t.cubicInterpolationMode==="monotone"?Ip:Ny}function Ff(t,e,n={}){const i=t.length,{start:s=0,end:o=i-1}=n,{start:a,end:r}=e,l=Math.max(s,a),u=Math.min(o,r),c=sr&&o>r;return{count:i,start:l,loop:e.loop,ilen:u(a+(u?r-w:w))%o,x=()=>{p!==v&&(t.lineTo(c,v),t.lineTo(c,p),t.lineTo(c,b))};for(l&&(h=s[_(0)],t.moveTo(h.x,h.y)),f=0;f<=r;++f){if(h=s[_(f)],h.skip)continue;const w=h.x,y=h.y,V=w|0;V===m?(yv&&(v=y),c=(d*c+w)/++d):(x(),t.lineTo(w,y),m=V,d=0,p=v=y),b=y}x()}function wr(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?jy:Hy}function Uy(t){return t.stepped?lb:t.tension||t.cubicInterpolationMode==="monotone"?ub:ii}function Yy(t,e,n,i){let s=e._path;s||(s=e._path=new Path2D,e.path(s,n,i)&&s.closePath()),$f(t,e.options),t.stroke(s)}function Zy(t,e,n,i){const{segments:s,options:o}=e,a=wr(e);for(const r of s)$f(t,o,r.style),t.beginPath(),a(t,e,r,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const Xy=typeof Path2D=="function";function Ky(t,e,n,i){Xy&&!e.options.segment?Yy(t,e,n,i):Zy(t,e,n,i)}class On extends Bt{constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;eb(this._points,i,e,s,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=gb(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,s=e[n],o=this.points,a=Cf(this,{property:n,start:s,end:s});if(!a.length)return;const r=[],l=Uy(i);let u,c;for(u=0,c=a.length;ue!=="borderDash"&&e!=="fill"});function ju(t,e,n,i){const s=t.options,{[n]:o}=t.getProps([n],i);return Math.abs(e-o){r=ha(a,r,s);const l=s[a],u=s[r];i!==null?(o.push({x:l.x,y:i}),o.push({x:u.x,y:i})):n!==null&&(o.push({x:n,y:l.y}),o.push({x:n,y:u.y}))}),o}function ha(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function Uu(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function zf(t,e){let n=[],i=!1;return nt(t)?(i=!0,n=t):n=Gy(t,e),n.length?new On({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function Yu(t){return t&&t.fill!==!1}function Jy(t,e,n){let s=t[e].fill;const o=[e];let a;if(!n)return s;for(;s!==!1&&o.indexOf(s)===-1;){if(!Ct(s))return s;if(a=t[s],!a)return!1;if(a.visible)return s;o.push(s),s=a.fill}return!1}function e0(t,e,n){const i=s0(t);if(we(i))return isNaN(i.value)?!1:i;let s=parseFloat(i);return Ct(s)&&Math.floor(s)===s?t0(i[0],e,s,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function t0(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function n0(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:we(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function i0(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:we(t)?i=t.value:i=e.getBaseValue(),i}function s0(t){const e=t.options,n=e.fill;let i=Ce(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function o0(t){const{scale:e,index:n,line:i}=t,s=[],o=i.segments,a=i.points,r=a0(e,n);r.push(zf({x:null,y:e.bottom},i));for(let l=0;l=0;--a){const r=s[a].$filler;r&&(r.line.updateControlPoints(o,r.axis),i&&r.fill&&Ka(t.ctx,r,o))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let s=i.length-1;s>=0;--s){const o=i[s].$filler;Yu(o)&&Ka(t.ctx,o,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!Yu(i)||n.drawTime!=="beforeDatasetDraw"||Ka(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const Qu=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},v0=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class Gu extends Bt{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=Ue(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,s)=>e.sort(i,s,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,s=It(i.font),o=s.size,a=this._computeTitleHeight(),{boxWidth:r,itemHeight:l}=Qu(i,o);let u,c;n.font=s.string,this.isHorizontal()?(u=this.maxWidth,c=this._fitRows(a,o,r,l)+10):(c=this.maxHeight,u=this._fitCols(a,s,r,l)+10),this.width=Math.min(u,e.maxWidth||this.maxWidth),this.height=Math.min(c,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,s){const{ctx:o,maxWidth:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],u=this.lineWidths=[0],c=s+r;let d=e;o.textAlign="left",o.textBaseline="middle";let f=-1,h=-c;return this.legendItems.forEach((m,p)=>{const v=i+n/2+o.measureText(m.text).width;(p===0||u[u.length-1]+v+2*r>a)&&(d+=c,u[u.length-(p>0?0:1)]=0,h+=c,f++),l[p]={left:0,top:h,row:f,width:v,height:s},u[u.length-1]+=v+r}),d}_fitCols(e,n,i,s){const{ctx:o,maxHeight:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],u=this.columnSizes=[],c=a-e;let d=r,f=0,h=0,m=0,p=0;return this.legendItems.forEach((v,b)=>{const{itemWidth:_,itemHeight:x}=p0(i,n,o,v,s);b>0&&h+x+2*r>c&&(d+=f+r,u.push({width:f,height:h}),m+=f+r,p++,f=h=0),l[b]={left:m,top:h,col:p,width:_,height:x},f=Math.max(f,_),h+=x+r}),d+=f,u.push({width:f,height:h}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:s},rtl:o}}=this,a=Ai(o,this.left,this.width);if(this.isHorizontal()){let r=0,l=Xt(i,this.left+s,this.right-this.lineWidths[r]);for(const u of n)r!==u.row&&(r=u.row,l=Xt(i,this.left+s,this.right-this.lineWidths[r])),u.top+=this.top+e+s,u.left=a.leftForLtr(a.x(l),u.width),l+=u.width+s}else{let r=0,l=Xt(i,this.top+e+s,this.bottom-this.columnSizes[r].height);for(const u of n)u.col!==r&&(r=u.col,l=Xt(i,this.top+e+s,this.bottom-this.columnSizes[r].height)),u.top=l,u.left+=this.left+s,u.left=a.leftForLtr(a.x(u.left),u.width),l+=u.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;Us(e,this),this._draw(),Ys(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:s}=this,{align:o,labels:a}=e,r=dt.color,l=Ai(e.rtl,this.left,this.width),u=It(a.font),{padding:c}=a,d=u.size,f=d/2;let h;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=u.string;const{boxWidth:m,boxHeight:p,itemHeight:v}=Qu(a,d),b=function(V,E,L){if(isNaN(m)||m<=0||isNaN(p)||p<0)return;s.save();const D=Ce(L.lineWidth,1);if(s.fillStyle=Ce(L.fillStyle,r),s.lineCap=Ce(L.lineCap,"butt"),s.lineDashOffset=Ce(L.lineDashOffset,0),s.lineJoin=Ce(L.lineJoin,"miter"),s.lineWidth=D,s.strokeStyle=Ce(L.strokeStyle,r),s.setLineDash(Ce(L.lineDash,[])),a.usePointStyle){const T={radius:p*Math.SQRT2/2,pointStyle:L.pointStyle,rotation:L.rotation,borderWidth:D},R=l.xPlus(V,m/2),I=E+f;mf(s,T,R,I,a.pointStyleWidth&&m)}else{const T=E+Math.max((d-p)/2,0),R=l.leftForLtr(V,m),I=Ei(L.borderRadius);s.beginPath(),Object.values(I).some(H=>H!==0)?Ho(s,{x:R,y:T,w:m,h:p,radius:I}):s.rect(R,T,m,p),s.fill(),D!==0&&s.stroke()}s.restore()},_=function(V,E,L){Wo(s,L.text,V,E+v/2,u,{strikethrough:L.hidden,textAlign:l.textAlign(L.textAlign)})},x=this.isHorizontal(),w=this._computeTitleHeight();x?h={x:Xt(o,this.left+c,this.right-i[0]),y:this.top+c+w,line:0}:h={x:this.left+c,y:Xt(o,this.top+w+c,this.bottom-n[0].height),line:0},wf(this.ctx,e.textDirection);const y=v+c;this.legendItems.forEach((V,E)=>{s.strokeStyle=V.fontColor,s.fillStyle=V.fontColor;const L=s.measureText(V.text).width,D=l.textAlign(V.textAlign||(V.textAlign=a.textAlign)),T=m+f+L;let R=h.x,I=h.y;l.setWidth(this.width),x?E>0&&R+T+c>this.right&&(I=h.y+=y,h.line++,R=h.x=Xt(o,this.left+c,this.right-i[h.line])):E>0&&I+y>this.bottom&&(R=h.x=R+n[h.line].width+c,h.line++,I=h.y=Xt(o,this.top+w+c,this.bottom-n[h.line].height));const H=l.x(R);if(b(H,I,V),R=gp(D,R+m+f,x?R+T:this.right,e.rtl),_(l.x(R),I,V),x)h.x+=T+c;else if(typeof V.text!="string"){const z=u.lineHeight;h.y+=Wf(V,z)+c}else h.y+=y}),_f(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=It(n.font),s=zt(n.padding);if(!n.display)return;const o=Ai(e.rtl,this.left,this.width),a=this.ctx,r=n.position,l=i.size/2,u=s.top+l;let c,d=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),c=this.top+u,d=Xt(e.align,d,this.right-f);else{const m=this.columnSizes.reduce((p,v)=>Math.max(p,v.height),0);c=u+Xt(e.align,this.top,this.bottom-m-e.labels.padding-this._computeTitleHeight())}const h=Xt(r,d,d+f);a.textAlign=o.textAlign(ff(r)),a.textBaseline="middle",a.strokeStyle=n.color,a.fillStyle=n.color,a.font=i.string,Wo(a,n.text,h,c,i)}_computeTitleHeight(){const e=this.options.title,n=It(e.font),i=zt(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,s,o;if(Di(e,this.left,this.right)&&Di(n,this.top,this.bottom)){for(o=this.legendHitBoxes,i=0;io.length>a.length?o:a)),e+n.size/2+i.measureText(s).width}function y0(t,e,n){let i=t;return typeof e.text!="string"&&(i=Wf(e,n)),i}function Wf(t,e){const n=t.text?t.text.length:0;return e*n}function x0(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var Hf={id:"legend",_element:Gu,start(t,e,n){const i=t.legend=new Gu({ctx:t.ctx,options:n,chart:t});Hn.configure(t,i,n),Hn.addBox(t,i)},stop(t){Hn.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;Hn.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,s=n.chart;s.isDatasetVisible(i)?(s.hide(i),e.hidden=!0):(s.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:s,color:o,useBorderRadius:a,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map(l=>{const u=l.controller.getStyle(n?0:void 0),c=zt(u.borderWidth);return{text:e[l.index].label,fillStyle:u.backgroundColor,fontColor:o,hidden:!l.visible,lineCap:u.borderCapStyle,lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:(c.width+c.height)/4,strokeStyle:u.borderColor,pointStyle:i||u.pointStyle,rotation:u.rotation,textAlign:s||u.textAlign,borderRadius:a&&(r||u.borderRadius),datasetIndex:l.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};const _s={average(t){if(!t.length)return!1;let e,n,i=new Set,s=0,o=0;for(e=0,n=t.length;er+l)/i.size,y:s/o}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,s=Number.POSITIVE_INFINITY,o,a,r;for(o=0,a=t.length;o-1?t.split(` -`):t}function w0(t,e){const{element:n,datasetIndex:i,index:s}=e,o=t.getDatasetMeta(i).controller,{label:a,value:r}=o.getLabelAndValue(s);return{chart:t,label:a,parsed:o.getParsed(s),raw:t.data.datasets[i].data[s],formattedValue:r,dataset:o.getDataset(),dataIndex:s,datasetIndex:i,element:n}}function Ju(t,e){const n=t.chart.ctx,{body:i,footer:s,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=It(e.bodyFont),u=It(e.titleFont),c=It(e.footerFont),d=o.length,f=s.length,h=i.length,m=zt(e.padding);let p=m.height,v=0,b=i.reduce((w,y)=>w+y.before.length+y.lines.length+y.after.length,0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(p+=d*u.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){const w=e.displayColors?Math.max(r,l.lineHeight):l.lineHeight;p+=h*w+(b-h)*l.lineHeight+(b-1)*e.bodySpacing}f&&(p+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const x=function(w){v=Math.max(v,n.measureText(w).width+_)};return n.save(),n.font=u.string,Ne(t.title,x),n.font=l.string,Ne(t.beforeBody.concat(t.afterBody),x),_=e.displayColors?a+2+e.boxPadding:0,Ne(i,w=>{Ne(w.before,x),Ne(w.lines,x),Ne(w.after,x)}),_=0,n.font=c.string,Ne(t.footer,x),n.restore(),v+=m.width,{width:v,height:p}}function _0(t,e){const{y:n,height:i}=e;return nt.height-i/2?"bottom":"center"}function S0(t,e,n,i){const{x:s,width:o}=i,a=n.caretSize+n.caretPadding;if(t==="left"&&s+o+a>e.width||t==="right"&&s-o-a<0)return!0}function k0(t,e,n,i){const{x:s,width:o}=n,{width:a,chartArea:{left:r,right:l}}=t;let u="center";return i==="center"?u=s<=(r+l)/2?"left":"right":s<=o/2?u="left":s>=a-o/2&&(u="right"),S0(u,t,e,n)&&(u="center"),u}function ec(t,e,n){const i=n.yAlign||e.yAlign||_0(t,n);return{xAlign:n.xAlign||e.xAlign||k0(t,e,n,i),yAlign:i}}function C0(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function M0(t,e,n){let{y:i,height:s}=t;return e==="top"?i+=n:e==="bottom"?i-=s+n:i-=s/2,i}function tc(t,e,n,i){const{caretSize:s,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=n,u=s+o,{topLeft:c,topRight:d,bottomLeft:f,bottomRight:h}=Ei(a);let m=C0(e,r);const p=M0(e,l,u);return l==="center"?r==="left"?m+=u:r==="right"&&(m-=u):r==="left"?m-=Math.max(c,f)+s:r==="right"&&(m+=Math.max(d,h)+s),{x:cn(m,0,i.width-e.width),y:cn(p,0,i.height-e.height)}}function bo(t,e,n){const i=zt(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function nc(t){return pn([],Mn(t))}function P0(t,e,n){return vi(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function ic(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const jf={beforeTitle:Sn,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex"u"?jf[e].call(n,i):s}class Sr extends Bt{constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&n.options.animation&&i.animations,o=new cl(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=P0(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,s=Ht(i,"beforeTitle",this,e),o=Ht(i,"title",this,e),a=Ht(i,"afterTitle",this,e);let r=[];return r=pn(r,Mn(s)),r=pn(r,Mn(o)),r=pn(r,Mn(a)),r}getBeforeBody(e,n){return nc(Ht(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,s=[];return Ne(e,o=>{const a={before:[],lines:[],after:[]},r=ic(i,o);pn(a.before,Mn(Ht(r,"beforeLabel",this,o))),pn(a.lines,Ht(r,"label",this,o)),pn(a.after,Mn(Ht(r,"afterLabel",this,o))),s.push(a)}),s}getAfterBody(e,n){return nc(Ht(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,s=Ht(i,"beforeFooter",this,e),o=Ht(i,"footer",this,e),a=Ht(i,"afterFooter",this,e);let r=[];return r=pn(r,Mn(s)),r=pn(r,Mn(o)),r=pn(r,Mn(a)),r}_createItems(e){const n=this._active,i=this.chart.data,s=[],o=[],a=[];let r=[],l,u;for(l=0,u=n.length;le.filter(c,d,f,i))),e.itemSort&&(r=r.sort((c,d)=>e.itemSort(c,d,i))),Ne(r,c=>{const d=ic(e.callbacks,c);s.push(Ht(d,"labelColor",this,c)),o.push(Ht(d,"labelPointStyle",this,c)),a.push(Ht(d,"labelTextColor",this,c))}),this.labelColors=s,this.labelPointStyles=o,this.labelTextColors=a,this.dataPoints=r,r}update(e,n){const i=this.options.setContext(this.getContext()),s=this._active;let o,a=[];if(!s.length)this.opacity!==0&&(o={opacity:0});else{const r=_s[i.position].call(this,s,this._eventPosition);a=this._createItems(i),this.title=this.getTitle(a,i),this.beforeBody=this.getBeforeBody(a,i),this.body=this.getBody(a,i),this.afterBody=this.getAfterBody(a,i),this.footer=this.getFooter(a,i);const l=this._size=Ju(this,i),u=Object.assign({},r,l),c=ec(this.chart,i,u),d=tc(i,u,c,this.chart);this.xAlign=c.xAlign,this.yAlign=c.yAlign,o={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:r.x,caretY:r.y}}this._tooltipItems=a,this.$context=void 0,o&&this._resolveAnimations().update(this,o),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,s){const o=this.getCaretPosition(e,i,s);n.lineTo(o.x1,o.y1),n.lineTo(o.x2,o.y2),n.lineTo(o.x3,o.y3)}getCaretPosition(e,n,i){const{xAlign:s,yAlign:o}=this,{caretSize:a,cornerRadius:r}=i,{topLeft:l,topRight:u,bottomLeft:c,bottomRight:d}=Ei(r),{x:f,y:h}=e,{width:m,height:p}=n;let v,b,_,x,w,y;return o==="center"?(w=h+p/2,s==="left"?(v=f,b=v-a,x=w+a,y=w-a):(v=f+m,b=v+a,x=w-a,y=w+a),_=v):(s==="left"?b=f+Math.max(l,c)+a:s==="right"?b=f+m-Math.max(u,d)-a:b=this.caretX,o==="top"?(x=h,w=x-a,v=b-a,_=b+a):(x=h+p,w=x+a,v=b+a,_=b-a),y=x),{x1:v,x2:b,x3:_,y1:x,y2:w,y3:y}}drawTitle(e,n,i){const s=this.title,o=s.length;let a,r,l;if(o){const u=Ai(i.rtl,this.x,this.width);for(e.x=bo(this,i.titleAlign,i),n.textAlign=u.textAlign(i.titleAlign),n.textBaseline="middle",a=It(i.titleFont),r=i.titleSpacing,n.fillStyle=i.titleColor,n.font=a.string,l=0;l_!==0)?(e.beginPath(),e.fillStyle=o.multiKeyBackground,Ho(e,{x:p,y:m,w:u,h:l,radius:b}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),Ho(e,{x:v,y:m+1,w:u-2,h:l-2,radius:b}),e.fill()):(e.fillStyle=o.multiKeyBackground,e.fillRect(p,m,u,l),e.strokeRect(p,m,u,l),e.fillStyle=a.backgroundColor,e.fillRect(v,m+1,u-2,l-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:s}=this,{bodySpacing:o,bodyAlign:a,displayColors:r,boxHeight:l,boxWidth:u,boxPadding:c}=i,d=It(i.bodyFont);let f=d.lineHeight,h=0;const m=Ai(i.rtl,this.x,this.width),p=function(L){n.fillText(L,m.x(e.x+h),e.y+f/2),e.y+=f+o},v=m.textAlign(a);let b,_,x,w,y,V,E;for(n.textAlign=a,n.textBaseline="middle",n.font=d.string,e.x=bo(this,v,i),n.fillStyle=i.bodyColor,Ne(this.beforeBody,p),h=r&&v!=="right"?a==="center"?u/2+c:u+2+c:0,w=0,V=s.length;w0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,s=i&&i.x,o=i&&i.y;if(s||o){const a=_s[e.position].call(this,this._active,this._eventPosition);if(!a)return;const r=this._size=Ju(this,e),l=Object.assign({},a,this._size),u=ec(n,e,l),c=tc(e,l,u,n);(s._to!==c.x||o._to!==c.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=r.width,this.height=r.height,this.caretX=a.x,this.caretY=a.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},o={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const a=zt(n.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&r&&(e.save(),e.globalAlpha=i,this.drawBackground(o,e,s,n),wf(e,n.textDirection),o.y+=a.top,this.drawTitle(o,e,n),this.drawBody(o,e,n),this.drawFooter(o,e,n),_f(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,s=e.map(({datasetIndex:r,index:l})=>{const u=this.chart.getDatasetMeta(r);if(!u)throw new Error("Cannot find a dataset at index "+r);return{datasetIndex:r,element:u.data[l],index:l}}),o=!$o(i,s),a=this._positionChanged(s,n);(o||a)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,o=this._active||[],a=this._getActiveElements(e,o,n,i),r=this._positionChanged(a,e),l=n||!$o(a,o)||r;return l&&(this._active=a,(s.enabled||s.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,i,s){const o=this.options;if(e.type==="mouseout")return[];if(!s)return n.filter(r=>this.chart.data.datasets[r.datasetIndex]&&this.chart.getDatasetMeta(r.datasetIndex).controller.getParsed(r.index)!==void 0);const a=this.chart.getElementsAtEventForMode(e,o.mode,o,i);return o.reverse&&a.reverse(),a}_positionChanged(e,n){const{caretX:i,caretY:s,options:o}=this,a=_s[o.position].call(this,e,n);return a!==!1&&(i!==a.x||s!==a.y)}}Ee(Sr,"positioners",_s);var T0={id:"tooltip",_element:Sr,positioners:_s,afterInit(t,e,n){n&&(t.tooltip=new Sr({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:jf},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};function I0(t,e){const n=[],{bounds:s,step:o,min:a,max:r,precision:l,count:u,maxTicks:c,maxDigits:d,includeBounds:f}=t,h=o||1,m=c-1,{min:p,max:v}=e,b=!Ge(a),_=!Ge(r),x=!Ge(u),w=(v-p)/(d+1);let y=su((v-p)/m/h)*h,V,E,L,D;if(y<1e-14&&!b&&!_)return[{value:p},{value:v}];D=Math.ceil(v/y)-Math.floor(p/y),D>m&&(y=su(D*y/m/h)*h),Ge(l)||(V=Math.pow(10,l),y=Math.ceil(y*V)/V),s==="ticks"?(E=Math.floor(p/y)*y,L=Math.ceil(v/y)*y):(E=p,L=v),b&&_&&o&&ap((r-a)/o,y/1e3)?(D=Math.round(Math.min((r-a)/y,c)),y=(r-a)/D,E=a,L=r):x?(E=b?a:E,L=_?r:L,D=u-1,y=(L-E)/D):(D=(L-E)/y,Is(D,Math.round(D),y/1e3)?D=Math.round(D):D=Math.ceil(D));const T=Math.max(ou(y),ou(E));V=Math.pow(10,Ge(l)?T:l),E=Math.round(E*V)/V,L=Math.round(L*V)/V;let R=0;for(b&&(f&&E!==a?(n.push({value:a}),Er)break;n.push({value:I})}return _&&f&&L!==r?n.length&&Is(n[n.length-1].value,r,sc(r,w,t))?n[n.length-1].value=r:n.push({value:r}):(!_||L===r)&&n.push({value:L}),n}function sc(t,e,{horizontal:n,minRotation:i}){const s=kt(i),o=(n?Math.sin(s):Math.cos(s))||.001,a=.75*e*(""+t).length;return Math.min(e/o,a)}class D0 extends Zs{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return Ge(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:s,max:o}=this;const a=l=>s=n?s:l,r=l=>o=i?o:l;if(e){const l=Hi(s),u=Hi(o);l<0&&u<0?r(0):l>0&&u>0&&a(0)}if(s===o){let l=o===0?1:Math.abs(o*.05);r(o+l),e||a(s-l)}this.min=s,this.max=o}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,s;return i?(s=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},o=this._range||this,a=I0(s,o);return e.bounds==="ticks"&&rp(a,this,"value"),e.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const s=(i-n)/Math.max(e.length-1,1)/2;n-=s,i+=s}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return sl(e,this.chart.options.locale,this.options.ticks.format)}}class Yo extends D0{determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=Ct(e)?e:0,this.max=Ct(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=kt(this.options.ticks.minRotation),s=(e?Math.sin(i):Math.cos(i))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,o.lineHeight/s))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}Ee(Yo,"id","linear"),Ee(Yo,"defaults",{ticks:{callback:hf.formatters.numeric}});const ma={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},jt=Object.keys(ma);function oc(t,e){return t-e}function ac(t,e){if(Ge(e))return null;const n=t._adapter,{parser:i,round:s,isoWeekday:o}=t._parseOpts;let a=e;return typeof i=="function"&&(a=i(a)),Ct(a)||(a=typeof i=="string"?n.parse(a,i):n.parse(a)),a===null?null:(s&&(a=s==="week"&&(di(o)||o===!0)?n.startOf(a,"isoWeek",o):n.startOf(a,s)),+a)}function rc(t,e,n,i){const s=jt.length;for(let o=jt.indexOf(t);o=jt.indexOf(n);o--){const a=jt[o];if(ma[a].common&&t._adapter.diff(s,i,a)>=e-1)return a}return jt[n?jt.indexOf(n):0]}function V0(t){for(let e=jt.indexOf(t)+1,n=jt.length;e=e?n[i]:n[s];t[o]=!0}}function E0(t,e,n,i){const s=t._adapter,o=+s.startOf(e[0].value,i),a=e[e.length-1].value;let r,l;for(r=o;r<=a;r=+s.add(r,1,i))l=n[r],l>=0&&(e[l].major=!0);return e}function uc(t,e,n){const i=[],s={},o=e.length;let a,r;for(a=0;a+e.value))}initOffsets(e=[]){let n=0,i=0,s,o;this.options.offset&&e.length&&(s=this.getDecimalForValue(e[0]),e.length===1?n=1-s:n=(this.getDecimalForValue(e[1])-s)/2,o=this.getDecimalForValue(e[e.length-1]),e.length===1?i=o:i=(o-this.getDecimalForValue(e[e.length-2]))/2);const a=e.length<3?.5:.25;n=cn(n,0,a),i=cn(i,0,a),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,s=this.options,o=s.time,a=o.unit||rc(o.minUnit,n,i,this._getLabelCapacity(n)),r=Ce(s.ticks.stepSize,1),l=a==="week"?o.isoWeekday:!1,u=di(l)||l===!0,c={};let d=n,f,h;if(u&&(d=+e.startOf(d,"isoWeek",l)),d=+e.startOf(d,u?"day":a),e.diff(i,n,a)>1e5*r)throw new Error(n+" and "+i+" are too far apart with stepSize of "+r+" "+a);const m=s.ticks.source==="data"&&this.getDataTimestamps();for(f=d,h=0;f+p)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const s=this.options.time.displayFormats,o=this._unit,a=n||s[o];return this._adapter.format(e,a)}_tickFormatFunction(e,n,i,s){const o=this.options,a=o.ticks.callback;if(a)return Ue(a,[e,n,i],this);const r=o.time.displayFormats,l=this._unit,u=this._majorUnit,c=l&&r[l],d=u&&r[u],f=i[n],h=u&&d&&f&&f.major;return this._adapter.format(e,s||(h?d:c))}generateTickLabels(e){let n,i,s;for(n=0,i=e.length;n0?r:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,i=s.length;n=t[i].pos&&e<=t[s].pos&&({lo:i,hi:s}=oi(t,"pos",e)),{pos:o,time:r}=t[i],{pos:a,time:l}=t[s]):(e>=t[i].time&&e<=t[s].time&&({lo:i,hi:s}=oi(t,"time",e)),{time:o,pos:r}=t[i],{time:a,pos:l}=t[s]);const u=a-o;return u?r+(l-r)*(e-o)/u:r}class cc extends Zi{constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=yo(n,this.min),this._tableRange=yo(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,s=[],o=[];let a,r,l,u,c;for(a=0,r=e.length;a=n&&u<=i&&s.push(u);if(s.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(a=0,r=s.length;as-o)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(yo(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return yo(this._table,i*this._tableRange+this._minPos,!0)}}Ee(cc,"id","timeseries"),Ee(cc,"defaults",Zi.defaults);const Uf={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},A0={ariaLabel:{type:String},ariaDescribedby:{type:String}},q0={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...Uf,...A0},L0=ug[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function Ci(t){return Ed(t)?Tn(t):t}function R0(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Ed(e)?new Proxy(t,{}):t}function $0(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function Yf(t,e){t.labels=e}function Zf(t,e,n){const i=[];t.datasets=e.map(s=>{const o=t.datasets.find(a=>a[n]===s[n]);return!o||!s.data||i.includes(o)?{...s}:(i.push(o),Object.assign(o,s),o)})}function F0(t,e){const n={labels:[],datasets:[]};return Yf(n,t.labels),Zf(n,t.datasets,e),n}const z0=be({props:q0,setup(t,e){let{expose:n,slots:i}=e;const s=N(null),o=Vd(null);n({chart:o});const a=()=>{if(!s.value)return;const{type:u,data:c,options:d,plugins:f,datasetIdKey:h}=t,m=F0(c,h),p=R0(m,c);o.value=new Un(s.value,{type:u,data:p,options:{...d},plugins:f})},r=()=>{const u=Tn(o.value);u&&(t.destroyDelay>0?setTimeout(()=>{u.destroy(),o.value=null},t.destroyDelay):(u.destroy(),o.value=null))},l=u=>{u.update(t.updateMode)};return hn(a),cg(r),fe([()=>t.options,()=>t.data],(u,c)=>{let[d,f]=u,[h,m]=c;const p=Tn(o.value);if(!p)return;let v=!1;if(d){const b=Ci(d),_=Ci(h);b&&b!==_&&($0(p,b),v=!0)}if(f){const b=Ci(f.labels),_=Ci(m.labels),x=Ci(f.datasets),w=Ci(m.datasets);b!==_&&(Yf(p.config.data,b),v=!0),x&&x!==w&&(Zf(p.config.data,x,t.datasetIdKey),v=!0)}v&&bt(()=>{l(p)})},{deep:!0}),()=>S("canvas",{role:"img",ariaLabel:t.ariaLabel,ariaDescribedby:t.ariaDescribedby,ref:s},[S("p",{},[i.default?i.default():""])])}});function B0(t,e){return Un.register(e),be({props:Uf,setup(n,i){let{expose:s}=i;const o=Vd(null),a=r=>{o.value=r?.chart};return s({chart:o}),()=>S(z0,L0({ref:a},{type:t,...n}))}})}const Xf=B0("line",Li),fl=dg("localData",()=>{const t=gi(),e=N(!t.platform.is.mobile),n=()=>{e.value=!e.value},i=N([]),s=l=>{i.value.includes(l)||i.value.push(l)},o=l=>{i.value=i.value.filter(u=>u!==l)};return{hiddenDatasets:i,isDatasetHidden:l=>i.value.includes(l),toggleDataset:l=>{i.value.includes(l)?o(l):s(l)},hideDataset:s,showDataset:o,legendVisible:e,toggleLegendVisibility:n}}),ui=[];let Xi;function N0(t){Xi=t.keyCode===27}function W0(){Xi===!0&&(Xi=!1)}function H0(t){Xi===!0&&(Xi=!1,aa(t,27)===!0&&ui[ui.length-1](t))}function Kf(t){window[t]("keydown",N0),window[t]("blur",W0),window[t]("keyup",H0),Xi=!1}function Qf(t){zn.is.desktop===!0&&(ui.push(t),ui.length===1&&Kf("addEventListener"))}function Zo(t){const e=ui.indexOf(t);e!==-1&&(ui.splice(e,1),ui.length===0&&Kf("removeEventListener"))}const ci=[];function Gf(t){ci[ci.length-1](t)}function Jf(t){zn.is.desktop===!0&&(ci.push(t),ci.length===1&&document.body.addEventListener("focusin",Gf))}function kr(t){const e=ci.indexOf(t);e!==-1&&(ci.splice(e,1),ci.length===0&&document.body.removeEventListener("focusin",Gf))}const eh=Be({name:"QMenu",inheritAttrs:!1,props:{...Og,...Bd,...mn,...Kr,persistent:Boolean,autoClose:Boolean,separateClosePopup:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,fit:Boolean,cover:Boolean,square:Boolean,anchor:{type:String,validator:Ul},self:{type:String,validator:Ul},offset:{type:Array,validator:Dg},scrollTarget:zd,touchPosition:Boolean,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null}},emits:[...Fd,"click","escapeKey"],setup(t,{slots:e,emit:n,attrs:i}){let s=null,o,a,r;const l=Ye(),{proxy:u}=l,{$q:c}=u,d=N(null),f=N(!1),h=g(()=>t.persistent!==!0&&t.noRouteDismiss!==!0),m=gn(t,c),{registerTick:p,removeTick:v}=Ps(),{registerTimeout:b}=Ls(),{transitionProps:_,transitionStyle:x}=Nd(t),{localScrollTarget:w,changeScrollEvent:y,unconfigureScrollTarget:V}=Vg(t,J),{anchorEl:E,canShow:L}=Eg({showing:f}),{hide:D}=Wd({showing:f,canShow:L,handleShow:ce,handleHide:O,hideOnRouteChange:h,processOnMount:!0}),{showPortal:T,hidePortal:R,renderPortal:I}=Hd(l,d,_e,"menu"),H={anchorEl:E,innerRef:d,onClickOutside(G){if(t.persistent!==!0&&f.value===!0)return D(G),(G.type==="touchstart"||G.target.classList.contains("q-dialog__backdrop"))&&Vt(G),!0}},z=g(()=>Yl(t.anchor||(t.cover===!0?"center middle":"bottom start"),c.lang.rtl)),Y=g(()=>t.cover===!0?z.value:Yl(t.self||"top start",c.lang.rtl)),j=g(()=>(t.square===!0?" q-menu--square":"")+(m.value===!0?" q-menu--dark q-dark":"")),ee=g(()=>t.autoClose===!0?{onClick:ue}:{}),U=g(()=>f.value===!0&&t.persistent!==!0);fe(U,G=>{G===!0?(Qf(B),Ag(H)):(Zo(B),Zl(H))});function re(){ca(()=>{let G=d.value;G&&G.contains(document.activeElement)!==!0&&(G=G.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||G.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||G.querySelector("[autofocus], [data-autofocus]")||G,G.focus({preventScroll:!0}))})}function ce(G){if(s=t.noRefocus===!1?document.activeElement:null,Jf(he),T(),J(),o=void 0,G!==void 0&&(t.touchPosition||t.contextMenu)){const qe=Ro(G);if(qe.left!==void 0){const{top:Qe,left:Nt}=E.value.getBoundingClientRect();o={left:qe.left-Nt,top:qe.top-Qe}}}a===void 0&&(a=fe(()=>c.screen.width+"|"+c.screen.height+"|"+t.self+"|"+t.anchor+"|"+c.lang.rtl,te)),t.noFocus!==!0&&document.activeElement.blur(),p(()=>{te(),t.noFocus!==!0&&re()}),b(()=>{c.platform.is.ios===!0&&(r=t.autoClose,d.value.click()),te(),T(!0),n("show",G)},t.transitionDuration)}function O(G){v(),R(),P(!0),s!==null&&(G===void 0||G.qClickOutside!==!0)&&(((G?.type.indexOf("key")===0?s.closest('[tabindex]:not([tabindex^="-"])'):void 0)||s).focus(),s=null),b(()=>{R(!0),n("hide",G)},t.transitionDuration)}function P(G){o=void 0,a!==void 0&&(a(),a=void 0),(G===!0||f.value===!0)&&(kr(he),V(),Zl(H),Zo(B)),G!==!0&&(s=null)}function J(){(E.value!==null||t.scrollTarget!==void 0)&&(w.value=jd(E.value,t.scrollTarget),y(w.value,te))}function ue(G){r!==!0?(qg(u,G),n("click",G)):r=!1}function he(G){U.value===!0&&t.noFocus!==!0&&Ad(d.value,G.target)!==!0&&re()}function B(G){t.noEscDismiss!==!0&&(n("escapeKey"),D(G))}function te(){Lg({targetEl:d.value,offset:t.offset,anchorEl:E.value,anchorOrigin:z.value,selfOrigin:Y.value,absoluteOffset:o,fit:t.fit,cover:t.cover,maxHeight:t.maxHeight,maxWidth:t.maxWidth})}function _e(){return S(As,_.value,()=>f.value===!0?S("div",{role:"menu",...i,ref:d,tabindex:-1,class:["q-menu q-position-engine scroll"+j.value,i.class],style:[i.style,x.value],...ee.value},it(e.default)):null)}return qt(P),Object.assign(u,{focus:re,updatePosition:te}),I}});function j0(t){return t??null}function dc(t,e){return t??(e===!0?`f_${mr()}`:null)}function th({getValue:t,required:e=!0}={}){if(fg.value===!0){const n=t!==void 0?N(j0(t())):N(null);return e===!0&&n.value===null&&hn(()=>{n.value=`f_${mr()}`}),t!==void 0&&fe(t,i=>{n.value=dc(i,e)}),n}return t!==void 0?g(()=>dc(t(),e)):N(`f_${mr()}`)}const U0=Object.keys(qd);function Y0(t){return U0.reduce((e,n)=>{const i=t[n];return i!==void 0&&(e[n]=i),e},{})}const Xo=Be({name:"QBtnDropdown",props:{...qd,...Kr,modelValue:Boolean,split:Boolean,dropdownIcon:String,contentClass:[Array,String,Object],contentStyle:[Array,String,Object],cover:Boolean,persistent:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,autoClose:Boolean,noRefocus:Boolean,noFocus:Boolean,menuAnchor:{type:String,default:"bottom end"},menuSelf:{type:String,default:"top end"},menuOffset:Array,disableMainBtn:Boolean,disableDropdown:Boolean,noIconAnimation:Boolean,toggleAriaLabel:String},emits:["update:modelValue","click","beforeShow","show","beforeHide","hide"],setup(t,{slots:e,emit:n}){const{proxy:i}=Ye(),s=N(t.modelValue),o=N(null),a=th(),r=g(()=>{const w={"aria-expanded":s.value===!0?"true":"false","aria-haspopup":"true","aria-controls":a.value,"aria-label":t.toggleAriaLabel||i.$q.lang.label[s.value===!0?"collapse":"expand"](t.label)};return(t.disable===!0||t.split===!1&&t.disableMainBtn===!0||t.disableDropdown===!0)&&(w["aria-disabled"]="true"),w}),l=g(()=>"q-btn-dropdown__arrow"+(s.value===!0&&t.noIconAnimation===!1?" rotate-180":"")+(t.split===!1?" q-btn-dropdown__arrow-container":"")),u=g(()=>hg(t)),c=g(()=>Y0(t));fe(()=>t.modelValue,w=>{o.value?.[w?"show":"hide"]()}),fe(()=>t.split,x);function d(w){s.value=!0,n("beforeShow",w)}function f(w){n("show",w),n("update:modelValue",!0)}function h(w){s.value=!1,n("beforeHide",w)}function m(w){n("hide",w),n("update:modelValue",!1)}function p(w){n("click",w)}function v(w){In(w),x(),n("click",w)}function b(w){o.value?.toggle(w)}function _(w){o.value?.show(w)}function x(w){o.value?.hide(w)}return Object.assign(i,{show:_,hide:x,toggle:b}),hn(()=>{t.modelValue===!0&&_()}),()=>{const w=[S(xe,{class:l.value,name:t.dropdownIcon||i.$q.iconSet.arrow.dropdown})];return t.disableDropdown!==!0&&w.push(S(eh,{ref:o,id:a.value,class:t.contentClass,style:t.contentStyle,cover:t.cover,fit:!0,persistent:t.persistent,noEscDismiss:t.noEscDismiss,noRouteDismiss:t.noRouteDismiss,autoClose:t.autoClose,noFocus:t.noFocus,noRefocus:t.noRefocus,anchor:t.menuAnchor,self:t.menuSelf,offset:t.menuOffset,separateClosePopup:!0,transitionShow:t.transitionShow,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,onBeforeShow:d,onShow:f,onBeforeHide:h,onHide:m},e.default)),t.split===!1?S(ke,{class:"q-btn-dropdown q-btn-dropdown--simple",...c.value,...r.value,disable:t.disable===!0||t.disableMainBtn===!0,noWrap:!0,round:!1,onClick:p},{default:()=>it(e.label,[]).concat(w),loading:e.loading}):S(xn,{class:"q-btn-dropdown q-btn-dropdown--split no-wrap q-btn-item",rounded:t.rounded,square:t.square,...u.value,glossy:t.glossy,stretch:t.stretch},()=>[S(ke,{class:"q-btn-dropdown--current",...c.value,disable:t.disable===!0||t.disableMainBtn===!0,noWrap:!0,round:!1,onClick:v},{default:e.label,loading:e.loading}),S(ke,{class:"q-btn-dropdown__arrow-container q-anchor--skip",...r.value,...u.value,disable:t.disable===!0||t.disableDropdown===!0,rounded:t.rounded,color:t.color,textColor:t.textColor,dense:t.dense,size:t.size,padding:t.padding,ripple:t.ripple},()=>w)])}}}),Z0={key:0,width:"20",height:"3"},X0=["stroke"],K0={key:1,width:"20",height:"3"},Q0=["stroke"],G0=be({__name:"HistoryChartLegendCategory",props:{label:{},items:{},toggleDataset:{type:Function},getItemColor:{type:Function},getItemLineType:{type:Function},menuAnchor:{},menuSelf:{},menuFormat:{}},setup(t){return(e,n)=>(M(),X(Xo,{flat:"","no-caps":"",dense:"",color:"primary",label:e.label,class:Re(e.menuFormat),"menu-anchor":e.menuAnchor,"menu-self":e.menuSelf},{default:A(()=>[C(Bi,{dense:"",class:"q-pa-none",style:{"max-height":"200px","overflow-y":"auto"}},{default:A(()=>[(M(!0),Q(De,null,Ke(e.items,(i,s)=>(M(),X(Ni,{key:i.text||s,clickable:"",dense:"",class:Re(["q-py-none",{"legend-item-hidden":i.hidden}]),onClick:o=>i.datasetIndex!==void 0&&e.toggleDataset(i.text,i.datasetIndex)},{default:A(()=>[C(Xn,{avatar:"",class:"q-pr-none"},{default:A(()=>[e.getItemLineType(i)==="dashed"?(M(),Q("svg",Z0,[q("line",{x1:"0",y1:"1.5",x2:"20",y2:"1.5",stroke:e.getItemColor(i),"stroke-width":"2","stroke-dasharray":"8,2"},null,8,X0)])):(M(),Q("svg",K0,[q("line",{x1:"0",y1:"1.5",x2:"30",y2:"1.5",stroke:e.getItemColor(i),"stroke-width":"2"},null,8,Q0)]))]),_:2},1024),C(Xn,null,{default:A(()=>[C(Wi,{class:"text-caption"},{default:A(()=>[Ve(se(i.text),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})]),_:1},8,["label","class","menu-anchor","menu-self"]))}}),Ga=mt(G0,[["__scopeId","data-v-32f86429"]]),J0={class:"row justify-center items-center"},fc=be({__name:"HistoryChartLegendCategoriesGroup",props:{categorizedLegendItems:{},toggleDataset:{type:Function},getItemColor:{type:Function},getItemLineType:{type:Function}},setup(t){return(e,n)=>(M(),Q("div",J0,[C(Ga,{label:"Komponenten",items:e.categorizedLegendItems.component,toggleDataset:e.toggleDataset,getItemColor:e.getItemColor,getItemLineType:e.getItemLineType,menuAnchor:"bottom right",menuSelf:"top right"},null,8,["items","toggleDataset","getItemColor","getItemLineType"]),C(Ga,{label:"Ladepunkte",items:e.categorizedLegendItems.chargepoint,toggleDataset:e.toggleDataset,getItemColor:e.getItemColor,getItemLineType:e.getItemLineType,menuAnchor:"bottom middle",menuSelf:"top middle",menuFormat:"q-mx-lg"},null,8,["items","toggleDataset","getItemColor","getItemLineType"]),C(Ga,{label:"Fahrzeuge",items:e.categorizedLegendItems.vehicle,toggleDataset:e.toggleDataset,getItemColor:e.getItemColor,getItemLineType:e.getItemLineType,menuAnchor:"bottom left",menuSelf:"top left"},null,8,["items","toggleDataset","getItemColor","getItemLineType"])]))}}),ex={class:"row wrap q-pa-none items-center justify-center"},tx={key:0,width:"20",height:"3"},nx=["stroke"],ix={key:1,width:"20",height:"3"},sx=["stroke"],ox=be({__name:"HistoryChartLegendStandard",props:{items:{},toggleDataset:{type:Function},getItemColor:{type:Function},getItemLineType:{type:Function}},setup(t){return(e,n)=>(M(),X(Bi,{class:"q-pa-none"},{default:A(()=>[q("div",ex,[(M(!0),Q(De,null,Ke(e.items,(i,s)=>(M(),X(Ni,{key:i.text||s,clickable:"",dense:"",class:Re(["q-py-none",{"legend-item-hidden":i.hidden}]),onClick:o=>i.datasetIndex!==void 0&&e.toggleDataset(i.text,i.datasetIndex)},{default:A(()=>[C(Xn,{avatar:"",class:"q-pr-none"},{default:A(()=>[e.getItemLineType(i)==="dashed"?(M(),Q("svg",tx,[q("line",{x1:"0",y1:"1.5",x2:"20",y2:"1.5",stroke:e.getItemColor(i),"stroke-width":"2","stroke-dasharray":"8,2"},null,8,nx)])):(M(),Q("svg",ix,[q("line",{x1:"0",y1:"1.5",x2:"30",y2:"1.5",stroke:e.getItemColor(i),"stroke-width":"2"},null,8,sx)]))]),_:2},1024),C(Xn,null,{default:A(()=>[C(Wi,{class:"text-caption"},{default:A(()=>[Ve(se(i.text),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))])]),_:1}))}}),ax=mt(ox,[["__scopeId","data-v-2d9f3a37"]]),rx=be({__name:"HistoryChartLegend",props:{chart:{}},setup(t){const e=Fe(),n=gi(),i=t,s=fl(),o=N([]),a=g(()=>o.value.length>20),r=g(()=>e.batteryConfigured),l=()=>{if(!i.chart)return;let h=i.chart.options.plugins?.legend?.labels?.generateLabels?.(i.chart)||[];r.value||(h=h.filter(m=>m.text!=="Speicher ges."&&m.text!=="Speicher SoC")),h.forEach(m=>{m.text&&s.isDatasetHidden(m.text)&&(m.hidden=!0);const p=i.chart?.data.datasets[m.datasetIndex];m.category=p.category}),o.value=h},u=g(()=>{const h={chargepoint:[],vehicle:[],battery:[],component:[]};for(const m of o.value){const p=m.category;p&&h[p]?h[p].push(m):h.component.push(m)}return Object.keys(h).forEach(m=>{h[m].sort((p,v)=>(p.text||"").localeCompare(v.text||"",void 0,{numeric:!0}))}),h}),c=h=>!i.chart||h.datasetIndex===void 0?"#ccc":i.chart.data.datasets[h.datasetIndex].borderColor||"#ccc",d=h=>{if(!i.chart||h.datasetIndex===void 0)return;const p=i.chart.data.datasets[h.datasetIndex].borderDash;return Array.isArray(p)&&p.length>0?"dashed":"solid"},f=(h,m)=>{!i.chart||!h||m===void 0||(s.toggleDataset(h),s.isDatasetHidden(h)?i.chart.hide(m):i.chart.show(m),l(),i.chart.update())};return fe(()=>i.chart,h=>{h&&(h.data.datasets.forEach((m,p)=>{typeof m.label=="string"&&s.isDatasetHidden(m.label)&&h.hide(p)}),h.update(),l())},{immediate:!0}),fe(()=>e.vehicleList,async()=>{await bt(),l()}),(h,m)=>Pe(n).screen.lt.md?(M(),X(fc,{key:0,categorizedLegendItems:u.value,toggleDataset:f,getItemColor:c,getItemLineType:d},null,8,["categorizedLegendItems"])):h.chart&&!Pe(n).screen.lt.sm&&!a.value?(M(),X(ax,{key:1,items:o.value,toggleDataset:f,getItemColor:c,getItemLineType:d},null,8,["items"])):(M(),X(fc,{key:2,categorizedLegendItems:u.value,toggleDataset:f,getItemColor:c,getItemLineType:d},null,8,["categorizedLegendItems"]))}});class pi extends Error{}class lx extends pi{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class ux extends pi{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class cx extends pi{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class Oi extends pi{}class nh extends pi{constructor(e){super(`Invalid unit ${e}`)}}class Ot extends pi{}class Ln extends pi{constructor(){super("Zone is an abstract class")}}const ne="numeric",fn="short",Kt="long",Ko={year:ne,month:ne,day:ne},ih={year:ne,month:fn,day:ne},dx={year:ne,month:fn,day:ne,weekday:fn},sh={year:ne,month:Kt,day:ne},oh={year:ne,month:Kt,day:ne,weekday:Kt},ah={hour:ne,minute:ne},rh={hour:ne,minute:ne,second:ne},lh={hour:ne,minute:ne,second:ne,timeZoneName:fn},uh={hour:ne,minute:ne,second:ne,timeZoneName:Kt},ch={hour:ne,minute:ne,hourCycle:"h23"},dh={hour:ne,minute:ne,second:ne,hourCycle:"h23"},fh={hour:ne,minute:ne,second:ne,hourCycle:"h23",timeZoneName:fn},hh={hour:ne,minute:ne,second:ne,hourCycle:"h23",timeZoneName:Kt},mh={year:ne,month:ne,day:ne,hour:ne,minute:ne},gh={year:ne,month:ne,day:ne,hour:ne,minute:ne,second:ne},vh={year:ne,month:fn,day:ne,hour:ne,minute:ne},ph={year:ne,month:fn,day:ne,hour:ne,minute:ne,second:ne},fx={year:ne,month:fn,day:ne,weekday:fn,hour:ne,minute:ne},bh={year:ne,month:Kt,day:ne,hour:ne,minute:ne,timeZoneName:fn},yh={year:ne,month:Kt,day:ne,hour:ne,minute:ne,second:ne,timeZoneName:fn},xh={year:ne,month:Kt,day:ne,weekday:Kt,hour:ne,minute:ne,timeZoneName:Kt},wh={year:ne,month:Kt,day:ne,weekday:Kt,hour:ne,minute:ne,second:ne,timeZoneName:Kt};class Xs{get type(){throw new Ln}get name(){throw new Ln}get ianaName(){return this.name}get isUniversal(){throw new Ln}offsetName(e,n){throw new Ln}formatOffset(e,n){throw new Ln}offset(e){throw new Ln}equals(e){throw new Ln}get isValid(){throw new Ln}}let Ja=null;class ga extends Xs{static get instance(){return Ja===null&&(Ja=new ga),Ja}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:n,locale:i}){return Vh(e,n,i)}formatOffset(e,n){return Es(this.offset(e),n)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}const Cr=new Map;function hx(t){let e=Cr.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),Cr.set(t,e)),e}const mx={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function gx(t,e){const n=t.format(e).replace(/\u200E/g,""),i=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,s,o,a,r,l,u,c]=i;return[a,s,o,r,l,u,c]}function vx(t,e){const n=t.formatToParts(e),i=[];for(let s=0;s=0?m:1e3+m,(f-h)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let hc={};function px(t,e={}){const n=JSON.stringify([t,e]);let i=hc[n];return i||(i=new Intl.ListFormat(t,e),hc[n]=i),i}const Mr=new Map;function Pr(t,e={}){const n=JSON.stringify([t,e]);let i=Mr.get(n);return i===void 0&&(i=new Intl.DateTimeFormat(t,e),Mr.set(n,i)),i}const Tr=new Map;function bx(t,e={}){const n=JSON.stringify([t,e]);let i=Tr.get(n);return i===void 0&&(i=new Intl.NumberFormat(t,e),Tr.set(n,i)),i}const Ir=new Map;function yx(t,e={}){const{base:n,...i}=e,s=JSON.stringify([t,i]);let o=Ir.get(s);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),Ir.set(s,o)),o}let Ss=null;function xx(){return Ss||(Ss=new Intl.DateTimeFormat().resolvedOptions().locale,Ss)}const Dr=new Map;function _h(t){let e=Dr.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Dr.set(t,e)),e}const Or=new Map;function wx(t){let e=Or.get(t);if(!e){const n=new Intl.Locale(t);e="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in e||(e={...Sh,...e}),Or.set(t,e)}return e}function _x(t){const e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));const n=t.indexOf("-u-");if(n===-1)return[t];{let i,s;try{i=Pr(t).resolvedOptions(),s=t}catch{const l=t.substring(0,n);i=Pr(l).resolvedOptions(),s=l}const{numberingSystem:o,calendar:a}=i;return[s,o,a]}}function Sx(t,e,n){return(n||e)&&(t.includes("-u-")||(t+="-u"),n&&(t+=`-ca-${n}`),e&&(t+=`-nu-${e}`)),t}function kx(t){const e=[];for(let n=1;n<=12;n++){const i=de.utc(2009,n,1);e.push(t(i))}return e}function Cx(t){const e=[];for(let n=1;n<=7;n++){const i=de.utc(2016,11,13+n);e.push(t(i))}return e}function xo(t,e,n,i){const s=t.listingMode();return s==="error"?null:s==="en"?n(e):i(e)}function Mx(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||_h(t.locale).numberingSystem==="latn"}class Px{constructor(e,n,i){this.padTo=i.padTo||0,this.floor=i.floor||!1;const{padTo:s,floor:o,...a}=i;if(!n||Object.keys(a).length>0){const r={useGrouping:!1,...i};i.padTo>0&&(r.minimumIntegerDigits=i.padTo),this.inf=bx(e,r)}}format(e){if(this.inf){const n=this.floor?Math.floor(e):e;return this.inf.format(n)}else{const n=this.floor?Math.floor(e):pl(e,3);return pt(n,this.padTo)}}}class Tx{constructor(e,n,i){this.opts=i,this.originalZone=void 0;let s;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){const a=-1*(e.offset/60),r=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&En.create(r).valid?(s=r,this.dt=e):(s="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,s=e.zone.name):(s="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const o={...this.opts};o.timeZone=o.timeZone||s,this.dtf=Pr(n,o)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(n=>{if(n.type==="timeZoneName"){const i=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:i}}else return n}):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class Ix{constructor(e,n,i){this.opts={style:"long",...i},!n&&Dh()&&(this.rtf=yx(e,i))}format(e,n){return this.rtf?this.rtf.format(e,n):Qx(n,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,n){return this.rtf?this.rtf.formatToParts(e,n):[]}}const Sh={firstDay:1,minimalDays:4,weekend:[6,7]};class ze{static fromOpts(e){return ze.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,n,i,s,o=!1){const a=e||ut.defaultLocale,r=a||(o?"en-US":xx()),l=n||ut.defaultNumberingSystem,u=i||ut.defaultOutputCalendar,c=Er(s)||ut.defaultWeekSettings;return new ze(r,l,u,c,a)}static resetCache(){Ss=null,Mr.clear(),Tr.clear(),Ir.clear(),Dr.clear(),Or.clear()}static fromObject({locale:e,numberingSystem:n,outputCalendar:i,weekSettings:s}={}){return ze.create(e,n,i,s)}constructor(e,n,i,s,o){const[a,r,l]=_x(e);this.locale=a,this.numberingSystem=n||r||null,this.outputCalendar=i||l||null,this.weekSettings=s,this.intl=Sx(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Mx(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&n?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:ze.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,Er(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,n=!1){return xo(this,e,qh,()=>{const i=this.intl==="ja"||this.intl.startsWith("ja-");n&=!i;const s=n?{month:e,day:"numeric"}:{month:e},o=n?"format":"standalone";if(!this.monthsCache[o][e]){const a=i?r=>this.dtFormatter(r,s).format():r=>this.extract(r,s,"month");this.monthsCache[o][e]=kx(a)}return this.monthsCache[o][e]})}weekdays(e,n=!1){return xo(this,e,$h,()=>{const i=n?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=n?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=Cx(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(){return xo(this,void 0,()=>Fh,()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[de.utc(2016,11,13,9),de.utc(2016,11,13,19)].map(n=>this.extract(n,e,"dayperiod"))}return this.meridiemCache})}eras(e){return xo(this,e,zh,()=>{const n={era:e};return this.eraCache[e]||(this.eraCache[e]=[de.utc(-40,1,1),de.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,n,i){const s=this.dtFormatter(e,n),o=s.formatToParts(),a=o.find(r=>r.type.toLowerCase()===i);return a?a.value:null}numberFormatter(e={}){return new Px(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,n={}){return new Tx(e,this.intl,n)}relFormatter(e={}){return new Ix(this.intl,this.isEnglish(),e)}listFormatter(e={}){return px(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||_h(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Oh()?wx(this.locale):Sh}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let tr=null;class Ft extends Xs{static get utcInstance(){return tr===null&&(tr=new Ft(0)),tr}static instance(e){return e===0?Ft.utcInstance:new Ft(e)}static parseSpecifier(e){if(e){const n=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new Ft(ba(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Es(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Es(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,n){return Es(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class Dx extends Xs{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Nn(t,e){if(pe(t)||t===null)return e;if(t instanceof Xs)return t;if(Lx(t)){const n=t.toLowerCase();return n==="default"?e:n==="local"||n==="system"?ga.instance:n==="utc"||n==="gmt"?Ft.utcInstance:Ft.parseSpecifier(n)||En.create(t)}else return Yn(t)?Ft.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Dx(t)}const hl={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},mc={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Ox=hl.hanidec.replace(/[\[|\]]/g,"").split("");function Vx(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let n=0;n=o&&i<=a&&(e+=i-o)}}return parseInt(e,10)}else return e}const Vr=new Map;function Ex(){Vr.clear()}function an({numberingSystem:t},e=""){const n=t||"latn";let i=Vr.get(n);i===void 0&&(i=new Map,Vr.set(n,i));let s=i.get(e);return s===void 0&&(s=new RegExp(`${hl[n]}${e}`),i.set(e,s)),s}let gc=()=>Date.now(),vc="system",pc=null,bc=null,yc=null,xc=60,wc,_c=null;class ut{static get now(){return gc}static set now(e){gc=e}static set defaultZone(e){vc=e}static get defaultZone(){return Nn(vc,ga.instance)}static get defaultLocale(){return pc}static set defaultLocale(e){pc=e}static get defaultNumberingSystem(){return bc}static set defaultNumberingSystem(e){bc=e}static get defaultOutputCalendar(){return yc}static set defaultOutputCalendar(e){yc=e}static get defaultWeekSettings(){return _c}static set defaultWeekSettings(e){_c=Er(e)}static get twoDigitCutoffYear(){return xc}static set twoDigitCutoffYear(e){xc=e%100}static get throwOnInvalid(){return wc}static set throwOnInvalid(e){wc=e}static resetCaches(){ze.resetCache(),En.resetCache(),de.resetCache(),Ex()}}class dn{constructor(e,n){this.reason=e,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const kh=[0,31,59,90,120,151,181,212,243,273,304,334],Ch=[0,31,60,91,121,152,182,213,244,274,305,335];function tn(t,e){return new dn("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function ml(t,e,n){const i=new Date(Date.UTC(t,e-1,n));t<100&&t>=0&&i.setUTCFullYear(i.getUTCFullYear()-1900);const s=i.getUTCDay();return s===0?7:s}function Mh(t,e,n){return n+(Ks(t)?Ch:kh)[e-1]}function Ph(t,e){const n=Ks(t)?Ch:kh,i=n.findIndex(o=>oWs(i,e,n)?(u=i+1,l=1):u=i,{weekYear:u,weekNumber:l,weekday:r,...ya(t)}}function Sc(t,e=4,n=1){const{weekYear:i,weekNumber:s,weekday:o}=t,a=gl(ml(i,1,e),n),r=Ri(i);let l=s*7+o-a-7+e,u;l<1?(u=i-1,l+=Ri(u)):l>r?(u=i+1,l-=Ri(i)):u=i;const{month:c,day:d}=Ph(u,l);return{year:u,month:c,day:d,...ya(t)}}function nr(t){const{year:e,month:n,day:i}=t,s=Mh(e,n,i);return{year:e,ordinal:s,...ya(t)}}function kc(t){const{year:e,ordinal:n}=t,{month:i,day:s}=Ph(e,n);return{year:e,month:i,day:s,...ya(t)}}function Cc(t,e){if(!pe(t.localWeekday)||!pe(t.localWeekNumber)||!pe(t.localWeekYear)){if(!pe(t.weekday)||!pe(t.weekNumber)||!pe(t.weekYear))throw new Oi("Cannot mix locale-based week fields with ISO-based week fields");return pe(t.localWeekday)||(t.weekday=t.localWeekday),pe(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),pe(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function Ax(t,e=4,n=1){const i=va(t.weekYear),s=nn(t.weekNumber,1,Ws(t.weekYear,e,n)),o=nn(t.weekday,1,7);return i?s?o?!1:tn("weekday",t.weekday):tn("week",t.weekNumber):tn("weekYear",t.weekYear)}function qx(t){const e=va(t.year),n=nn(t.ordinal,1,Ri(t.year));return e?n?!1:tn("ordinal",t.ordinal):tn("year",t.year)}function Th(t){const e=va(t.year),n=nn(t.month,1,12),i=nn(t.day,1,Go(t.year,t.month));return e?n?i?!1:tn("day",t.day):tn("month",t.month):tn("year",t.year)}function Ih(t){const{hour:e,minute:n,second:i,millisecond:s}=t,o=nn(e,0,23)||e===24&&n===0&&i===0&&s===0,a=nn(n,0,59),r=nn(i,0,59),l=nn(s,0,999);return o?a?r?l?!1:tn("millisecond",s):tn("second",i):tn("minute",n):tn("hour",e)}function pe(t){return typeof t>"u"}function Yn(t){return typeof t=="number"}function va(t){return typeof t=="number"&&t%1===0}function Lx(t){return typeof t=="string"}function Rx(t){return Object.prototype.toString.call(t)==="[object Date]"}function Dh(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Oh(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function $x(t){return Array.isArray(t)?t:[t]}function Mc(t,e,n){if(t.length!==0)return t.reduce((i,s)=>{const o=[e(s),s];return i&&n(i[0],o[0])===i[0]?i:o},null)[1]}function Fx(t,e){return e.reduce((n,i)=>(n[i]=t[i],n),{})}function Ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Er(t){if(t==null)return null;if(typeof t!="object")throw new Ot("Week settings must be an object");if(!nn(t.firstDay,1,7)||!nn(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!nn(e,1,7)))throw new Ot("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function nn(t,e,n){return va(t)&&t>=e&&t<=n}function zx(t,e){return t-e*Math.floor(t/e)}function pt(t,e=2){const n=t<0;let i;return n?i="-"+(""+-t).padStart(e,"0"):i=(""+t).padStart(e,"0"),i}function Fn(t){if(!(pe(t)||t===null||t===""))return parseInt(t,10)}function ei(t){if(!(pe(t)||t===null||t===""))return parseFloat(t)}function vl(t){if(!(pe(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function pl(t,e,n="round"){const i=10**e;switch(n){case"expand":return t>0?Math.ceil(t*i)/i:Math.floor(t*i)/i;case"trunc":return Math.trunc(t*i)/i;case"round":return Math.round(t*i)/i;case"floor":return Math.floor(t*i)/i;case"ceil":return Math.ceil(t*i)/i;default:throw new RangeError(`Value rounding ${n} is out of range`)}}function Ks(t){return t%4===0&&(t%100!==0||t%400===0)}function Ri(t){return Ks(t)?366:365}function Go(t,e){const n=zx(e-1,12)+1,i=t+(e-n)/12;return n===2?Ks(i)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function pa(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}function Pc(t,e,n){return-gl(ml(t,1,e),n)+e-1}function Ws(t,e=4,n=1){const i=Pc(t,e,n),s=Pc(t+1,e,n);return(Ri(t)-i+s)/7}function Ar(t){return t>99?t:t>ut.twoDigitCutoffYear?1900+t:2e3+t}function Vh(t,e,n,i=null){const s=new Date(t),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};i&&(o.timeZone=i);const a={timeZoneName:e,...o},r=new Intl.DateTimeFormat(n,a).formatToParts(s).find(l=>l.type.toLowerCase()==="timezonename");return r?r.value:null}function ba(t,e){let n=parseInt(t,10);Number.isNaN(n)&&(n=0);const i=parseInt(e,10)||0,s=n<0||Object.is(n,-0)?-i:i;return n*60+s}function Eh(t){const e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new Ot(`Invalid unit value ${t}`);return e}function Jo(t,e){const n={};for(const i in t)if(Ki(t,i)){const s=t[i];if(s==null)continue;n[e(i)]=Eh(s)}return n}function Es(t,e){const n=Math.trunc(Math.abs(t/60)),i=Math.trunc(Math.abs(t%60)),s=t>=0?"+":"-";switch(e){case"short":return`${s}${pt(n,2)}:${pt(i,2)}`;case"narrow":return`${s}${n}${i>0?`:${i}`:""}`;case"techie":return`${s}${pt(n,2)}${pt(i,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function ya(t){return Fx(t,["hour","minute","second","millisecond"])}const Bx=["January","February","March","April","May","June","July","August","September","October","November","December"],Ah=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Nx=["J","F","M","A","M","J","J","A","S","O","N","D"];function qh(t){switch(t){case"narrow":return[...Nx];case"short":return[...Ah];case"long":return[...Bx];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const Lh=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Rh=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Wx=["M","T","W","T","F","S","S"];function $h(t){switch(t){case"narrow":return[...Wx];case"short":return[...Rh];case"long":return[...Lh];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const Fh=["AM","PM"],Hx=["Before Christ","Anno Domini"],jx=["BC","AD"],Ux=["B","A"];function zh(t){switch(t){case"narrow":return[...Ux];case"short":return[...jx];case"long":return[...Hx];default:return null}}function Yx(t){return Fh[t.hour<12?0:1]}function Zx(t,e){return $h(e)[t.weekday-1]}function Xx(t,e){return qh(e)[t.month-1]}function Kx(t,e){return zh(e)[t.year<0?0:1]}function Qx(t,e,n="always",i=!1){const s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(t)===-1;if(n==="auto"&&o){const d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${s[t][0]}`;case-1:return d?"yesterday":`last ${s[t][0]}`;case 0:return d?"today":`this ${s[t][0]}`}}const a=Object.is(e,-0)||e<0,r=Math.abs(e),l=r===1,u=s[t],c=i?l?u[1]:u[2]||u[1]:l?s[t][0]:t;return a?`${r} ${c} ago`:`in ${r} ${c}`}function Tc(t,e){let n="";for(const i of t)i.literal?n+=i.val:n+=e(i.val);return n}const Gx={D:Ko,DD:ih,DDD:sh,DDDD:oh,t:ah,tt:rh,ttt:lh,tttt:uh,T:ch,TT:dh,TTT:fh,TTTT:hh,f:mh,ff:vh,fff:bh,ffff:xh,F:gh,FF:ph,FFF:yh,FFFF:wh};class Et{static create(e,n={}){return new Et(e,n)}static parseFormat(e){let n=null,i="",s=!1;const o=[];for(let a=0;a0||s)&&o.push({literal:s||/^\s+$/.test(i),val:i===""?"'":i}),n=null,i="",s=!s):s||r===n?i+=r:(i.length>0&&o.push({literal:/^\s+$/.test(i),val:i}),i=r,n=r)}return i.length>0&&o.push({literal:s||/^\s+$/.test(i),val:i}),o}static macroTokenToFormatOpts(e){return Gx[e]}constructor(e,n){this.opts=n,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...n}).format()}dtFormatter(e,n={}){return this.loc.dtFormatter(e,{...this.opts,...n})}formatDateTime(e,n){return this.dtFormatter(e,n).format()}formatDateTimeParts(e,n){return this.dtFormatter(e,n).formatToParts()}formatInterval(e,n){return this.dtFormatter(e.start,n).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,n){return this.dtFormatter(e,n).resolvedOptions()}num(e,n=0,i=void 0){if(this.opts.forceSimple)return pt(e,n);const s={...this.opts};return n>0&&(s.padTo=n),i&&(s.signDisplay=i),this.loc.numberFormatter(s).format(e)}formatDateTimeFromString(e,n){const i=this.loc.listingMode()==="en",s=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=(h,m)=>this.loc.extract(e,h,m),a=h=>e.isOffsetFixed&&e.offset===0&&h.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,h.format):"",r=()=>i?Yx(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(h,m)=>i?Xx(e,h):o(m?{month:h}:{month:h,day:"numeric"},"month"),u=(h,m)=>i?Zx(e,h):o(m?{weekday:h}:{weekday:h,month:"long",day:"numeric"},"weekday"),c=h=>{const m=Et.macroTokenToFormatOpts(h);return m?this.formatWithSystemDefault(e,m):h},d=h=>i?Kx(e,h):o({era:h},"era"),f=h=>{switch(h){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return r();case"d":return s?o({day:"numeric"},"day"):this.num(e.day);case"dd":return s?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return u("short",!0);case"cccc":return u("long",!0);case"ccccc":return u("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return u("short",!1);case"EEEE":return u("long",!1);case"EEEEE":return u("narrow",!1);case"L":return s?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return s?o({month:"numeric"},"month"):this.num(e.month);case"MM":return s?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return s?o({year:"numeric"},"year"):this.num(e.year);case"yy":return s?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return c(h)}};return Tc(Et.parseFormat(n),f)}formatDurationFromString(e,n){const i=this.opts.signMode==="negativeLargestOnly"?-1:1,s=c=>{switch(c[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},o=(c,d)=>f=>{const h=s(f);if(h){const m=d.isNegativeDuration&&h!==d.largestUnit?i:1;let p;return this.opts.signMode==="negativeLargestOnly"&&h!==d.largestUnit?p="never":this.opts.signMode==="all"?p="always":p="auto",this.num(c.get(h)*m,f.length,p)}else return f},a=Et.parseFormat(n),r=a.reduce((c,{literal:d,val:f})=>d?c:c.concat(f),[]),l=e.shiftTo(...r.map(s).filter(c=>c)),u={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return Tc(a,o(l,u))}}const Bh=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Gi(...t){const e=t.reduce((n,i)=>n+i.source,"");return RegExp(`^${e}$`)}function Ji(...t){return e=>t.reduce(([n,i,s],o)=>{const[a,r,l]=o(e,s);return[{...n,...a},r||i,l]},[{},null,1]).slice(0,2)}function es(t,...e){if(t==null)return[null,null];for(const[n,i]of e){const s=n.exec(t);if(s)return i(s)}return[null,null]}function Nh(...t){return(e,n)=>{const i={};let s;for(s=0;sh!==void 0&&(m||h&&c)?-h:h;return[{years:f(ei(n)),months:f(ei(i)),weeks:f(ei(s)),days:f(ei(o)),hours:f(ei(a)),minutes:f(ei(r)),seconds:f(ei(l),l==="-0"),milliseconds:f(vl(u),d)}]}const dw={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function xl(t,e,n,i,s,o,a){const r={year:e.length===2?Ar(Fn(e)):Fn(e),month:Ah.indexOf(n)+1,day:Fn(i),hour:Fn(s),minute:Fn(o)};return a&&(r.second=Fn(a)),t&&(r.weekday=t.length>3?Lh.indexOf(t)+1:Rh.indexOf(t)+1),r}const fw=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function hw(t){const[,e,n,i,s,o,a,r,l,u,c,d]=t,f=xl(e,s,i,n,o,a,r);let h;return l?h=dw[l]:u?h=0:h=ba(c,d),[f,new Ft(h)]}function mw(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const gw=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,vw=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,pw=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Ic(t){const[,e,n,i,s,o,a,r]=t;return[xl(e,s,i,n,o,a,r),Ft.utcInstance]}function bw(t){const[,e,n,i,s,o,a,r]=t;return[xl(e,r,n,i,s,o,a),Ft.utcInstance]}const yw=Gi(ew,yl),xw=Gi(tw,yl),ww=Gi(nw,yl),_w=Gi(Hh),Uh=Ji(rw,ts,Qs,Gs),Sw=Ji(iw,ts,Qs,Gs),kw=Ji(sw,ts,Qs,Gs),Cw=Ji(ts,Qs,Gs);function Mw(t){return es(t,[yw,Uh],[xw,Sw],[ww,kw],[_w,Cw])}function Pw(t){return es(mw(t),[fw,hw])}function Tw(t){return es(t,[gw,Ic],[vw,Ic],[pw,bw])}function Iw(t){return es(t,[uw,cw])}const Dw=Ji(ts);function Ow(t){return es(t,[lw,Dw])}const Vw=Gi(ow,aw),Ew=Gi(jh),Aw=Ji(ts,Qs,Gs);function qw(t){return es(t,[Vw,Uh],[Ew,Aw])}const Dc="Invalid Duration",Yh={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Lw={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...Yh},Jt=146097/400,Mi=146097/4800,Rw={years:{quarters:4,months:12,weeks:Jt/7,days:Jt,hours:Jt*24,minutes:Jt*24*60,seconds:Jt*24*60*60,milliseconds:Jt*24*60*60*1e3},quarters:{months:3,weeks:Jt/28,days:Jt/4,hours:Jt*24/4,minutes:Jt*24*60/4,seconds:Jt*24*60*60/4,milliseconds:Jt*24*60*60*1e3/4},months:{weeks:Mi/7,days:Mi,hours:Mi*24,minutes:Mi*24*60,seconds:Mi*24*60*60,milliseconds:Mi*24*60*60*1e3},...Yh},ai=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],$w=ai.slice(0).reverse();function kn(t,e,n=!1){const i={values:n?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new Ae(i)}function Zh(t,e){let n=e.milliseconds??0;for(const i of $w.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}function Oc(t,e){const n=Zh(t,e)<0?-1:1;ai.reduceRight((i,s)=>{if(pe(e[s]))return i;if(i){const o=e[i]*n,a=t[s][i],r=Math.floor(o/a);e[s]+=r*n,e[i]-=r*a*n}return s},null),ai.reduce((i,s)=>{if(pe(e[s]))return i;if(i){const o=e[i]%1;e[i]-=o,e[s]+=o*t[i][s]}return s},null)}function Vc(t){const e={};for(const[n,i]of Object.entries(t))i!==0&&(e[n]=i);return e}class Ae{constructor(e){const n=e.conversionAccuracy==="longterm"||!1;let i=n?Rw:Lw;e.matrix&&(i=e.matrix),this.values=e.values,this.loc=e.loc||ze.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=i,this.isLuxonDuration=!0}static fromMillis(e,n){return Ae.fromObject({milliseconds:e},n)}static fromObject(e,n={}){if(e==null||typeof e!="object")throw new Ot(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new Ae({values:Jo(e,Ae.normalizeUnit),loc:ze.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(e){if(Yn(e))return Ae.fromMillis(e);if(Ae.isDuration(e))return e;if(typeof e=="object")return Ae.fromObject(e);throw new Ot(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,n){const[i]=Iw(e);return i?Ae.fromObject(i,n):Ae.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,n){const[i]=Ow(e);return i?Ae.fromObject(i,n):Ae.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,n=null){if(!e)throw new Ot("need to specify a reason the Duration is invalid");const i=e instanceof dn?e:new dn(e,n);if(ut.throwOnInvalid)throw new cx(i);return new Ae({invalid:i})}static normalizeUnit(e){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!n)throw new nh(e);return n}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,n={}){const i={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Et.create(this.loc,i).formatDurationFromString(this,e):Dc}toHuman(e={}){if(!this.isValid)return Dc;const n=e.showZeros!==!1,i=ai.map(s=>{const o=this.values[s];return pe(o)||o===0&&!n?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:s.slice(0,-1)}).format(o)}).filter(s=>s);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(i)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=pl(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const n=this.toMillis();return n<0||n>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},de.fromMillis(n,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Zh(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const n=Ae.fromDurationLike(e),i={};for(const s of ai)(Ki(n.values,s)||Ki(this.values,s))&&(i[s]=n.get(s)+this.get(s));return kn(this,{values:i},!0)}minus(e){if(!this.isValid)return this;const n=Ae.fromDurationLike(e);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;const n={};for(const i of Object.keys(this.values))n[i]=Eh(e(this.values[i],i));return kn(this,{values:n},!0)}get(e){return this[Ae.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const n={...this.values,...Jo(e,Ae.normalizeUnit)};return kn(this,{values:n})}reconfigure({locale:e,numberingSystem:n,conversionAccuracy:i,matrix:s}={}){const a={loc:this.loc.clone({locale:e,numberingSystem:n}),matrix:s,conversionAccuracy:i};return kn(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return Oc(this.matrix,e),kn(this,{values:e},!0)}rescale(){if(!this.isValid)return this;const e=Vc(this.normalize().shiftToAll().toObject());return kn(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>Ae.normalizeUnit(a));const n={},i={},s=this.toObject();let o;for(const a of ai)if(e.indexOf(a)>=0){o=a;let r=0;for(const u in i)r+=this.matrix[u][a]*i[u],i[u]=0;Yn(s[a])&&(r+=s[a]);const l=Math.trunc(r);n[a]=l,i[a]=(r*1e3-l*1e3)/1e3}else Yn(s[a])&&(i[a]=s[a]);for(const a in i)i[a]!==0&&(n[o]+=a===o?i[a]:i[a]/this.matrix[o][a]);return Oc(this.matrix,n),kn(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const n of Object.keys(this.values))e[n]=this.values[n]===0?0:-this.values[n];return kn(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;const e=Vc(this.values);return kn(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function n(i,s){return i===void 0||i===0?s===void 0||s===0:i===s}for(const i of ai)if(!n(this.values[i],e.values[i]))return!1;return!0}}const Pi="Invalid Interval";function Fw(t,e){return!t||!t.isValid?lt.invalid("missing or invalid start"):!e||!e.isValid?lt.invalid("missing or invalid end"):ee:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:n}={}){return this.isValid?lt.fromDateTimes(e||this.s,n||this.e):this}splitAt(...e){if(!this.isValid)return[];const n=e.map(gs).filter(a=>this.contains(a)).sort((a,r)=>a.toMillis()-r.toMillis()),i=[];let{s}=this,o=0;for(;s+this.e?this.e:a;i.push(lt.fromDateTimes(s,r)),s=r,o+=1}return i}splitBy(e){const n=Ae.fromDurationLike(e);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:i}=this,s=1,o;const a=[];for(;il*s));o=+r>+this.e?this.e:r,a.push(lt.fromDateTimes(i,o)),i=o,s+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const n=this.s>e.s?this.s:e.s,i=this.e=i?null:lt.fromDateTimes(n,i)}union(e){if(!this.isValid)return this;const n=this.se.e?this.e:e.e;return lt.fromDateTimes(n,i)}static merge(e){const[n,i]=e.sort((s,o)=>s.s-o.s).reduce(([s,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[s,o.union(a)]:[s.concat([o]),a]:[s,a],[[],null]);return i&&n.push(i),n}static xor(e){let n=null,i=0;const s=[],o=e.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...o),r=a.sort((l,u)=>l.time-u.time);for(const l of r)i+=l.type==="s"?1:-1,i===1?n=l.time:(n&&+n!=+l.time&&s.push(lt.fromDateTimes(n,l.time)),n=null);return lt.merge(s)}difference(...e){return lt.xor([this].concat(e)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Pi}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=Ko,n={}){return this.isValid?Et.create(this.s.loc.clone(n),e).formatInterval(this):Pi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Pi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Pi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Pi}toFormat(e,{separator:n=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${n}${this.e.toFormat(e)}`:Pi}toDuration(e,n){return this.isValid?this.e.diff(this.s,e,n):Ae.invalid(this.invalidReason)}mapEndpoints(e){return lt.fromDateTimes(e(this.s),e(this.e))}}class wo{static hasDST(e=ut.defaultZone){const n=de.now().setZone(e).set({month:12});return!e.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(e){return En.isValidZone(e)}static normalizeZone(e){return Nn(e,ut.defaultZone)}static getStartOfWeek({locale:e=null,locObj:n=null}={}){return(n||ze.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:n=null}={}){return(n||ze.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:n=null}={}){return(n||ze.create(e)).getWeekendDays().slice()}static months(e="long",{locale:n=null,numberingSystem:i=null,locObj:s=null,outputCalendar:o="gregory"}={}){return(s||ze.create(n,i,o)).months(e)}static monthsFormat(e="long",{locale:n=null,numberingSystem:i=null,locObj:s=null,outputCalendar:o="gregory"}={}){return(s||ze.create(n,i,o)).months(e,!0)}static weekdays(e="long",{locale:n=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ze.create(n,i,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:n=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ze.create(n,i,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ze.create(e).meridiems()}static eras(e="short",{locale:n=null}={}){return ze.create(n,null,"gregory").eras(e)}static features(){return{relative:Dh(),localeWeek:Oh()}}}function Ec(t,e){const n=s=>s.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),i=n(e)-n(t);return Math.floor(Ae.fromMillis(i).as("days"))}function zw(t,e,n){const i=[["years",(l,u)=>u.year-l.year],["quarters",(l,u)=>u.quarter-l.quarter+(u.year-l.year)*4],["months",(l,u)=>u.month-l.month+(u.year-l.year)*12],["weeks",(l,u)=>{const c=Ec(l,u);return(c-c%7)/7}],["days",Ec]],s={},o=t;let a,r;for(const[l,u]of i)n.indexOf(l)>=0&&(a=l,s[l]=u(t,e),r=o.plus(s),r>e?(s[l]--,t=o.plus(s),t>e&&(r=t,s[l]--,t=o.plus(s))):t=r);return[t,s,r,a]}function Bw(t,e,n,i){let[s,o,a,r]=zw(t,e,n);const l=e-s,u=n.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);u.length===0&&(a0?Ae.fromMillis(l,i).shiftTo(...u).plus(c):c}const Nw="missing Intl.DateTimeFormat.formatToParts support";function $e(t,e=n=>n){return{regex:t,deser:([n])=>e(Vx(n))}}const Ww=" ",Xh=`[ ${Ww}]`,Kh=new RegExp(Xh,"g");function Hw(t){return t.replace(/\./g,"\\.?").replace(Kh,Xh)}function Ac(t){return t.replace(/\./g,"").replace(Kh," ").toLowerCase()}function rn(t,e){return t===null?null:{regex:RegExp(t.map(Hw).join("|")),deser:([n])=>t.findIndex(i=>Ac(n)===Ac(i))+e}}function qc(t,e){return{regex:t,deser:([,n,i])=>ba(n,i),groups:e}}function _o(t){return{regex:t,deser:([e])=>e}}function jw(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Uw(t,e){const n=an(e),i=an(e,"{2}"),s=an(e,"{3}"),o=an(e,"{4}"),a=an(e,"{6}"),r=an(e,"{1,2}"),l=an(e,"{1,3}"),u=an(e,"{1,6}"),c=an(e,"{1,9}"),d=an(e,"{2,4}"),f=an(e,"{4,6}"),h=v=>({regex:RegExp(jw(v.val)),deser:([b])=>b,literal:!0}),p=(v=>{if(t.literal)return h(v);switch(v.val){case"G":return rn(e.eras("short"),0);case"GG":return rn(e.eras("long"),0);case"y":return $e(u);case"yy":return $e(d,Ar);case"yyyy":return $e(o);case"yyyyy":return $e(f);case"yyyyyy":return $e(a);case"M":return $e(r);case"MM":return $e(i);case"MMM":return rn(e.months("short",!0),1);case"MMMM":return rn(e.months("long",!0),1);case"L":return $e(r);case"LL":return $e(i);case"LLL":return rn(e.months("short",!1),1);case"LLLL":return rn(e.months("long",!1),1);case"d":return $e(r);case"dd":return $e(i);case"o":return $e(l);case"ooo":return $e(s);case"HH":return $e(i);case"H":return $e(r);case"hh":return $e(i);case"h":return $e(r);case"mm":return $e(i);case"m":return $e(r);case"q":return $e(r);case"qq":return $e(i);case"s":return $e(r);case"ss":return $e(i);case"S":return $e(l);case"SSS":return $e(s);case"u":return _o(c);case"uu":return _o(r);case"uuu":return $e(n);case"a":return rn(e.meridiems(),0);case"kkkk":return $e(o);case"kk":return $e(d,Ar);case"W":return $e(r);case"WW":return $e(i);case"E":case"c":return $e(n);case"EEE":return rn(e.weekdays("short",!1),1);case"EEEE":return rn(e.weekdays("long",!1),1);case"ccc":return rn(e.weekdays("short",!0),1);case"cccc":return rn(e.weekdays("long",!0),1);case"Z":case"ZZ":return qc(new RegExp(`([+-]${r.source})(?::(${i.source}))?`),2);case"ZZZ":return qc(new RegExp(`([+-]${r.source})(${i.source})?`),2);case"z":return _o(/[a-z_+-/]{1,256}?/i);case" ":return _o(/[^\S\n\r]/);default:return h(v)}})(t)||{invalidReason:Nw};return p.token=t,p}const Yw={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function Zw(t,e,n){const{type:i,value:s}=t;if(i==="literal"){const l=/^\s+$/.test(s);return{literal:!l,val:l?" ":s}}const o=e[i];let a=i;i==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=n.hour12?"hour12":"hour24");let r=Yw[a];if(typeof r=="object"&&(r=r[o]),r)return{literal:!1,val:r}}function Xw(t){return[`^${t.map(n=>n.regex).reduce((n,i)=>`${n}(${i.source})`,"")}$`,t]}function Kw(t,e,n){const i=t.match(e);if(i){const s={};let o=1;for(const a in n)if(Ki(n,a)){const r=n[a],l=r.groups?r.groups+1:1;!r.literal&&r.token&&(s[r.token.val[0]]=r.deser(i.slice(o,o+l))),o+=l}return[i,s]}else return[i,{}]}function Qw(t){const e=o=>{switch(o){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,i;return pe(t.z)||(n=En.create(t.z)),pe(t.Z)||(n||(n=new Ft(t.Z)),i=t.Z),pe(t.q)||(t.M=(t.q-1)*3+1),pe(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),pe(t.u)||(t.S=vl(t.u)),[Object.keys(t).reduce((o,a)=>{const r=e(a);return r&&(o[r]=t[a]),o},{}),n,i]}let ir=null;function Gw(){return ir||(ir=de.fromMillis(1555555555555)),ir}function Jw(t,e){if(t.literal)return t;const n=Et.macroTokenToFormatOpts(t.val),i=em(n,e);return i==null||i.includes(void 0)?t:i}function Qh(t,e){return Array.prototype.concat(...t.map(n=>Jw(n,e)))}class Gh{constructor(e,n){if(this.locale=e,this.format=n,this.tokens=Qh(Et.parseFormat(n),e),this.units=this.tokens.map(i=>Uw(i,e)),this.disqualifyingUnit=this.units.find(i=>i.invalidReason),!this.disqualifyingUnit){const[i,s]=Xw(this.units);this.regex=RegExp(i,"i"),this.handlers=s}}explainFromTokens(e){if(this.isValid){const[n,i]=Kw(e,this.regex,this.handlers),[s,o,a]=i?Qw(i):[null,null,void 0];if(Ki(i,"a")&&Ki(i,"H"))throw new Oi("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:n,matches:i,result:s,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Jh(t,e,n){return new Gh(t,n).explainFromTokens(e)}function e_(t,e,n){const{result:i,zone:s,specificOffset:o,invalidReason:a}=Jh(t,e,n);return[i,s,o,a]}function em(t,e){if(!t)return null;const i=Et.create(e,t).dtFormatter(Gw()),s=i.formatToParts(),o=i.resolvedOptions();return s.map(a=>Zw(a,t,o))}const sr="Invalid DateTime",Lc=864e13;function ks(t){return new dn("unsupported zone",`the zone "${t.name}" is not supported`)}function or(t){return t.weekData===null&&(t.weekData=Qo(t.c)),t.weekData}function ar(t){return t.localWeekData===null&&(t.localWeekData=Qo(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function ti(t,e){const n={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new de({...n,...e,old:n})}function tm(t,e,n){let i=t-e*60*1e3;const s=n.offset(i);if(e===s)return[i,e];i-=(s-e)*60*1e3;const o=n.offset(i);return s===o?[i,s]:[t-Math.min(s,o)*60*1e3,Math.max(s,o)]}function So(t,e){t+=e*60*1e3;const n=new Date(t);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function Vo(t,e,n){return tm(pa(t),e,n)}function Rc(t,e){const n=t.o,i=t.c.year+Math.trunc(e.years),s=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:i,month:s,day:Math.min(t.c.day,Go(i,s))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=Ae.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),r=pa(o);let[l,u]=tm(r,n,t.zone);return a!==0&&(l+=a,u=t.zone.offset(l)),{ts:l,o:u}}function Ti(t,e,n,i,s,o){const{setZone:a,zone:r}=n;if(t&&Object.keys(t).length!==0||e){const l=e||r,u=de.fromObject(t,{...n,zone:l,specificOffset:o});return a?u:u.setZone(r)}else return de.invalid(new dn("unparsable",`the input "${s}" can't be parsed as ${i}`))}function ko(t,e,n=!0){return t.isValid?Et.create(ze.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(t,e):null}function rr(t,e,n){const i=t.c.year>9999||t.c.year<0;let s="";if(i&&t.c.year>=0&&(s+="+"),s+=pt(t.c.year,i?6:4),n==="year")return s;if(e){if(s+="-",s+=pt(t.c.month),n==="month")return s;s+="-"}else if(s+=pt(t.c.month),n==="month")return s;return s+=pt(t.c.day),s}function $c(t,e,n,i,s,o,a){let r=!n||t.c.millisecond!==0||t.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=pt(t.c.hour),a==="hour")break;if(e){if(l+=":",l+=pt(t.c.minute),a==="minute")break;r&&(l+=":",l+=pt(t.c.second))}else{if(l+=pt(t.c.minute),a==="minute")break;r&&(l+=pt(t.c.second))}if(a==="second")break;r&&(!i||t.c.millisecond!==0)&&(l+=".",l+=pt(t.c.millisecond,3))}return s&&(t.isOffsetFixed&&t.offset===0&&!o?l+="Z":t.o<0?(l+="-",l+=pt(Math.trunc(-t.o/60)),l+=":",l+=pt(Math.trunc(-t.o%60))):(l+="+",l+=pt(Math.trunc(t.o/60)),l+=":",l+=pt(Math.trunc(t.o%60)))),o&&(l+="["+t.zone.ianaName+"]"),l}const nm={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},t_={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},n_={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Eo=["year","month","day","hour","minute","second","millisecond"],i_=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],s_=["year","ordinal","hour","minute","second","millisecond"];function Ao(t){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new nh(t);return e}function Fc(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Ao(t)}}function o_(t){if(Cs===void 0&&(Cs=ut.now()),t.type!=="iana")return t.offset(Cs);const e=t.name;let n=qr.get(e);return n===void 0&&(n=t.offset(Cs),qr.set(e,n)),n}function zc(t,e){const n=Nn(e.zone,ut.defaultZone);if(!n.isValid)return de.invalid(ks(n));const i=ze.fromObject(e);let s,o;if(pe(t.year))s=ut.now();else{for(const l of Eo)pe(t[l])&&(t[l]=nm[l]);const a=Th(t)||Ih(t);if(a)return de.invalid(a);const r=o_(n);[s,o]=Vo(t,r,n)}return new de({ts:s,zone:n,loc:i,o})}function Bc(t,e,n){const i=pe(n.round)?!0:n.round,s=pe(n.rounding)?"trunc":n.rounding,o=(r,l)=>(r=pl(r,i||n.calendary?0:2,n.calendary?"round":s),e.loc.clone(n).relFormatter(n).format(r,l)),a=r=>n.calendary?e.hasSame(t,r)?0:e.startOf(r).diff(t.startOf(r),r).get(r):e.diff(t,r).get(r);if(n.unit)return o(a(n.unit),n.unit);for(const r of n.units){const l=a(r);if(Math.abs(l)>=1)return o(l,r)}return o(t>e?-0:0,n.units[n.units.length-1])}function Nc(t){let e={},n;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],n=Array.from(t).slice(0,t.length-1)):n=Array.from(t),[e,n]}let Cs;const qr=new Map;class de{constructor(e){const n=e.zone||ut.defaultZone;let i=e.invalid||(Number.isNaN(e.ts)?new dn("invalid input"):null)||(n.isValid?null:ks(n));this.ts=pe(e.ts)?ut.now():e.ts;let s=null,o=null;if(!i)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(n))[s,o]=[e.old.c,e.old.o];else{const r=Yn(e.o)&&!e.old?e.o:n.offset(this.ts);s=So(this.ts,r),i=Number.isNaN(s.year)?new dn("invalid input"):null,s=i?null:s,o=i?null:r}this._zone=n,this.loc=e.loc||ze.create(),this.invalid=i,this.weekData=null,this.localWeekData=null,this.c=s,this.o=o,this.isLuxonDateTime=!0}static now(){return new de({})}static local(){const[e,n]=Nc(arguments),[i,s,o,a,r,l,u]=n;return zc({year:i,month:s,day:o,hour:a,minute:r,second:l,millisecond:u},e)}static utc(){const[e,n]=Nc(arguments),[i,s,o,a,r,l,u]=n;return e.zone=Ft.utcInstance,zc({year:i,month:s,day:o,hour:a,minute:r,second:l,millisecond:u},e)}static fromJSDate(e,n={}){const i=Rx(e)?e.valueOf():NaN;if(Number.isNaN(i))return de.invalid("invalid input");const s=Nn(n.zone,ut.defaultZone);return s.isValid?new de({ts:i,zone:s,loc:ze.fromObject(n)}):de.invalid(ks(s))}static fromMillis(e,n={}){if(Yn(e))return e<-Lc||e>Lc?de.invalid("Timestamp out of range"):new de({ts:e,zone:Nn(n.zone,ut.defaultZone),loc:ze.fromObject(n)});throw new Ot(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,n={}){if(Yn(e))return new de({ts:e*1e3,zone:Nn(n.zone,ut.defaultZone),loc:ze.fromObject(n)});throw new Ot("fromSeconds requires a numerical input")}static fromObject(e,n={}){e=e||{};const i=Nn(n.zone,ut.defaultZone);if(!i.isValid)return de.invalid(ks(i));const s=ze.fromObject(n),o=Jo(e,Fc),{minDaysInFirstWeek:a,startOfWeek:r}=Cc(o,s),l=ut.now(),u=pe(n.specificOffset)?i.offset(l):n.specificOffset,c=!pe(o.ordinal),d=!pe(o.year),f=!pe(o.month)||!pe(o.day),h=d||f,m=o.weekYear||o.weekNumber;if((h||c)&&m)throw new Oi("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(f&&c)throw new Oi("Can't mix ordinal dates with month/day");const p=m||o.weekday&&!h;let v,b,_=So(l,u);p?(v=i_,b=t_,_=Qo(_,a,r)):c?(v=s_,b=n_,_=nr(_)):(v=Eo,b=nm);let x=!1;for(const T of v){const R=o[T];pe(R)?x?o[T]=b[T]:o[T]=_[T]:x=!0}const w=p?Ax(o,a,r):c?qx(o):Th(o),y=w||Ih(o);if(y)return de.invalid(y);const V=p?Sc(o,a,r):c?kc(o):o,[E,L]=Vo(V,u,i),D=new de({ts:E,zone:i,o:L,loc:s});return o.weekday&&h&&e.weekday!==D.weekday?de.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${D.toISO()}`):D.isValid?D:de.invalid(D.invalid)}static fromISO(e,n={}){const[i,s]=Mw(e);return Ti(i,s,n,"ISO 8601",e)}static fromRFC2822(e,n={}){const[i,s]=Pw(e);return Ti(i,s,n,"RFC 2822",e)}static fromHTTP(e,n={}){const[i,s]=Tw(e);return Ti(i,s,n,"HTTP",n)}static fromFormat(e,n,i={}){if(pe(e)||pe(n))throw new Ot("fromFormat requires an input string and a format");const{locale:s=null,numberingSystem:o=null}=i,a=ze.fromOpts({locale:s,numberingSystem:o,defaultToEN:!0}),[r,l,u,c]=e_(a,e,n);return c?de.invalid(c):Ti(r,l,i,`format ${n}`,e,u)}static fromString(e,n,i={}){return de.fromFormat(e,n,i)}static fromSQL(e,n={}){const[i,s]=qw(e);return Ti(i,s,n,"SQL",e)}static invalid(e,n=null){if(!e)throw new Ot("need to specify a reason the DateTime is invalid");const i=e instanceof dn?e:new dn(e,n);if(ut.throwOnInvalid)throw new lx(i);return new de({invalid:i})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,n={}){const i=em(e,ze.fromObject(n));return i?i.map(s=>s?s.val:null).join(""):null}static expandFormat(e,n={}){return Qh(Et.parseFormat(e),ze.fromObject(n)).map(s=>s.val).join("")}static resetCache(){Cs=void 0,qr.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?or(this).weekYear:NaN}get weekNumber(){return this.isValid?or(this).weekNumber:NaN}get weekday(){return this.isValid?or(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?ar(this).weekday:NaN}get localWeekNumber(){return this.isValid?ar(this).weekNumber:NaN}get localWeekYear(){return this.isValid?ar(this).weekYear:NaN}get ordinal(){return this.isValid?nr(this.c).ordinal:NaN}get monthShort(){return this.isValid?wo.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?wo.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?wo.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?wo.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,n=6e4,i=pa(this.c),s=this.zone.offset(i-e),o=this.zone.offset(i+e),a=this.zone.offset(i-s*n),r=this.zone.offset(i-o*n);if(a===r)return[this];const l=i-a*n,u=i-r*n,c=So(l,a),d=So(u,r);return c.hour===d.hour&&c.minute===d.minute&&c.second===d.second&&c.millisecond===d.millisecond?[ti(this,{ts:l}),ti(this,{ts:u})]:[this]}get isInLeapYear(){return Ks(this.year)}get daysInMonth(){return Go(this.year,this.month)}get daysInYear(){return this.isValid?Ri(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ws(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Ws(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:n,numberingSystem:i,calendar:s}=Et.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:n,numberingSystem:i,outputCalendar:s}}toUTC(e=0,n={}){return this.setZone(Ft.instance(e),n)}toLocal(){return this.setZone(ut.defaultZone)}setZone(e,{keepLocalTime:n=!1,keepCalendarTime:i=!1}={}){if(e=Nn(e,ut.defaultZone),e.equals(this.zone))return this;if(e.isValid){let s=this.ts;if(n||i){const o=e.offset(this.ts),a=this.toObject();[s]=Vo(a,o,e)}return ti(this,{ts:s,zone:e})}else return de.invalid(ks(e))}reconfigure({locale:e,numberingSystem:n,outputCalendar:i}={}){const s=this.loc.clone({locale:e,numberingSystem:n,outputCalendar:i});return ti(this,{loc:s})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const n=Jo(e,Fc),{minDaysInFirstWeek:i,startOfWeek:s}=Cc(n,this.loc),o=!pe(n.weekYear)||!pe(n.weekNumber)||!pe(n.weekday),a=!pe(n.ordinal),r=!pe(n.year),l=!pe(n.month)||!pe(n.day),u=r||l,c=n.weekYear||n.weekNumber;if((u||a)&&c)throw new Oi("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new Oi("Can't mix ordinal dates with month/day");let d;o?d=Sc({...Qo(this.c,i,s),...n},i,s):pe(n.ordinal)?(d={...this.toObject(),...n},pe(n.day)&&(d.day=Math.min(Go(d.year,d.month),d.day))):d=kc({...nr(this.c),...n});const[f,h]=Vo(d,this.o,this.zone);return ti(this,{ts:f,o:h})}plus(e){if(!this.isValid)return this;const n=Ae.fromDurationLike(e);return ti(this,Rc(this,n))}minus(e){if(!this.isValid)return this;const n=Ae.fromDurationLike(e).negate();return ti(this,Rc(this,n))}startOf(e,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;const i={},s=Ae.normalizeUnit(e);switch(s){case"years":i.month=1;case"quarters":case"months":i.day=1;case"weeks":case"days":i.hour=0;case"hours":i.minute=0;case"minutes":i.second=0;case"seconds":i.millisecond=0;break}if(s==="weeks")if(n){const o=this.loc.getStartOfWeek(),{weekday:a}=this;a=3&&(l+="T"),l+=$c(this,r,n,i,s,o,a),l}toISODate({format:e="extended",precision:n="day"}={}){return this.isValid?rr(this,e==="extended",Ao(n)):null}toISOWeekDate(){return ko(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:n=!1,includeOffset:i=!0,includePrefix:s=!1,extendedZone:o=!1,format:a="extended",precision:r="milliseconds"}={}){return this.isValid?(r=Ao(r),(s&&Eo.indexOf(r)>=3?"T":"")+$c(this,a==="extended",n,e,i,o,r)):null}toRFC2822(){return ko(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ko(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?rr(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:n=!1,includeOffsetSpace:i=!0}={}){let s="HH:mm:ss.SSS";return(n||e)&&(i&&(s+=" "),n?s+="z":e&&(s+="ZZ")),ko(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():sr}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const n={...this.c};return e.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,n="milliseconds",i={}){if(!this.isValid||!e.isValid)return Ae.invalid("created by diffing an invalid DateTime");const s={locale:this.locale,numberingSystem:this.numberingSystem,...i},o=$x(n).map(Ae.normalizeUnit),a=e.valueOf()>this.valueOf(),r=a?this:e,l=a?e:this,u=Bw(r,l,o,s);return a?u.negate():u}diffNow(e="milliseconds",n={}){return this.diff(de.now(),e,n)}until(e){return this.isValid?lt.fromDateTimes(this,e):this}hasSame(e,n,i){if(!this.isValid)return!1;const s=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(n,i)<=s&&s<=o.endOf(n,i)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const n=e.base||de.fromObject({},{zone:this.zone}),i=e.padding?thisn.valueOf(),Math.min)}static max(...e){if(!e.every(de.isDateTime))throw new Ot("max requires all arguments be DateTimes");return Mc(e,n=>n.valueOf(),Math.max)}static fromFormatExplain(e,n,i={}){const{locale:s=null,numberingSystem:o=null}=i,a=ze.fromOpts({locale:s,numberingSystem:o,defaultToEN:!0});return Jh(a,e,n)}static fromStringExplain(e,n,i={}){return de.fromFormatExplain(e,n,i)}static buildFormatParser(e,n={}){const{locale:i=null,numberingSystem:s=null}=n,o=ze.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return new Gh(o,e)}static fromFormatParser(e,n,i={}){if(pe(e)||pe(n))throw new Ot("fromFormatParser requires an input string and a format parser");const{locale:s=null,numberingSystem:o=null}=i,a=ze.fromOpts({locale:s,numberingSystem:o,defaultToEN:!0});if(!a.equals(n.locale))throw new Ot(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${n.locale}`);const{result:r,zone:l,specificOffset:u,invalidReason:c}=n.explainFromTokens(e);return c?de.invalid(c):Ti(r,l,i,`format ${n.format}`,e,u)}static get DATE_SHORT(){return Ko}static get DATE_MED(){return ih}static get DATE_MED_WITH_WEEKDAY(){return dx}static get DATE_FULL(){return sh}static get DATE_HUGE(){return oh}static get TIME_SIMPLE(){return ah}static get TIME_WITH_SECONDS(){return rh}static get TIME_WITH_SHORT_OFFSET(){return lh}static get TIME_WITH_LONG_OFFSET(){return uh}static get TIME_24_SIMPLE(){return ch}static get TIME_24_WITH_SECONDS(){return dh}static get TIME_24_WITH_SHORT_OFFSET(){return fh}static get TIME_24_WITH_LONG_OFFSET(){return hh}static get DATETIME_SHORT(){return mh}static get DATETIME_SHORT_WITH_SECONDS(){return gh}static get DATETIME_MED(){return vh}static get DATETIME_MED_WITH_SECONDS(){return ph}static get DATETIME_MED_WITH_WEEKDAY(){return fx}static get DATETIME_FULL(){return bh}static get DATETIME_FULL_WITH_SECONDS(){return yh}static get DATETIME_HUGE(){return xh}static get DATETIME_HUGE_WITH_SECONDS(){return wh}}function gs(t){if(de.isDateTime(t))return t;if(t&&t.valueOf&&Yn(t.valueOf()))return de.fromJSDate(t);if(t&&typeof t=="object")return de.fromObject(t);throw new Ot(`Unknown datetime argument: ${t}, of type ${typeof t}`)}/*! - * chartjs-adapter-luxon v1.3.1 - * https://www.chartjs.org - * (c) 2023 chartjs-adapter-luxon Contributors - * Released under the MIT license - */const a_={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"}};Tf._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 a_},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 r_={class:"chart-container"},l_={class:"chart-wrapper"},u_=be({__name:"HistoryChart",props:{showLegend:{type:Boolean}},setup(t){Un.register(Hf,Li,On,Vs,Yo,Zi,T0,Nf);const e=g(()=>o.showLegend),n=Fe(),i=fl(),s=gi(),o=t,a=N(null),r=g(()=>a.value?.chart??null),l=y=>{y.data.datasets.forEach((V,E)=>{typeof V.label=="string"&&i.isDatasetHidden(V.label)&&y.hide(E)}),y.update()};fe(()=>a.value?.chart,y=>{y&&l(y)},{immediate:!0});const u=g(()=>{const y=n.chartData,V=Math.floor(Date.now()/1e3);return y.filter(E=>E.timestamp>V-p.value)}),c=g(()=>n.chargePointIds),d=g(()=>n.chargePointName),f=g(()=>{const y=n.getGridId;return y!==void 0?n.getComponentName(y):"Zähler"}),h=g(()=>f.value),m=g(()=>n.vehicleList),p=g(()=>n.themeConfiguration?.history_chart_range||3600),v=g(()=>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(V=>({x:V.timestamp*1e3,y:V[`cp${y}-power`]||0})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"}))),b=g(()=>m.value.map(y=>{const V=`ev${y.id}-soc`;if(u.value.some(E=>V in E))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(E=>({x:E.timestamp*1e3,y:Number(E[V]??0)})),fill:!1,yAxisID:"y2"}}).filter(y=>y!==void 0)),_=g(()=>{const y=u.value.length?u.value[0].timestamp:Math.floor(Date.now()/1e3)-p.value,V=u.value.length?u.value[u.value.length-1].timestamp:Math.floor(Date.now()/1e3),E=V-y;let L=300;E<=1800?L=60:E<=3600&&(L=120);const D=[];let T=y-y%L;T({labels:_.value,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]})),w=g(()=>({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:40,source:"labels"},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,V)=>(M(),Q("div",r_,[q("div",l_,[(M(),X(Pe(Xf),{key:h.value,data:x.value,options:w.value,ref_key:"chartRef",ref:a},null,8,["data","options"]))]),e.value?(M(),X(rx,{key:0,chart:r.value,class:"legend-wrapper q-mt-sm"},null,8,["chart"])):le("",!0)]))}}),c_=mt(u_,[["__scopeId","data-v-c893cfc4"]]),d_=be({name:"ChartCarousel",__name:"ChartCarousel",setup(t){const e=gi(),n=fl(),i=N(0),s=()=>{n.toggleLegendVisibility()},o=g(()=>n.legendVisible),a=N(!1),r=[{name:"EnergyFlowChart",component:Pv},{name:"HistoryChart",component:c_}],l=N(r[0].name);return fe(()=>a.value,(u,c)=>{!u&&c&&l.value==="HistoryChart"&&i.value++}),(u,c)=>(M(),X(ef,{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&&Pe(e).screen.gt.xs,class:"full-width full-height bg-transparent carousel-height"},{control:A(()=>[C(nv,{position:"bottom-right"},{default:A(()=>[l.value==="HistoryChart"?(M(),X(ke,{key:0,size:"sm",class:"q-mr-sm legend-button-text",label:"Legend ein/aus",onClick:s})):le("",!0),C(ke,{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(De,null,Ke(r,d=>C(Kd,{key:`${d.name}-${d.name==="HistoryChart"?i.value:0}`,name:d.name},{default:A(()=>[(M(),X(mg(d.component),{"show-legend":o.value},null,8,["show-legend"]))]),_:2},1032,["name"])),64))]),_:1},8,["modelValue","fullscreen","navigation","arrows"]))}}),f_=mt(d_,[["__scopeId","data-v-85eaf875"]]),_t=Be({name:"QTd",props:{props:Object,autoWidth:Boolean,noHover:Boolean},setup(t,{slots:e}){const n=Ye(),i=g(()=>"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},it(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)},it(e.default))}}});let Co=0;const h_={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"},Wc={standard:["scale","scale"],top:["slide-down","slide-up"],bottom:["slide-up","slide-down"],right:["slide-left","slide-right"],left:["slide-right","slide-left"]},ns=Be({name:"QDialog",inheritAttrs:!1,props:{...Bd,...Kr,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:[...Fd,"shake","click","escapeKey"],setup(t,{slots:e,emit:n,attrs:i}){const s=Ye(),o=N(null),a=N(!1),r=N(!1);let l=null,u=null,c,d;const f=g(()=>t.persistent!==!0&&t.noRouteDismiss!==!0&&t.seamless!==!0),{preventBodyScroll:h}=$g(),{registerTimeout:m}=Ls(),{registerTick:p,removeTick:v}=Ps(),{transitionProps:b,transitionStyle:_}=Nd(t,()=>Wc[t.position][0],()=>Wc[t.position][1]),x=g(()=>_.value+(t.backdropFilter!==void 0?`;backdrop-filter:${t.backdropFilter};-webkit-backdrop-filter:${t.backdropFilter}`:"")),{showPortal:w,hidePortal:y,portalIsAccessible:V,renderPortal:E}=Hd(s,o,he,"dialog"),{hide:L}=Wd({showing:a,hideOnRouteChange:f,handleShow:Y,handleHide:j,processOnMount:!0}),{addToHistory:D,removeFromHistory:T}=Rg(a,L,f),R=g(()=>`q-dialog__inner flex no-pointer-events q-dialog__inner--${t.maximized===!0?"maximized":"minimized"} q-dialog__inner--${t.position} ${h_[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":"")),I=g(()=>a.value===!0&&t.seamless!==!0),H=g(()=>t.autoClose===!0?{onClick:P}:{}),z=g(()=>[`q-dialog fullscreen no-pointer-events q-dialog--${I.value===!0?"modal":"seamless"}`,i.class]);fe(()=>t.maximized,B=>{a.value===!0&&O(B)}),fe(I,B=>{h(B),B===!0?(Jf(ue),Qf(re)):(kr(ue),Zo(re))});function Y(B){D(),u=t.noRefocus===!1&&document.activeElement!==null?document.activeElement:null,O(t.maximized),w(),r.value=!0,t.noFocus!==!0?(document.activeElement?.blur(),p(ee)):v(),m(()=>{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,qe=window.visualViewport!==void 0?window.visualViewport.height:G;te>0&&_e>qe/2&&(document.scrollingElement.scrollTop=Math.min(document.scrollingElement.scrollHeight-qe,_e>=G?1/0:Math.ceil(document.scrollingElement.scrollTop+_e-qe/2))),document.activeElement.scrollIntoView()}d=!0,o.value.click(),d=!1}w(!0),r.value=!1,n("show",B)},t.transitionDuration)}function j(B){v(),T(),ce(!0),r.value=!0,y(),u!==null&&(((B?.type.indexOf("key")===0?u.closest('[tabindex]:not([tabindex^="-"])'):void 0)||u).focus(),u=null),m(()=>{y(!0),r.value=!1,n("hide",B)},t.transitionDuration)}function ee(B){ca(()=>{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 U(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 re(){t.seamless!==!0&&(t.persistent===!0||t.noEscDismiss===!0?t.maximized!==!0&&t.noShake!==!0&&U():(n("escapeKey"),L()))}function ce(B){l!==null&&(clearTimeout(l),l=null),(B===!0||a.value===!0)&&(O(!1),t.seamless!==!0&&(h(!1),kr(ue),Zo(re))),B!==!0&&(u=null)}function O(B){B===!0?c!==!0&&(Co<1&&document.body.classList.add("q-body--dialog"),Co++,c=!0):c===!0&&(Co<2&&document.body.classList.remove("q-body--dialog"),Co--,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&&U()}function ue(B){t.allowFocusOutside!==!0&&V.value===!0&&Ad(o.value,B.target)!==!0&&ee('[tabindex]:not([tabindex="-1"])')}Object.assign(s.proxy,{focus:ee,shake:U,__updateRefocusTarget(B){u=B||null}}),qt(ce);function he(){return S("div",{role:"dialog","aria-modal":I.value===!0?"true":"false",...i,class:z.value},[S(As,{name:"q-transition--fade",appear:!0},()=>I.value===!0?S("div",{class:"q-dialog__backdrop fixed-full",style:x.value,"aria-hidden":"true",tabindex:-1,onClick:J}):null),S(As,b.value,()=>a.value===!0?S("div",{ref:o,class:R.value,style:_.value,tabindex:-1,...H.value},it(e.default)):null)])}return E}}),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"}]}),m_=be({__name:"BaseCarousel",props:{items:{}},setup(t){const e=t,n=N(null),i=N(null),s=N(0),o=N(100),a=N(0),r=N(0),l=N(!1);function u(){bt(()=>{if(i.value&&(o.value=i.value[0].clientWidth||300),l.value=zi.gt.xs&&d.value.length>1,n.value?.$el){a.value=n.value.$el.clientWidth||0;const h=n.value.$el.querySelector(".q-carousel__slide");if(h){const m=window.getComputedStyle(h);r.value=parseFloat(m.paddingLeft||"0")+parseFloat(m.paddingRight||"0")}else console.warn("Could not find .q-carousel__slide element")}})}hn(()=>{u(),window.addEventListener("resize",u)}),qt(()=>{window.removeEventListener("resize",u)}),fe(()=>e.items,u);const c=g(()=>{if(!o.value||!a.value)return 1;const h=Math.max(1,Math.floor((a.value-(l.value?r.value:50))/o.value));return e.items.length>h&&e.items.length<=h*2&&e.items.length-h===1&&e.items.length*o.value<=a.value?e.items.length:h}),d=g(()=>{const h=c.value,m=[];for(let p=0;p{s.value>h.length-1&&(s.value=Math.max(0,h.length-1))}),(h,m)=>(M(),X(ef,{ref_key:"carouselRef",ref:n,modelValue:s.value,"onUpdate:modelValue":[m[0]||(m[0]=p=>s.value=p),f],swipeable:"",animated:!0,"control-color":"primary",infinite:"",padding:"",navigation:d.value.length>1,arrows:l.value,class:"carousel-height","transition-next":"slide-left","transition-prev":"slide-right",onMousedown:m[1]||(m[1]=ln(()=>{},["prevent"]))},{default:A(()=>[(M(!0),Q(De,null,Ke(d.value,(p,v)=>(M(),X(Kd,{key:v,name:v,class:"row no-wrap justify-center carousel-slide"},{default:A(()=>[(M(!0),Q(De,null,Ke(p,b=>(M(),Q("div",{key:b,class:"item-container",ref_for:!0,ref_key:"itemRef",ref:i},[Vi(h.$slots,"item",{item:b},void 0,!0)]))),128))]),_:2},1032,["name"]))),128))]),_:3},8,["modelValue","navigation","arrows"]))}}),_l=mt(m_,[["__scopeId","data-v-a56a2037"]]),Hc=/^on[A-Z]/;function g_(){const{attrs:t,vnode:e}=Ye(),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 Ld(i),i(),n}function v_({validate:t,resetValidation:e,requiresQForm:n}){const i=Lo(gg,!1);if(i!==!1){const{props:s,proxy:o}=Ye();Object.assign(o,{validate:t,resetValidation:e}),fe(()=>s.disable,a=>{a===!0?(typeof e=="function"&&e(),i.unbindComponent(o)):i.bindComponent(o)}),hn(()=>{s.disable!==!0&&i.bindComponent(o)}),qt(()=>{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})$/,Mo=/^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])\)$/,Po=/^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)\)$/,lr={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=>Mo.test(t),rgbaColor:t=>Po.test(t),rgbOrRgbaColor:t=>Mo.test(t)||Po.test(t),hexOrRgbColor:t=>jc.test(t)||Mo.test(t),hexaOrRgbaColor:t=>Uc.test(t)||Po.test(t),anyColor:t=>Yc.test(t)||Mo.test(t)||Po.test(t)},p_=[!0,!1,"ondemand"],b_={modelValue:{},error:{type:Boolean,default:null},errorMessage:String,noErrorIcon:Boolean,rules:Array,reactiveRules:Boolean,lazyRules:{type:[Boolean,String],default:!1,validator:t=>p_.includes(t)}};function y_(t,e){const{props:n,proxy:i}=Ye(),s=N(!1),o=N(null),a=N(!1);v_({validate:p,resetValidation:m});let r=0,l;const u=g(()=>n.rules!==void 0&&n.rules!==null&&n.rules.length!==0),c=g(()=>n.disable!==!0&&u.value===!0&&e.value===!1),d=g(()=>n.error===!0||s.value===!0),f=g(()=>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 m(){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 _=++r,x=e.value!==!0?()=>{a.value=!0}:()=>{},w=(V,E)=>{V===!0&&x(),s.value=V,o.value=E||null,e.value=!1},y=[];for(let V=0;V{if(V===void 0||Array.isArray(V)===!1||V.length===0)return _===r&&w(!1),!0;const E=V.find(L=>L===!1||typeof L=="string");return _===r&&w(E!==void 0,E),E===void 0},V=>(_===r&&(console.error(V),w(!0)),!1)))}const v=Rd(p,0);return qt(()=>{l?.(),v.cancel()}),Object.assign(i,{resetValidation:m,validate:p}),si(i,"hasError",()=>d.value),{isDirtyModel:a,hasRules:u,hasError:d,errorMessage:f,validate:p,resetValidation:m}}function Hs(t){return t!=null&&(""+t).length!==0}const x_={...mn,...b_,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},xa={...x_,maxlength:[Number,String]},Sl=["update:modelValue","clear","focus","blur"];function kl({requiredForAttr:t=!0,tagProp:e,changeEvent:n=!1}={}){const{props:i,proxy:s}=Ye(),o=gn(i,s.$q),a=th({required:t,getValue:()=>i.for});return{requiredForAttr:t,changeEvent:n,tag:e===!0?g(()=>i.tag):{value:"label"},isDark:o,editable:g(()=>i.disable!==!0&&i.readonly!==!0),innerLoading:N(!1),focused:N(!1),hasPopupOpen:!1,splitAttrs:g_(),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}=Ye(),{$q:a}=o;let r=null;t.hasValue===void 0&&(t.hasValue=g(()=>Hs(e.modelValue))),t.emitValue===void 0&&(t.emitValue=U=>{n("update:modelValue",U)}),t.controlEvents===void 0&&(t.controlEvents={onFocusin:D,onFocusout:T}),Object.assign(t,{clearValue:R,onControlFocusin:D,onControlFocusout:T,focus:E}),t.computedCounter===void 0&&(t.computedCounter=g(()=>{if(e.counter!==!1){const U=typeof e.modelValue=="string"||typeof e.modelValue=="number"?(""+e.modelValue).length:Array.isArray(e.modelValue)===!0?e.modelValue.length:0,re=e.maxlength!==void 0?e.maxlength:e.maxValues;return U+(re!==void 0?" / "+re:"")}}));const{isDirtyModel:l,hasRules:u,hasError:c,errorMessage:d,resetValidation:f}=y_(t.focused,t.innerLoading),h=t.floatingLabel!==void 0?g(()=>e.stackLabel===!0||t.focused.value===!0||t.floatingLabel.value===!0):g(()=>e.stackLabel===!0||t.focused.value===!0||t.hasValue.value===!0),m=g(()=>e.bottomSlots===!0||e.hint!==void 0||u.value===!0||e.counter===!0||e.error!==null),p=g(()=>e.filled===!0?"filled":e.outlined===!0?"outlined":e.borderless===!0?"borderless":e.standout?"standout":"standard"),v=g(()=>`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":"")+(_.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&&m.value===!0?" q-field--with-bottom":"")+(e.disable===!0?" q-field--disabled":e.readonly===!0?" q-field--readonly":"")),b=g(()=>"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}`:"")),_=g(()=>e.labelSlot===!0||e.label!==void 0),x=g(()=>"q-field__label no-pointer-events absolute ellipsis"+(e.labelColor!==void 0&&c.value!==!0?` text-${e.labelColor}`:"")),w=g(()=>({id:t.targetUid.value,editable:t.editable.value,focused:t.focused.value,floatingLabel:h.value,modelValue:e.modelValue,emitValue:t.emitValue})),y=g(()=>{const U={};return t.targetUid.value&&(U.for=t.targetUid.value),e.disable===!0&&(U["aria-disabled"]="true"),U});function V(){const U=document.activeElement;let re=t.targetRef?.value;re&&(U===null||U.id!==t.targetUid.value)&&(re.hasAttribute("tabindex")===!0||(re=re.querySelector("[tabindex]")),re!==U&&re?.focus({preventScroll:!0}))}function E(){ca(V)}function L(){Fg(V);const U=document.activeElement;U!==null&&t.rootRef.value.contains(U)&&U.blur()}function D(U){r!==null&&(clearTimeout(r),r=null),t.editable.value===!0&&t.focused.value===!1&&(t.focused.value=!0,n("focus",U))}function T(U,re){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",U)),re?.())})}function R(U){Vt(U),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),bt(()=>{const re=l.value;f(),l.value=re})}function I(U){[13,32].includes(U.keyCode)&&R(U)}function H(){const U=[];return i.prepend!==void 0&&U.push(S("div",{class:"q-field__prepend q-field__marginal row no-wrap items-center",key:"prepend",onClick:Bn},i.prepend())),U.push(S("div",{class:"q-field__control-container col relative-position row no-wrap q-anchor--skip"},z())),c.value===!0&&e.noErrorIcon===!1&&U.push(j("error",[S(xe,{name:a.iconSet.field.error,color:"negative"})])),e.loading===!0||t.innerLoading.value===!0?U.push(j("inner-loading-append",i.loading!==void 0?i.loading():[S(vg,{color:e.color})])):e.clearable===!0&&t.hasValue.value===!0&&t.editable.value===!0&&U.push(j("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:I,onClick:R})])),i.append!==void 0&&U.push(S("div",{class:"q-field__append q-field__marginal row no-wrap items-center",key:"append",onClick:Bn},i.append())),t.getInnerAppend!==void 0&&U.push(j("inner-append",t.getInnerAppend())),t.getControlChild!==void 0&&U.push(t.getControlChild()),U}function z(){const U=[];return e.prefix!==void 0&&e.prefix!==null&&U.push(S("div",{class:"q-field__prefix no-pointer-events row items-center"},e.prefix)),t.getShadowControl!==void 0&&t.hasShadow.value===!0&&U.push(t.getShadowControl()),t.getControl!==void 0?U.push(t.getControl()):i.rawControl!==void 0?U.push(i.rawControl()):i.control!==void 0&&U.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(w.value))),_.value===!0&&U.push(S("div",{class:x.value},it(i.label,e.label))),e.suffix!==void 0&&e.suffix!==null&&U.push(S("div",{class:"q-field__suffix no-pointer-events row items-center"},e.suffix)),U.concat(it(i.default))}function Y(){let U,re;c.value===!0?d.value!==null?(U=[S("div",{role:"alert"},d.value)],re=`q--slot-error-${d.value}`):(U=it(i.error),re="q--slot-error"):(e.hideHint!==!0||t.focused.value===!0)&&(e.hint!==void 0?(U=[S("div",e.hint)],re=`q--slot-hint-${e.hint}`):(U=it(i.hint),re="q--slot-hint"));const ce=e.counter===!0||i.counter!==void 0;if(e.hideBottomSpace===!0&&ce===!1&&U===void 0)return;const O=S("div",{key:re,class:"q-field__messages col"},U);return S("div",{class:"q-field__bottom row items-start q-field__bottom--"+(e.hideBottomSpace!==!0?"animated":"stale"),onClick:Bn},[e.hideBottomSpace===!0?O:S(As,{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 j(U,re){return re===null?null:S("div",{key:U,class:"q-field__append q-field__marginal row no-wrap items-center q-anchor--skip"},re)}let ee=!1;return ra(()=>{ee=!0}),la(()=>{ee===!0&&e.autofocus===!0&&o.focus()}),e.autofocus===!0&&hn(()=>{o.focus()}),qt(()=>{r!==null&&clearTimeout(r)}),Object.assign(o,{focus:E,blur:L}),function(){const re=t.getControl===void 0&&i.control===void 0?{...t.splitAttrs.attributes.value,"data-autofocus":e.autofocus===!0||void 0,...y.value}:y.value;return S(t.tag.value,{ref:t.rootRef,class:[v.value,s.class],style:s.style,...re},[i.before!==void 0?S("div",{class:"q-field__before q-field__marginal row no-wrap items-center",onClick:Bn},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()),m.value===!0?Y():null]),i.after!==void 0?S("div",{class:"q-field__after q-field__marginal row no-wrap items-center",onClick:Bn},i.after()):null])}}const Zc={date:"####/##/##",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"},ea={"#":{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()}},im=Object.keys(ea);im.forEach(t=>{ea[t].regex=new RegExp(ea[t].pattern)});const w_=new RegExp("\\\\([^.*+?^${}()|([\\]])|([.*+?^${}()|[\\]])|(["+im.join("")+"])|(.)","g"),Xc=/[.*+?^${}()|[\]\\]/g,vt="",__={mask:String,reverseFillMask:Boolean,fillMask:[Boolean,String],unmaskedValue:Boolean};function S_(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 T=E(d.value);p(),t.modelValue!==T&&e("update:modelValue",T)}}),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=y(E(t.modelValue));return t.fillMask!==!1?L(D):D}return t.modelValue}function m(D){if(D0;H--)T+=vt;R=R.slice(0,I)+T+R.slice(I)}return R}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],T=typeof t.fillMask=="string"&&t.fillMask.length!==0?t.fillMask.slice(0,1):"_",R=T.replace(Xc,"\\$&"),I=[],H=[],z=[];let Y=t.reverseFillMask===!0,j="",ee="";D.replace(w_,(O,P,J,ue,he)=>{if(ue!==void 0){const B=ea[ue];z.push(B),ee=B.negate,Y===!0&&(H.push("(?:"+ee+"+)?("+B.pattern+"+)?(?:"+ee+"+)?("+B.pattern+"+)?"),Y=!1),H.push("(?:"+ee+"+)?("+B.pattern+")?")}else if(J!==void 0)j="\\"+(J==="\\"?"":J),z.push(J),I.push("([^"+j+"]+)?"+j+"?");else{const B=P!==void 0?P:he;j=B==="\\"?"\\\\\\\\":B.replace(Xc,"\\\\$&"),z.push(B),I.push("([^"+j+"]+)?"+j+"?")}});const U=new RegExp("^"+I.join("")+"("+(j===""?".":"[^"+j+"]")+"+)?"+(j===""?"":"["+j+"]*")+"$"),re=H.length-1,ce=H.map((O,P)=>P===0&&t.reverseFillMask===!0?new RegExp("^"+R+"*"+O):P===re?new RegExp("^"+O+"("+(ee===""?".":ee)+"+)?"+(t.reverseFillMask===!0?"$":R+"*")):new RegExp("^"+O));a=z,r=O=>{const P=U.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:vt).join(""),o=s.split(vt).join(T)}function v(D,T,R){const I=i.value,H=I.selectionEnd,z=I.value.length-H,Y=E(D);T===!0&&p();const j=y(Y),ee=t.fillMask!==!1?L(j):j,U=d.value!==ee;I.value!==ee&&(I.value=ee),U===!0&&(d.value=ee),document.activeElement===I&&bt(()=>{if(ee===o){const ce=t.reverseFillMask===!0?o.length:0;I.setSelectionRange(ce,ce,"forward");return}if(R==="insertFromPaste"&&t.reverseFillMask!==!0){const ce=I.selectionEnd;let O=H-1;for(let P=l;P<=O&&Pj.length?1:0:Math.max(0,ee.length-(ee===o?0:Math.min(j.length,z)+1))+1:H;I.setSelectionRange(ce,ce,"forward");return}if(t.reverseFillMask===!0)if(U===!0){const ce=Math.max(0,ee.length-(ee===o?0:Math.min(j.length,z+1)));ce===1&&H===1?I.setSelectionRange(ce,ce,"forward"):_.rightReverse(I,ce)}else{const ce=ee.length-z;I.setSelectionRange(ce,ce,"backward")}else if(U===!0){const ce=Math.max(0,s.indexOf(vt),Math.min(j.length,H)-1);_.right(I,ce)}else{const ce=H-1;_.right(I,ce)}});const re=t.unmaskedValue===!0?E(ee):ee;String(t.modelValue)!==re&&(t.modelValue!==null||re!=="")&&n(re,!0)}function b(D,T,R){const I=y(E(D.value));T=Math.max(0,s.indexOf(vt),Math.min(I.length,T)),l=T,D.setSelectionRange(T,R,"forward")}const _={left(D,T){const R=s.slice(T-1).indexOf(vt)===-1;let I=Math.max(0,T-1);for(;I>=0;I--)if(s[I]===vt){T=I,R===!0&&T++;break}if(I<0&&s[T]!==void 0&&s[T]!==vt)return _.right(D,0);T>=0&&D.setSelectionRange(T,T,"backward")},right(D,T){const R=D.value.length;let I=Math.min(R,T+1);for(;I<=R;I++)if(s[I]===vt){T=I;break}else s[I-1]===vt&&(T=I);if(I>R&&s[T-1]!==void 0&&s[T-1]!==vt)return _.left(D,R);D.setSelectionRange(T,T,"forward")},leftReverse(D,T){const R=m(D.value.length);let I=Math.max(0,T-1);for(;I>=0;I--)if(R[I-1]===vt){T=I;break}else if(R[I]===vt&&(T=I,I===0))break;if(I<0&&R[T]!==void 0&&R[T]!==vt)return _.rightReverse(D,0);T>=0&&D.setSelectionRange(T,T,"backward")},rightReverse(D,T){const R=D.value.length,I=m(R),H=I.slice(0,T+1).indexOf(vt)===-1;let z=Math.min(R,T+1);for(;z<=R;z++)if(I[z-1]===vt){T=z,T>0&&H===!0&&T--;break}if(z>R&&I[T-1]!==void 0&&I[T-1]!==vt)return _.leftReverse(D,R);D.setSelectionRange(T,T,"forward")}};function x(D){e("click",D),u=void 0}function w(D){if(e("keydown",D),jr(D)===!0||D.altKey===!0)return;const T=i.value,R=T.selectionStart,I=T.selectionEnd;if(D.shiftKey||(u=void 0),D.keyCode===37||D.keyCode===39){D.shiftKey&&u===void 0&&(u=T.selectionDirection==="forward"?R:I);const H=_[(D.keyCode===39?"right":"left")+(t.reverseFillMask===!0?"Reverse":"")];if(D.preventDefault(),H(T,u===R?I:R),D.shiftKey){const z=T.selectionStart;T.setSelectionRange(Math.min(u,z),Math.max(u,z),"forward")}}else D.keyCode===8&&t.reverseFillMask!==!0&&R===I?(_.left(T,R),T.setSelectionRange(T.selectionStart,I,"backward")):D.keyCode===46&&t.reverseFillMask===!0&&R===I&&(_.rightReverse(T,I),T.setSelectionRange(R,T.selectionEnd,"forward"))}function y(D){if(D==null||D==="")return"";if(t.reverseFillMask===!0)return V(D);const T=a;let R=0,I="";for(let H=0;H=0&&I!==-1;z--){const Y=T[z];let j=D[I];if(typeof Y=="string")H=Y+H;else if(j!==void 0&&Y.regex.test(j))do H=(Y.transform!==void 0?Y.transform(j):j)+H,I--,j=D[I];while(R===z&&j!==void 0&&Y.regex.test(j));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:w,onMaskedClick:x}}const wa={name:String};function k_(t){return g(()=>({type:"hidden",name:t.name,value:t.modelValue}))}function sm(t={}){return(e,n,i)=>{e[n](S("input",{class:"hidden"+(i||""),...t.value}))}}function om(t){return g(()=>t.name||t.for)}function C_(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 g(()=>{if(t.type==="file")return n()})}const M_=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/,P_=/[\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,T_=/[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/,I_=/[a-z0-9_ -]$/i;function am(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"&&(zn.is.firefox===!0?I_.test(n.data)===!1:M_.test(n.data)===!0||P_.test(n.data)===!0||T_.test(n.data)===!0)===!0&&(n.target.qComposing=!0)}}const rm=Be({name:"QInput",inheritAttrs:!1,props:{...xa,...__,...wa,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}=Ye(),{$q:s}=i,o={};let a=NaN,r,l,u=null,c;const d=N(null),f=om(t),{innerValue:h,hasMask:m,moveCursorForPaste:p,updateMaskValue:v,onMaskedKeydown:b,onMaskedClick:_}=S_(t,e,j,d),x=C_(t),w=g(()=>Hs(h.value)),y=am(z),V=kl({changeEvent:!0}),E=g(()=>t.type==="textarea"||t.autogrow===!0),L=g(()=>E.value===!0||["text","search","url","tel","password"].includes(t.type)),D=g(()=>{const P={...V.splitAttrs.listeners.value,onInput:z,onPaste:H,onChange:U,onBlur:re,onFocus:In};return P.onCompositionstart=P.onCompositionupdate=P.onCompositionend=y,m.value===!0&&(P.onKeydown=b,P.onClick=_),t.autogrow===!0&&(P.onAnimationend=Y),P}),T=g(()=>{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(m.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&&bt(ee)}),fe(()=>t.autogrow,P=>{P===!0?bt(ee):d.value!==null&&n.rows>0&&(d.value.style.height="auto")}),fe(()=>t.dense,()=>{t.autogrow===!0&&bt(ee)});function R(){ca(()=>{const P=document.activeElement;d.value!==null&&d.value!==P&&(P===null||P.id!==V.targetUid.value)&&d.value.focus({preventScroll:!0})})}function I(){d.value?.select()}function H(P){if(m.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(m.value===!0)v(J,!1,P.inputType);else if(j(J),L.value===!0&&P.target===document.activeElement){const{selectionStart:ue,selectionEnd:he}=P.target;ue!==void 0&&he!==void 0&&bt(()=>{P.target===document.activeElement&&J.indexOf(P.target.value)===0&&P.target.setSelectionRange(ue,he)})}t.autogrow===!0&&ee()}function Y(P){e("animationend",P),ee()}function j(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),bt(()=>{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:""}qt(()=>{re()}),hn(()=>{t.autogrow===!0&&ee()}),Object.assign(V,{innerValue:h,fieldClass:g(()=>`q-${E.value===!0?"textarea":"input"}`+(t.autogrow===!0?" q-textarea--autogrow":"")),hasShadow:g(()=>t.type!=="file"&&typeof t.shadowText=="string"&&t.shadowText.length!==0),inputRef:d,emitValue:j,hasValue:w,floatingLabel:g(()=>w.value===!0&&(t.type!=="number"||isNaN(h.value)===!1)||Hs(t.displayValue)),getControl:()=>S(E.value===!0?"textarea":"input",{ref:d,class:["q-field__native q-placeholder",t.inputClass],style:t.inputStyle,...T.value,...D.value,...t.type!=="file"?{value:ce()}:x.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:R,select:I,getNativeElement:()=>d.value}),si(i,"nativeEl",()=>d.value),O}}),Lr=Be({name:"QTh",props:{props:Object,autoWidth:Boolean},emits:["click"],setup(t,{slots:e,emit:n}){const i=Ye(),{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},it(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=pg(e.default,[]),r[c](S(xe,{class:a.__iconClass,name:s.iconSet.table.arrowUp}))}else r=it(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)}}}),ur=Be({name:"QTr",props:{props:Object,noHover:Boolean},setup(t,{slots:e}){const n=g(()=>"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},it(e.default))}}),D_=["horizontal","vertical","cell","none"],O_=Be({name:"QMarkupTable",props:{...mn,dense:Boolean,flat:Boolean,bordered:Boolean,square:Boolean,wrapCells:Boolean,separator:{type:String,default:"horizontal",validator:t=>D_.includes(t)}},setup(t,{slots:e}){const n=Ye(),i=gn(t,n.proxy.$q),s=g(()=>`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"},it(e.default))])}});function lm(t,e){return S("div",t,[S("table",{class:"q-table"},e)])}const un=1e3,V_=["start","center","end","start-force","center-force","end-force"],um=Array.prototype.filter,E_=window.getComputedStyle(document.body).overflowAnchor===void 0?Dd: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||[];um.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 Fi(t,e){return t+e}function cr(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=(Rs===!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=(Rs===!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=(Rs===!0?t.scrollWidth-t.offsetWidth:0)-e),t.scrollLeft=e):t.scrollTop=e}function vs(t,e,n,i){if(n>=i)return 0;const s=e.length,o=Math.floor(n/un),a=Math.floor((i-1)/un)+1;let r=t.slice(o,a).reduce(Fi,0);return n%un!==0&&(r-=e.slice(o*un,n).reduce(Fi,0)),i%un!==0&&i!==s&&(r-=e.slice(i,a*un).reduce(Fi,0)),r}const cm={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]},dm=Object.keys(cm),Rr={virtualScrollHorizontal:Boolean,onVirtualScroll:Function,...cm};function fm({virtualScrollLength:t,getVirtualScrollTarget:e,getVirtualScrollEl:n,virtualScrollItemSizeComputed:i}){const s=Ye(),{props:o,emit:a,proxy:r}=s,{$q:l}=r;let u,c,d,f=[],h;const m=N(0),p=N(0),v=N({}),b=N(null),_=N(null),x=N(null),w=N({from:0,to:0}),y=g(()=>o.tableColspan!==void 0?o.tableColspan:100);i===void 0&&(i=g(()=>o.virtualScrollItemSize));const V=g(()=>i.value+";"+o.virtualScrollHorizontal),E=g(()=>V.value+";"+o.virtualScrollSliceRatioBefore+";"+o.virtualScrollSliceRatioAfter);fe(E,()=>{j()}),fe(V,L);function L(){Y(c,!0)}function D(O){Y(O===void 0?c:O)}function T(O,P){const J=e();if(J==null||J.nodeType===8)return;const ue=cr(J,n(),b.value,_.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd);d!==ue.scrollViewSize&&j(ue.scrollViewSize),I(J,ue,Math.min(t.value-1,Math.max(0,parseInt(O,10)||0)),0,V_.indexOf(P)!==-1?P:c!==-1&&O>c?"end":"start")}function R(){const O=e();if(O==null||O.nodeType===8)return;const P=cr(O,n(),b.value,_.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){I(O,P,0,0);return}d!==P.scrollViewSize&&j(P.scrollViewSize),H(w.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){I(O,P,J,P.scrollMaxSize-P.offsetEnd-f.reduce(Fi,0));return}let B=0,te=P.scrollStart-P.offsetStart,_e=te;if(te<=ue&&te+P.scrollViewSize>=m.value)te-=m.value,B=w.value.from,_e=te;else for(let G=0;te>=f[G]&&B0&&B-P.scrollViewSize?(B++,_e=te):_e=h[B]+te;I(O,P,B,_e)}function I(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]),qe=G+v.value.total;qe>t.value&&(qe=t.value,G=Math.max(0,qe-v.value.total)),u=P.scrollStart;const Qe=G!==w.value.from||qe!==w.value.to;if(Qe===!1&&te===void 0){U(J);return}const{activeElement:Nt}=document,ft=x.value;Qe===!0&&ft!==null&&ft!==Nt&&ft.contains(Nt)===!0&&(ft.addEventListener("focusout",z),setTimeout(()=>{ft?.removeEventListener("focusout",z)})),E_(ft,J-G);const gt=te!==void 0?h.slice(G,J).reduce(Fi,0):0;if(Qe===!0){const yt=qe>=w.value.from&&G<=w.value.to?w.value.to:qe;w.value={from:G,to:yt},m.value=vs(f,h,0,G),p.value=vs(f,h,qe,t.value),requestAnimationFrame(()=>{w.value.to!==qe&&u===P.scrollStart&&(w.value={from:w.value.from,to:qe},p.value=vs(f,h,qe,t.value))})}requestAnimationFrame(()=>{if(u!==P.scrollStart)return;Qe===!0&&H(G);const yt=h.slice(G,J).reduce(Fi,0),Je=yt+P.offsetStart+m.value,wt=Je+h[J];let Dt=Je+ue;if(te!==void 0){const Yt=yt-gt,Lt=P.scrollStart+Yt;Dt=B!==!0&&LtG.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)/un);f=[];for(let B=0;B<=he;B++){let te=0;const _e=Math.min((B+1)*un,t.value);for(let G=B*un;G<_e;G++)te+=h[G];f.push(te)}c=-1,u=void 0,m.value=vs(f,h,0,w.value.from),p.value=vs(f,h,w.value.to,t.value),O>=0?(H(w.value.from),bt(()=>{T(O)})):re()}function j(O){if(O===void 0&&typeof window<"u"){const te=e();te!=null&&te.nodeType!==8&&(O=cr(te,n(),b.value,_.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]:`${m.value}px`,...ue},colspan:y.value})])]):S(O,{class:"q-virtual-scroll__padding",key:"before",ref:b,style:{[J]:`${m.value}px`,...ue}}),S(O,{class:"q-virtual-scroll__content",key:"content",ref:x,tabindex:-1},P.flat()),O==="tbody"?S(O,{class:"q-virtual-scroll__padding",key:"after",ref:_},[S("tr",[S("td",{style:{[J]:`${p.value}px`,...ue},colspan:y.value})])]):S(O,{class:"q-virtual-scroll__padding",key:"after",ref:_,style:{[J]:`${p.value}px`,...ue}})]}function U(O){c!==O&&(o.onVirtualScroll!==void 0&&a("virtualScroll",{index:O,from:w.value.from,to:w.value.to-1,direction:O{j()});let ce=!1;return ra(()=>{ce=!0}),la(()=>{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):T(c)}),qt(()=>{re.cancel()}),Object.assign(r,{scrollTo:T,reset:L,refresh:D}),{virtualScrollSliceRange:w,virtualScrollSliceSizeComputed:v,setVirtualScrollSize:j,onVirtualScrollEvt:re,localResetVirtualScroll:Y,padVirtualScroll:ee,scrollTo:T,reset:L,refresh:D}}const A_={list:Bi,table:O_},q_=["list","table","__qtable"],L_=Be({name:"QVirtualScroll",props:{...Rr,type:{type:String,default:"list",validator:t=>q_.includes(t)},items:{type:Array,default:()=>[]},itemsFn:Function,itemsSize:Number,scrollTarget:zd},setup(t,{slots:e,attrs:n}){let i;const s=N(null),o=g(()=>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}=fm({virtualScrollLength:o,getVirtualScrollTarget:m,getVirtualScrollEl:h}),c=g(()=>{if(o.value===0)return[];const _=(x,w)=>({index:a.value.from+w,item:x});return t.itemsFn===void 0?t.items.slice(a.value.from,a.value.to).map(_):t.itemsFn(a.value.from,a.value.to-a.value.from).map(_)}),d=g(()=>"q-virtual-scroll q-virtual-scroll"+(t.virtualScrollHorizontal===!0?"--horizontal":"--vertical")+(t.scrollTarget!==void 0?"":" scroll")),f=g(()=>t.scrollTarget!==void 0?{}:{tabindex:0});fe(o,()=>{r()}),fe(()=>t.scrollTarget,()=>{v(),p()});function h(){return s.value.$el||s.value}function m(){return i}function p(){i=jd(h(),t.scrollTarget),i.addEventListener("scroll",u,zl.passive)}function v(){i!==void 0&&(i.removeEventListener("scroll",u,zl.passive),i=void 0)}function b(){let _=l(t.type==="list"?"div":"tbody",c.value.map(e.default));return e.before!==void 0&&(_=e.before().concat(_)),mi(e.after,_)}return Ur(()=>{r()}),hn(()=>{p()}),la(()=>{p()}),ra(()=>{v()}),qt(()=>{v()}),()=>{if(e.default===void 0){console.error("QVirtualScroll: default scoped slot is required for rendering");return}return t.type==="__qtable"?lm({ref:s,class:"q-table__middle "+d.value},b()):S(A_[t.type],{...n,ref:s,class:[n.class,d.value],...f.value},b)}}}),hm=Be({name:"QField",inheritAttrs:!1,props:{...xa,tag:{type:String,default:"label"}},emits:Sl,setup(){return Cl(kl({tagProp:!0}))}}),R_={xs:8,sm:10,md:14,lg:20,xl:24},ta=Be({name:"QChip",props:{...mn,...Yr,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}}=Ye(),s=gn(t,i),o=Zr(t,R_),a=g(()=>t.selected===!0||t.icon!==void 0),r=g(()=>t.selected===!0?t.iconSelected||i.iconSet.chip.selected:t.icon),l=g(()=>t.iconRemove||i.iconSet.chip.remove),u=g(()=>t.disable===!1&&(t.clickable===!0||t.selected!==null)),c=g(()=>{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=g(()=>{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 m(v){(v.keyCode===void 0||v.keyCode===13)&&(Vt(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"},bg(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:m,onKeyup:m})),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}),ua("div",v,p(),"ripple",t.ripple!==!1&&t.disable!==!0,()=>[[Td,t.ripple]])}}}),Qc=t=>["add","add-unique","toggle"].includes(t),$_=".*+?^${}()|[]\\",F_=Object.keys(xa);function dr(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 z_=Be({name:"QSelect",inheritAttrs:!1,props:{...Rr,...wa,...xa,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:Rr.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}=Ye(),{$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,m,p,v=null,b,_,x,w;const y=N(null),V=N(null),E=N(null),L=N(null),D=N(null),T=om(t),R=am(F),I=g(()=>Array.isArray(t.options)?t.options.length:0),H=g(()=>t.virtualScrollItemSize===void 0?t.optionsDense===!0?24:48:t.virtualScrollItemSize),{virtualScrollSliceRange:z,virtualScrollSliceSizeComputed:Y,localResetVirtualScroll:j,padVirtualScroll:ee,onVirtualScrollEvt:U,scrollTo:re,setVirtualScrollSize:ce}=fm({virtualScrollLength:I,getVirtualScrollTarget:Da,getVirtualScrollEl:qn,virtualScrollItemSizeComputed:H}),O=kl(),P=g(()=>{const k=t.mapOptions===!0&&t.multiple!==!0,oe=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 ae=t.mapOptions===!0&&h!==void 0?h:[],Te=oe.map(Xe=>W(Xe,ae));return t.modelValue===null&&k===!0?Te.filter(Xe=>Xe!==null):Te}return oe}),J=g(()=>{const k={};return F_.forEach(oe=>{const ae=t[oe];ae!==void 0&&(k[oe]=ae)}),k}),ue=g(()=>t.optionsDark===null?O.isDark.value:t.optionsDark),he=g(()=>Hs(P.value)),B=g(()=>{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=g(()=>(t.virtualScrollHorizontal===!0?"q-virtual-scroll--horizontal":"")+(t.popupContentClass?" "+t.popupContentClass:"")),_e=g(()=>I.value===0),G=g(()=>P.value.map(k=>$.value(k)).join(", ")),qe=g(()=>t.displayValue!==void 0?t.displayValue:G.value),Qe=g(()=>t.optionsHtml===!0?()=>!0:k=>k?.html===!0),Nt=g(()=>t.displayValueHtml===!0||t.displayValue===void 0&&(t.optionsHtml===!0||P.value.some(Qe.value))),ft=g(()=>O.focused.value===!0?t.tabindex:-1),gt=g(()=>{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=g(()=>({id:`${O.targetUid.value}_lb`,role:"listbox","aria-multiselectable":t.multiple===!0?"true":"false"})),Je=g(()=>P.value.map((k,oe)=>({index:oe,opt:k,html:Qe.value(k),selected:!0,removeAtIndex:Ie,toggleOption:st,tabindex:ft.value}))),wt=g(()=>{if(I.value===0)return[];const{from:k,to:oe}=z.value;return t.options.slice(k,oe).map((ae,Te)=>{const Xe=Z.value(ae)===!0,Ze=me(ae)===!0,Mt=k+Te,ht={clickable:!0,active:Ze,activeClass:Lt.value,manualFocus:!0,focused:!1,disable:Xe,tabindex:-1,dense:t.optionsDense,dark:ue.value,role:"option","aria-selected":Ze===!0?"true":"false",id:`${O.targetUid.value}_${Mt}`,onClick:()=>{st(ae)}};return Xe!==!0&&(r.value===Mt&&(ht.focused=!0),s.platform.is.desktop===!0&&(ht.onMousemove=()=>{o.value===!0&&xt(Mt)})),{index:Mt,opt:ae,html:Qe.value(ae),label:$.value(ae),selected:ht.active,focused:ht.focused,toggleOption:st,setOptionIndex:xt,itemProps:ht}})}),Dt=g(()=>t.dropdownIcon!==void 0?t.dropdownIcon:s.iconSet.arrow.dropdown),Yt=g(()=>t.optionsCover===!1&&t.outlined!==!0&&t.standout!==!0&&t.borderless!==!0&&t.rounded!==!0),Lt=g(()=>t.optionsSelectedClass!==void 0?t.optionsSelectedClass:t.color!==void 0?`text-${t.color}`:""),Le=g(()=>dr(t.optionValue,"value")),$=g(()=>dr(t.optionLabel,"label")),Z=g(()=>dr(t.optionDisable,"disable")),K=g(()=>P.value.map(Le.value)),Oe=g(()=>{const k={onInput:F,onChange:R,onKeydown:on,onKeyup:ot,onKeypress:Wt,onFocus:Se,onClick(oe){m===!0&&In(oe)}};return k.onCompositionstart=k.onCompositionupdate=k.onCompositionend=R,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)&&ge(""))},{immediate:!0}),fe(()=>t.fillInput,Si),fe(o,Aa),fe(I,Jm);function He(k){return t.emitValue===!0?Le.value(k):k}function Me(k){if(k!==-1&&k=t.maxValues)return;const Te=t.modelValue.slice();n("add",{index:Te.length,value:ae}),Te.push(ae),n("update:modelValue",Te)}function st(k,oe){if(O.editable.value!==!0||k===void 0||Z.value(k)===!0)return;const ae=Le.value(k);if(t.multiple!==!0){oe!==!0&&(ve(t.fillInput===!0?$.value(k):"",!0,!0),Qn()),V.value?.focus(),(P.value.length===0||ls(Le.value(P.value[0]),ae)!==!0)&&n("update:modelValue",t.emitValue===!0?ae:k);return}if((m!==!0||u.value===!0)&&O.focus(),Se(),P.value.length===0){const Ze=t.emitValue===!0?ae:k;n("add",{index:0,value:Ze}),n("update:modelValue",t.multiple===!0?[Ze]:Ze);return}const Te=t.modelValue.slice(),Xe=K.value.findIndex(Ze=>ls(Ze,ae));if(Xe!==-1)n("remove",{index:Xe,value:Te.splice(Xe,1)[0]});else{if(t.maxValues!==void 0&&Te.length>=t.maxValues)return;const Ze=t.emitValue===!0?ae:k;n("add",{index:Te.length,value:Ze}),Te.push(Ze)}n("update:modelValue",Te)}function xt(k){if(s.platform.is.desktop!==!0)return;const oe=k!==-1&&k=0?$.value(t.options[ae]):b,!0))}}function W(k,oe){const ae=Te=>ls(Le.value(Te),k);return t.options.find(ae)||oe.find(ae)||k}function me(k){const oe=Le.value(k);return K.value.find(ae=>ls(ae,oe))!==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 je(k){aa(k,27)===!0&&o.value===!0&&(In(k),Qn(),Si()),n("keyup",k)}function ot(k){const{value:oe}=k.target;if(k.keyCode!==void 0){je(k);return}if(k.target.value="",d!==null&&(clearTimeout(d),d=null),f!==null&&(clearTimeout(f),f=null),Si(),typeof oe=="string"&&oe.length!==0){const ae=oe.toLocaleLowerCase(),Te=Ze=>{const Mt=t.options.find(ht=>String(Ze.value(ht)).toLocaleLowerCase()===ae);return Mt===void 0?!1:(P.value.indexOf(Mt)===-1?st(Mt):Qn(),!0)},Xe=Ze=>{Te(Le)!==!0&&Ze!==!0&&Te($)!==!0&&ge(oe,!0,()=>Xe(!0))};Xe()}else O.clearValue(k)}function Wt(k){n("keypress",k)}function on(k){if(n("keydown",k),jr(k)===!0)return;const oe=l.value.length!==0&&(t.newValueMode!==void 0||t.onNewValue!==void 0),ae=k.shiftKey!==!0&&t.disableTabSelection!==!0&&t.multiple!==!0&&(r.value!==-1||oe===!0);if(k.keyCode===27){Bn(k);return}if(k.keyCode===9&&ae===!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){Vt(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?Me(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)&&(Vt(k),r.value=-1,Rt(k.keyCode===36?1:-1,t.multiple)),(k.keyCode===33||k.keyCode===34)&&Y.value!==void 0&&(Vt(k),r.value=Math.max(-1,Math.min(I.value,r.value+(k.keyCode===33?-1:1)*Y.value.view)),Rt(k.keyCode===33?1:-1,t.multiple)),(k.keyCode===38||k.keyCode===40)&&(Vt(k),Rt(k.keyCode===38?-1:1,t.multiple));const Te=I.value;if((x===void 0||w0&&t.useInput!==!0&&k.key!==void 0&&k.key.length===1&&k.altKey===!1&&k.ctrlKey===!1&&k.metaKey===!1&&(k.keyCode!==32||x.length!==0)){o.value!==!0&&_i(k);const Xe=k.key.toLocaleLowerCase(),Ze=x.length===1&&x[0]===Xe;w=Date.now()+1500,Ze===!1&&(Vt(k),x+=Xe);const Mt=new RegExp("^"+x.split("").map(qa=>$_.indexOf(qa)!==-1?"\\"+qa:qa).join(".*"),"i");let ht=r.value;if(Ze===!0||ht<0||Mt.test($.value(t.options[ht]))!==!0)do ht=Xl(ht+1,-1,Te-1);while(ht!==r.value&&(Z.value(t.options[ht])===!0||Mt.test($.value(t.options[ht]))!==!0));r.value!==ht&&bt(()=>{xt(ht),re(ht),ht>=0&&t.useInput===!0&&t.fillInput===!0&&ie($.value(t.options[ht]),!0)});return}if(!(k.keyCode!==13&&(k.keyCode!==32||t.useInput===!0||x!=="")&&(k.keyCode!==9||ae===!1))){if(k.keyCode!==9&&Vt(k),r.value!==-1&&r.value{if(Mt){if(Qc(Mt)!==!0)return}else Mt=t.newValueMode;if(ve("",t.multiple!==!0,!0),Ze==null)return;(Mt==="toggle"?st:rt)(Ze,Mt==="add-unique"),t.multiple!==!0&&(V.value?.focus(),Qn())};if(t.onNewValue!==void 0?n("newValue",l.value,Xe):Xe(l.value),t.multiple!==!0)return}o.value===!0?wi():O.innerLoading.value!==!0&&_i()}}function qn(){return m===!0?D.value:E.value!==null&&E.value.contentEl!==null?E.value.contentEl:void 0}function Da(){return qn()}function Oa(){return t.hideSelected===!0?[]:e["selected-item"]!==void 0?Je.value.map(k=>e["selected-item"](k)).slice():e.selected!==void 0?[].concat(e.selected()):t.useChips===!0?Je.value.map((k,oe)=>S(ta,{key:"option-"+oe,removable:O.editable.value===!0&&Z.value(k.opt)!==!0,dense:!0,textColor:t.color,tabindex:ft.value,onRemove(){k.removeAtIndex(oe)}},()=>S("span",{class:"ellipsis",[k.html===!0?"innerHTML":"textContent"]:$.value(k.opt)}))):[S("span",{class:"ellipsis",[Nt.value===!0?"innerHTML":"textContent"]:qe.value})]}function no(){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:ae=>S(Ni,{key:ae.index,...ae.itemProps},()=>S(Xn,()=>S(Wi,()=>S("span",{[ae.html===!0?"innerHTML":"textContent"]:ae.label}))));let oe=ee("div",wt.value.map(k));return e["before-options"]!==void 0&&(oe=e["before-options"]().concat(oe)),mi(e["after-options"],oe)}function Va(k,oe){const ae=oe===!0?{...gt.value,...O.splitAttrs.attributes.value}:void 0,Te={ref:oe===!0?V:void 0,key:"i_t",class:B.value,style:t.inputStyle,value:l.value!==void 0?l.value:"",type:"search",...ae,id:oe===!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,...Oe.value};return k!==!0&&m===!0&&(Array.isArray(Te.class)===!0?Te.class=[...Te.class,"no-pointer-events"]:Te.class+=" no-pointer-events"),S("input",Te)}function F(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&&(m!==!0||u.value===!0)&&O.focus(),t.onFilter!==void 0&&(d=setTimeout(()=>{d=null,ge(l.value)},t.inputDebounce)))}function ie(k,oe){l.value!==k&&(l.value=k,oe===!0||t.inputDebounce===0||t.inputDebounce==="0"?n("inputValue",k):f=setTimeout(()=>{f=null,n("inputValue",k)},t.inputDebounce))}function ve(k,oe,ae){p=ae!==!0,t.useInput===!0&&(ie(k,!0),(oe===!0||ae!==!0)&&(b=k),oe!==!0&&ge(k))}function ge(k,oe,ae){if(t.onFilter===void 0||oe!==!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===$.value(P.value[0])&&(k="");const Te=setTimeout(()=>{o.value===!0&&(o.value=!1)},10);v!==null&&clearTimeout(v),v=Te,n("filter",k,(Xe,Ze)=>{(oe===!0||O.focused.value===!0)&&v===Te&&(clearTimeout(v),typeof Xe=="function"&&Xe(),c.value=!1,bt(()=>{O.innerLoading.value=!1,O.editable.value===!0&&(oe===!0?o.value===!0&&Qn():o.value===!0?Aa(!0):o.value=!0),typeof Ze=="function"&&bt(()=>{Ze(i)}),typeof ae=="function"&&bt(()=>{ae(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(eh,{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:Yt.value,transitionShow:t.transitionShow,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,separateClosePopup:!0,...yt.value,onScrollPassive:U,onBeforeShow:Ll,onBeforeHide:at,onShow:et},no)}function at(k){Rl(k),wi()}function et(){ce()}function Zt(k){In(k),V.value?.focus(),u.value=!0,window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,0)}function tt(k){In(k),bt(()=>{u.value=!1})}function _n(){const k=[S(hm,{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:Zt,onBlur:tt},{...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:Bn,onScrollPassive:U},no())),S(ns,{ref:L,modelValue:a.value,position:t.useInput===!0?"top":void 0,transitionShow:_,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,noRouteDismiss:t.popupNoRouteDismiss,onBeforeShow:Ll,onBeforeHide:xi,onHide:Ea,onShow:Gm},()=>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){Rl(k),L.value!==null&&L.value.__updateRefocusTarget(O.rootRef.value.querySelector(".q-field__native > [tabindex]:last-child")),O.focused.value=!1}function Ea(k){Qn(),O.focused.value===!1&&n("blur",k),Si()}function Gm(){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&&(m===!0?(O.onControlFocusin(k),a.value=!0,bt(()=>{O.focus()})):O.focus(),t.onFilter!==void 0?ge(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&&$.value(P.value[0])||"",!0,!0)}function Aa(k){let oe=-1;if(k===!0){if(P.value.length!==0){const ae=Le.value(P.value[0]);oe=t.options.findIndex(Te=>ls(Le.value(Te),ae))}j(oe)}xt(oe)}function Jm(k,oe){o.value===!0&&O.innerLoading.value===!1&&(j(-1,!0),bt(()=>{o.value===!0&&O.innerLoading.value===!1&&(k>oe?j():Aa(!0))}))}function ql(){a.value===!1&&E.value!==null&&E.value.updatePosition()}function Ll(k){k!==void 0&&In(k),n("popupShow",k),O.hasPopupOpen=!0,O.onControlFocusin(k)}function Rl(k){k!==void 0&&In(k),n("popupHide",k),O.hasPopupOpen=!1,O.onControlFocusout(k)}function $l(){m=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),_=s.platform.is.ios===!0&&m===!0&&t.useInput===!0?"fade":t.transitionShow}return Ld($l),yg(ql),$l(),qt(()=>{d!==null&&clearTimeout(d),f!==null&&clearTimeout(f)}),Object.assign(i,{showPopup:_i,hidePopup:Qn,removeAtIndex:Me,add:rt,toggleOption:st,getOptionIndex:()=>r.value,setOptionIndex:xt,moveOptionSelection:Rt,filter:ge,updateMenuPosition:ql,updateInputValue:ve,isOptionSelected:me,getEmittingOptionValue:He,isOptionDisabled:(...k)=>Z.value.apply(null,k)===!0,getOptionValue:(...k)=>Le.value.apply(null,k),getOptionLabel:(...k)=>$.value.apply(null,k)}),Object.assign(O,{innerValue:P,fieldClass:g(()=>`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:y,targetRef:V,hasValue:he,showPopup:_i,floatingLabel:g(()=>t.hideSelected!==!0&&he.value===!0||typeof l.value=="number"||l.value.length!==0||Hs(t.displayValue)),getControlChild:()=>{if(O.editable.value!==!1&&(a.value===!0||_e.value!==!0||e["no-option"]!==void 0))return m===!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(Bn(k),m!==!0&&o.value===!0){wi(),V.value?.focus();return}_i(k)}},getControl:k=>{const oe=Oa(),ae=k===!0||a.value!==!0||m!==!0;if(t.useInput===!0)oe.push(Va(k,ae));else if(O.editable.value===!0){const Xe=ae===!0?gt.value:void 0;oe.push(S("input",{ref:ae===!0?V:void 0,key:"d_t",class:"q-select__focus-target",id:ae===!0?O.targetUid.value:void 0,value:qe.value,readonly:!0,"data-autofocus":k===!0||t.autofocus===!0||void 0,...Xe,onKeydown:on,onKeyup:je,onKeypress:Wt})),ae===!0&&typeof t.autocomplete=="string"&&t.autocomplete.length!==0&&oe.push(S("input",{class:"q-select__autocomplete-input",autocomplete:t.autocomplete,tabindex:-1,onKeyup:ot}))}if(T.value!==void 0&&t.disable!==!0&&K.value.length!==0){const Xe=K.value.map(Ze=>S("option",{value:Ze,selected:!0}));oe.push(S("select",{class:"hidden",name:T.value,multiple:t.multiple},Xe))}const Te=t.useInput===!0||ae!==!0?void 0:O.splitAttrs.attributes.value;return S("div",{class:"q-field__native row items-center",...Te,...O.splitAttrs.listeners.value},oe)},getInnerAppend:()=>t.loading!==!0&&c.value!==!0&&t.hideDropdownIcon!==!0?[S(xe,{class:"q-select__dropdown-icon"+(o.value===!0?" rotate-180":""),name:Dt.value})]:null}),Cl(O)}}),B_={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 N_=Be({name:"QLinearProgress",props:{...mn,...Yr,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}=Ye(),i=gn(t,n.$q),s=Zr(t,B_),o=g(()=>t.indeterminate===!0||t.query===!0),a=g(()=>t.reverse!==t.query),r=g(()=>({...s.value!==null?s.value:{},"--q-linear-progress-speed":`${t.animationSpeed}ms`})),l=g(()=>"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=g(()=>Gc(t.buffer!==void 0?t.buffer:1,a.value,n.$q)),c=g(()=>`with${t.instantFeedback===!0?"out":""}-transition`),d=g(()=>`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=g(()=>Gc(o.value===!0?1:t.value,a.value,n.$q)),h=g(()=>`q-linear-progress__model absolute-full q-linear-progress__model--${c.value} q-linear-progress__model--${o.value===!0?"in":""}determinate`),m=g(()=>({width:`${t.value*100}%`})),p=g(()=>`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:m.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 W_(t,e){const n=N(null),i=g(()=>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 H_={xs:30,sm:35,md:40,lg:50,xl:60},mm={...mn,...Yr,...wa,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]},gm=["update:modelValue"];function vm(t,e){const{props:n,slots:i,emit:s,proxy:o}=Ye(),{$q:a}=o,r=gn(n,a),l=N(null),{refocusTargetEl:u,refocusTarget:c}=W_(n,l),d=Zr(n,H_),f=g(()=>n.val!==void 0&&Array.isArray(n.modelValue)),h=g(()=>{const I=Tn(n.val);return f.value===!0?n.modelValue.findIndex(H=>Tn(H)===I):-1}),m=g(()=>f.value===!0?h.value!==-1:Tn(n.modelValue)===Tn(n.trueValue)),p=g(()=>f.value===!0?h.value===-1:Tn(n.modelValue)===Tn(n.falseValue)),v=g(()=>m.value===!1&&p.value===!1),b=g(()=>n.disable===!0?-1:n.tabindex||0),_=g(()=>`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":"")),x=g(()=>{const I=m.value===!0?"truthy":p.value===!0?"falsy":"indet",H=n.color!==void 0&&(n.keepColor===!0||(t==="toggle"?m.value===!0:p.value!==!0))?` text-${n.color}`:"";return`q-${t}__inner relative-position non-selectable q-${t}__inner--${I}${H}`}),w=g(()=>{const I={type:"checkbox"};return n.name!==void 0&&Object.assign(I,{".checked":m.value,"^checked":m.value===!0?"checked":void 0,name:n.name,value:f.value===!0?n.val:n.trueValue}),I}),y=sm(w),V=g(()=>{const I={tabindex:b.value,role:t==="toggle"?"switch":"checkbox","aria-label":n.label,"aria-checked":v.value===!0?"mixed":m.value===!0?"true":"false"};return n.disable===!0&&(I["aria-disabled"]="true"),I});function E(I){I!==void 0&&(Vt(I),c(I)),n.disable!==!0&&s("update:modelValue",L(),I)}function L(){if(f.value===!0){if(m.value===!0){const I=n.modelValue.slice();return I.splice(h.value,1),I}return n.modelValue.concat([n.val])}if(m.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(I){(I.keyCode===13||I.keyCode===32)&&Vt(I)}function T(I){(I.keyCode===13||I.keyCode===32)&&E(I)}const R=e(m,v);return Object.assign(o,{toggle:E}),()=>{const I=R();n.disable!==!0&&y(I,"unshift",` q-${t}__native absolute q-ma-none q-pa-none`);const H=[S("div",{class:x.value,style:d.value,"aria-hidden":"true"},I)];u.value!==null&&H.push(u.value);const z=n.label!==void 0?mi(i.default,[n.label]):it(i.default);return z!==void 0&&H.push(S("div",{class:`q-${t}__label q-anchor--skip`},z)),S("div",{ref:l,class:_.value,...V.value,onClick:E,onKeydown:D,onKeyup:T},H)}}const j_=()=>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"})])]),fr=Be({name:"QCheckbox",props:mm,emits:gm,setup(t){const e=j_();function n(i,s){const o=g(()=>(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 vm("checkbox",n)}});function U_(t,e){return new Date(t)-new Date(e)}const Y_={sortMethod:Function,binaryStateSort:Boolean,columnSortOrder:{type:String,validator:t=>t==="ad"||t==="da",default:"ad"}};function Z_(t,e,n,i){const s=g(()=>{const{sortBy:r}=e.value;return r&&n.value.find(l=>l.name===r)||null}),o=g(()=>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,m)=>{let p=f(h),v=f(m);return c.rawSort!==void 0?c.rawSort(p,v,h,m)*d:p==null?-1*d:v==null?1*d:c.sort!==void 0?c.sort(p,v,h,m)*d:qs(p)===!0&&qs(v)===!0?(p-v)*d:Bl(p)===!0&&Bl(v)===!0?U_(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 X_={filter:[String,Object],filterMethod:Function};function K_(t,e){const n=g(()=>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,()=>{bt(()=>{e({page:1},!0)})},{deep:!0}),{computedFilterMethod:n}}function Q_(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 G_={pagination:Object,rowsPerPageOptions:{type:Array,default:()=>[5,7,10,15,20,25,50,0]},"onUpdate:pagination":[Function,Array]};function J_(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=g(()=>{const c=n["onUpdate:pagination"]!==void 0?{...s.value,...n.pagination}:s.value;return Jc(c)}),a=g(()=>o.value.rowsNumber!==void 0);function r(c){l({pagination:c,filter:n.filter})}function l(c={}){bt(()=>{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(Q_(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 eS(t,e,n,i,s,o){const{props:a,emit:r,proxy:{$q:l}}=t,u=g(()=>i.value===!0?n.value.rowsNumber||0:o.value),c=g(()=>{const{page:w,rowsPerPage:y}=n.value;return(w-1)*y}),d=g(()=>{const{page:w,rowsPerPage:y}=n.value;return w*y}),f=g(()=>n.value.page===1),h=g(()=>n.value.rowsPerPage===0?1:Math.max(1,Math.ceil(u.value/n.value.rowsPerPage))),m=g(()=>d.value===0?!0:n.value.page>=h.value),p=g(()=>(a.rowsPerPageOptions.includes(e.value.rowsPerPage)?a.rowsPerPageOptions:[e.value.rowsPerPage].concat(a.rowsPerPageOptions)).map(y=>({label:y===0?l.lang.table.allRows:""+y,value:y})));fe(h,(w,y)=>{if(w===y)return;const V=n.value.page;w&&!V?s({page:1}):w1&&s({page:w-1})}function _(){const{page:w,rowsPerPage:y}=n.value;d.value>0&&w*y["single","multiple","none"].includes(t)},selected:{type:Array,default:()=>[]}},nS=["update:selected","selection"];function iS(t,e,n,i){const s=g(()=>{const m={};return t.selected.map(i.value).forEach(p=>{m[p]=!0}),m}),o=g(()=>t.selection!=="none"),a=g(()=>t.selection==="single"),r=g(()=>t.selection==="multiple"),l=g(()=>n.value.length!==0&&n.value.every(m=>s.value[i.value(m)]===!0)),u=g(()=>l.value!==!0&&n.value.some(m=>s.value[i.value(m)]===!0)),c=g(()=>t.selected.length);function d(m){return s.value[m]===!0}function f(){e("update:selected",[])}function h(m,p,v,b){e("selection",{rows:p,added:v,keys:m,evt:b});const _=a.value===!0?v===!0?p:[]:v===!0?t.selected.concat(p):t.selected.filter(x=>m.includes(i.value(x))===!1);e("update:selected",_)}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 sS={expanded:Array},oS=["update:expanded"];function aS(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 rS={visibleColumns:Array};function lS(t,e,n){const i=g(()=>{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:qs(r[l])?"right":"left",sortable:!0})):[]}),s=g(()=>{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=g(()=>{const r={};return s.value.forEach(l=>{r[l.name]=l}),r}),a=g(()=>t.tableColspan!==void 0?t.tableColspan:s.value.length+(n.value===!0?1:0));return{colList:i,computedCols:s,computedColsMap:o,computedColspan:a}}const To="q-table__bottom row items-center",pm={};dm.forEach(t=>{pm[t]={}});const uS=Be({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:{},...pm,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,...mn,...Qd,...rS,...X_,...G_,...sS,...tS,...Y_},emits:["request","virtualScroll",...Gd,...oS,...nS],setup(t,{slots:e,emit:n}){const i=Ye(),{proxy:{$q:s}}=i,o=gn(t,s),{inFullscreen:a,toggleFullscreen:r}=Jd(),l=g(()=>typeof t.rowKey=="function"?t.rowKey:F=>F[t.rowKey]),u=N(null),c=N(null),d=g(()=>t.grid!==!0&&t.virtualScroll===!0),f=g(()=>" 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=g(()=>`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":"")),m=g(()=>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:_,setPagination:x}=J_(i,xt),{computedFilterMethod:w}=K_(t,x),{isRowExpanded:y,setExpanded:V,updateExpanded:E}=aS(t,n),L=g(()=>{let F=t.rows;if(b.value===!0||F.length===0)return F;const{sortBy:ie,descending:ve}=v.value;return t.filter&&(F=w.value(F,t.filter,O.value,xt)),ue.value!==null&&(F=he.value(t.rows===F?F.slice():F,ie,ve)),F}),D=g(()=>L.value.length),T=g(()=>{let F=L.value;if(b.value===!0)return F;const{rowsPerPage:ie}=v.value;return ie!==0&&(te.value===0&&t.rows!==F?F.length>_e.value&&(F=F.slice(0,_e.value)):F=F.slice(te.value,_e.value)),F}),{hasSelectionMode:R,singleSelection:I,multipleSelection:H,allRowsSelected:z,someRowsSelected:Y,rowsSelectedNumber:j,isRowSelected:ee,clearSelection:U,updateSelection:re}=iS(t,n,T,l),{colList:ce,computedCols:O,computedColsMap:P,computedColspan:J}=lS(t,v,R),{columnToSort:ue,computedSortMethod:he,sort:B}=Z_(t,v,ce,x),{firstRowIndex:te,lastRowIndex:_e,isFirstPage:G,isLastPage:qe,pagesNumber:Qe,computedRowsPerPageOptions:Nt,computedRowsNumber:ft,firstPage:gt,prevPage:yt,nextPage:Je,lastPage:wt}=eS(i,p,v,b,x,D),Dt=g(()=>T.value.length===0),Yt=g(()=>{const F={};return dm.forEach(ie=>{F[ie]=t[ie]}),F.virtualScrollItemSize===void 0&&(F.virtualScrollItemSize=t.dense===!0?28:48),F});function Lt(){d.value===!0&&c.value.reset()}function Le(){if(t.grid===!0)return Va();const F=t.hideHeader!==!0?Se:null;if(d.value===!0){const ve=e["top-row"],ge=e["bottom-row"],ye={default:at=>Oe(at.item,e.body,at.index)};if(ve!==void 0){const at=S("tbody",ve({cols:O.value}));ye.before=F===null?()=>at:()=>[F()].concat(at)}else F!==null&&(ye.before=F);return ge!==void 0&&(ye.after=()=>S("tbody",ge({cols:O.value}))),S(L_,{ref:c,class:t.tableClass,style:t.tableStyle,...Yt.value,scrollTarget:t.virtualScrollTarget,items:T.value,type:"__qtable",tableColspan:J.value,onVirtualScroll:Z},ye)}const ie=[He()];return F!==null&&ie.unshift(F()),lm({class:["q-table__middle scroll",t.tableClass],style:t.tableStyle},ie)}function $(F,ie){if(c.value!==null){c.value.scrollTo(F,ie);return}F=parseInt(F,10);const ve=u.value.querySelector(`tbody tr:nth-of-type(${F+1})`);if(ve!==null){const ge=u.value.querySelector(".q-table__middle.scroll"),ye=ve.offsetTop-t.virtualScrollStickySizeStart,at=ye{const _n=e[`body-cell-${tt.name}`],xi=_n!==void 0?_n:at;return xi!==void 0?xi(Ie({key:ge,row:F,pageIndex:ve,col:tt})):S("td",{class:tt.__tdClass(F),style:tt.__tdStyle(F)},xt(tt,F))});if(R.value===!0){const tt=e["body-selection"],_n=tt!==void 0?tt(rt({key:ge,row:F,pageIndex:ve})):[S(fr,{modelValue:ye,color:t.color,dark:o.value,dense:t.dense,"onUpdate:modelValue":(xi,Ea)=>{re([ge],[F],xi,Ea)}})];et.unshift(S("td",{class:"q-table--col-auto-width"},_n))}const Zt={key:ge,class:{selected:ye}};if(t.onRowClick!==void 0&&(Zt.class["cursor-pointer"]=!0,Zt.onClick=tt=>{n("rowClick",tt,F,ve)}),t.onRowDblclick!==void 0&&(Zt.class["cursor-pointer"]=!0,Zt.onDblclick=tt=>{n("rowDblclick",tt,F,ve)}),t.onRowContextmenu!==void 0&&(Zt.class["cursor-pointer"]=!0,Zt.onContextmenu=tt=>{n("rowContextmenu",tt,F,ve)}),t.tableRowStyleFn!==void 0&&(Zt.style=t.tableRowStyleFn(F)),t.tableRowClassFn!==void 0){const tt=t.tableRowClassFn(F);tt&&(Zt.class[tt]=!0)}return S("tr",Zt,et)}function He(){const F=e.body,ie=e["top-row"],ve=e["bottom-row"];let ge=T.value.map((ye,at)=>Oe(ye,F,at));return ie!==void 0&&(ge=ie({cols:O.value}).concat(ge)),ve!==void 0&&(ge=ge.concat(ve({cols:O.value}))),S("tbody",ge)}function Me(F){return st(F),F.cols=F.cols.map(ie=>si({...ie},"value",()=>xt(ie,F.row))),F}function Ie(F){return st(F),si(F,"value",()=>xt(F.col,F.row)),F}function rt(F){return st(F),F}function st(F){Object.assign(F,{cols:O.value,colsMap:P.value,sort:B,rowIndex:te.value+F.pageIndex,color:t.color,dark:o.value,dense:t.dense}),R.value===!0&&si(F,"selected",()=>ee(F.key),(ie,ve)=>{re([F.key],[F.row],ie,ve)}),si(F,"expand",()=>y(F.key),ie=>{E(F.key,ie)})}function xt(F,ie){const ve=typeof F.field=="function"?F.field(ie):ie[F.field];return F.format!==void 0?F.format(ve,ie):ve}const Rt=g(()=>({pagination:v.value,pagesNumber:Qe.value,isFirstPage:G.value,isLastPage:qe.value,firstPage:gt,prevPage:yt,nextPage:Je,lastPage:wt,inFullscreen:a.value,toggleFullscreen:r}));function W(){const F=e.top,ie=e["top-left"],ve=e["top-right"],ge=e["top-selection"],ye=R.value===!0&&ge!==void 0&&j.value>0,at="q-table__top relative-position row items-center";if(F!==void 0)return S("div",{class:at},[F(Rt.value)]);let et;if(ye===!0?et=ge(Rt.value).slice():(et=[],ie!==void 0?et.push(S("div",{class:"q-table__control"},[ie(Rt.value)])):t.title&&et.push(S("div",{class:"q-table__control"},[S("div",{class:["q-table__title",t.titleClass]},t.title)]))),ve!==void 0&&(et.push(S("div",{class:"q-table__separator col"})),et.push(S("div",{class:"q-table__control"},[ve(Rt.value)]))),et.length!==0)return S("div",{class:at},et)}const me=g(()=>Y.value===!0?null:z.value);function Se(){const F=je();return t.loading===!0&&e.loading===void 0&&F.push(S("tr",{class:"q-table__progress"},[S("th",{class:"relative-position",colspan:J.value},K())])),S("thead",F)}function je(){const F=e.header,ie=e["header-cell"];if(F!==void 0)return F(ot({header:!0})).slice();const ve=O.value.map(ge=>{const ye=e[`header-cell-${ge.name}`],at=ye!==void 0?ye:ie,et=ot({col:ge});return at!==void 0?at(et):S(Lr,{key:ge.name,props:et},()=>ge.label)});if(I.value===!0&&t.grid!==!0)ve.unshift(S("th",{class:"q-table--col-auto-width"}," "));else if(H.value===!0){const ge=e["header-selection"],ye=ge!==void 0?ge(ot({})):[S(fr,{color:t.color,modelValue:me.value,dark:o.value,dense:t.dense,"onUpdate:modelValue":Wt})];ve.unshift(S("th",{class:"q-table--col-auto-width"},ye))}return[S("tr",{class:t.tableHeaderClass,style:t.tableHeaderStyle},ve)]}function ot(F){return Object.assign(F,{cols:O.value,sort:B,colsMap:P.value,color:t.color,dark:o.value,dense:t.dense}),H.value===!0&&si(F,"selected",()=>me.value,Wt),F}function Wt(F){Y.value===!0&&(F=!1),re(T.value.map(l.value),T.value,F)}const on=g(()=>{const F=[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?F.reverse():F});function qn(){if(t.hideBottom===!0)return;if(Dt.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,ge=e["no-data"],ye=ge!==void 0?[ge({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:To+" q-table__bottom--nodata"},ye)}const F=e.bottom;if(F!==void 0)return S("div",{class:To},[F(Rt.value)]);const ie=t.hideSelectedBanner!==!0&&R.value===!0&&j.value>0?[S("div",{class:"q-table__control"},[S("div",[(t.selectedRowsLabel||s.lang.table.selectedRecords)(j.value)])])]:[];if(t.hidePagination!==!0)return S("div",{class:To+" justify-end"},Oa(ie));if(ie.length!==0)return S("div",{class:To},ie)}function Da(F){x({page:1,rowsPerPage:F.value})}function Oa(F){let ie;const{rowsPerPage:ve}=v.value,ge=t.paginationLabel||s.lang.table.pagination,ye=e.pagination,at=t.rowsPerPageOptions.length>1;if(F.push(S("div",{class:"q-table__separator col"})),at===!0&&F.push(S("div",{class:"q-table__control"},[S("span",{class:"q-table__bottom-item"},[t.rowsPerPageLabel||s.lang.table.recordsPerPage]),S(z_,{class:"q-table__select inline q-table__bottom-item",color:t.color,modelValue:ve,options:Nt.value,displayValue:ve===0?s.lang.table.allRows:ve,dark:o.value,borderless:!0,dense:!0,optionsDense:!0,optionsCover:!0,"onUpdate:modelValue":Da})])),ye!==void 0)ie=ye(Rt.value);else if(ie=[S("span",ve!==0?{class:"q-table__bottom-item"}:{},[ve?ge(te.value+1,Math.min(_e.value,ft.value),ft.value):ge(1,D.value,ft.value)])],ve!==0&&Qe.value>1){const et={color:t.color,round:!0,dense:!0,flat:!0};t.dense===!0&&(et.size="sm"),Qe.value>2&&ie.push(S(ke,{key:"pgFirst",...et,icon:on.value[0],disable:G.value,"aria-label":s.lang.pagination.first,onClick:gt})),ie.push(S(ke,{key:"pgPrev",...et,icon:on.value[1],disable:G.value,"aria-label":s.lang.pagination.prev,onClick:yt}),S(ke,{key:"pgNext",...et,icon:on.value[2],disable:qe.value,"aria-label":s.lang.pagination.next,onClick:Je})),Qe.value>2&&ie.push(S(ke,{key:"pgLast",...et,icon:on.value[3],disable:qe.value,"aria-label":s.lang.pagination.last,onClick:wt}))}return F.push(S("div",{class:"q-table__control"},ie)),F}function no(){const F=t.gridHeader===!0?[S("table",{class:"q-table"},[Se()])]:t.loading===!0&&e.loading===void 0?K():void 0;return S("div",{class:"q-table__middle"},F)}function Va(){const F=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(R.value===!0){const ye=e["body-selection"],at=ye!==void 0?ye(ie):[S(fr,{modelValue:ie.selected,color:t.color,dark:o.value,dense:t.dense,"onUpdate:modelValue":(et,Zt)=>{re([ie.key],[ie.row],et,Zt)}})];ve.unshift(S("div",{class:"q-table__grid-item-row"},at),S(At,{dark:o.value}))}const ge={class:["q-table__grid-item-card"+f.value,t.cardClass],style:t.cardStyle};if(t.cardStyleFn!==void 0&&(ge.style=[ge.style,t.cardStyleFn(ie.row)]),t.cardClassFn!==void 0){const ye=t.cardClassFn(ie.row);ye&&(ge.class[0]+=` ${ye}`)}return(t.onRowClick!==void 0||t.onRowDblclick!==void 0||t.onRowContextmenu!==void 0)&&(ge.class[0]+=" cursor-pointer",t.onRowClick!==void 0&&(ge.onClick=ye=>{n("RowClick",ye,ie.row,ie.pageIndex)}),t.onRowDblclick!==void 0&&(ge.onDblclick=ye=>{n("RowDblclick",ye,ie.row,ie.pageIndex)}),t.onRowContextmenu!==void 0&&(ge.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",ge,ve)])};return S("div",{class:["q-table__grid-content row",t.cardContainerClass],style:t.cardContainerStyle},T.value.map((ie,ve)=>F(Me({key:l.value(ie),row:ie,pageIndex:ve}))))}return Object.assign(i.proxy,{requestServerInteraction:_,setPagination:x,firstPage:gt,prevPage:yt,nextPage:Je,lastPage:wt,isRowSelected:ee,clearSelection:U,isRowExpanded:y,setExpanded:V,sort:B,resetVirtualScroll:Lt,scrollTo:$,getCellValue:xt}),xg(i.proxy,{filteredSortedRows:()=>L.value,computedRows:()=>T.value,computedRowsNumber:()=>ft.value}),()=>{const F=[W()],ie={ref:u,class:m.value};return t.grid===!0?F.push(no()):Object.assign(ie,{class:[ie.class,t.cardClass],style:t.cardStyle}),F.push(Le(),qn()),t.loading===!0&&e.loading!==void 0&&F.push(e.loading()),S("div",ie,F)}}}),cS={class:"row full-width items-center"},dS={class:"col"},fS=be({__name:"BaseTable",props:{items:{},rowData:{type:[Function,Object]},columnConfig:{},rowKey:{},searchInputVisible:{type:Boolean},tableHeight:{},filter:{},columnsToSearch:{},rowExpandable:{type:Boolean},dense:{type:Boolean},square:{type:Boolean}},emits:["row-click","update:filter"],setup(t,{emit:e}){Od(f=>({"1c29a7a7":f.tableHeight}));const n=t,i=N([]),s=wg(),o=g(()=>n.rowExpandable?Object.keys(s).filter(f=>!f.startsWith("body")):Object.keys(s)),a=e,r=g({get:()=>n.filter||"",set:f=>a("update:filter",f)}),l=g(()=>n.items.map(typeof n.rowData=="function"?n.rowData:n.rowData.value)),u=g(()=>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,m)=>{if(!h||h.trim()==="")return f;const p=h.toLowerCase(),v=n.columnsToSearch||m.map(b=>typeof b.field=="string"?b.field:"");return f.filter(b=>v.some(_=>{const x=b[_];return x&&String(x).toLowerCase().includes(p)}))},d=(f,h)=>a("row-click",h);return(f,h)=>(M(),X(uS,{class:Re(["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]=m=>i.value=m),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":"",dense:n.dense,square:n.square},_g({_:2},[f.searchInputVisible?{name:"top",fn:A(()=>[q("div",cS,[q("div",dS,[C(rm,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=m=>r.value=m),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(m=>[C(ur,{props:m},{default:A(()=>[C(Lr,{"auto-width":"",props:{...m,col:{}}},null,8,["props"]),(M(!0),Q(De,null,Ke(m.cols,p=>(M(),X(Lr,{key:p.name,props:{...m,col:p}},{default:A(()=>[Ve(se(p.label),1)]),_:2},1032,["props"]))),128))]),_:2},1032,["props"])]),key:"1"}:void 0,n.rowExpandable?{name:"body",fn:A(m=>[(M(),X(ur,{key:`main-${m.key}`,props:m,onClick:p=>d(p,m.row),class:"clickable"},{default:A(()=>[C(_t,{"auto-width":""},{default:A(()=>[C(ke,{dense:"",flat:"",round:"",size:"sm",icon:m.expand?"keyboard_arrow_up":"keyboard_arrow_down",onClick:ln(p=>m.expand=!m.expand,["stop"])},null,8,["icon","onClick"])]),_:2},1024),(M(!0),Q(De,null,Ke(m.cols,p=>(M(),Q(De,{key:p.name},[f.$slots[`body-cell-${p.name}`]?Vi(f.$slots,`body-cell-${p.name}`,kg({key:0,ref_for:!0},{...m,col:p}),void 0,!0):(M(),X(_t,{key:1,props:{...m,col:p,value:m.row[p.field]}},{default:A(()=>[Ve(se(m.row[p.field]),1)]),_:2},1032,["props"]))],64))),128))]),_:2},1032,["props","onClick"])),sn((M(),X(ur,{key:`xp-${m.key}`,props:m,class:"q-virtual-scroll--with-prev"},{default:A(()=>[C(_t,{colspan:m.cols.length+1},{default:A(()=>[Vi(f.$slots,"row-expand",Nl(Wl(m)),void 0,!0)]),_:2},1032,["colspan"])]),_:2},1032,["props"])),[[Sg,m.expand]])]),key:"2"}:void 0,Ke(o.value,m=>({name:m,fn:A(p=>[Vi(f.$slots,m,Nl(Wl(p)),void 0,!0)])}))]),1032,["class","rows","columns","expanded","filter","dense","square"]))}}),bm=mt(fS,[["__scopeId","data-v-7781ba33"]]),is=Be({name:"QSpace",setup(){const t=S("div",{class:"q-space"});return()=>t}}),ct=Be({name:"QCardSection",props:{tag:{type:String,default:"div"},horizontal:Boolean},setup(t,{slots:e}){const n=g(()=>`q-card__section q-card__section--${t.horizontal===!0?"horiz row no-wrap":"vert"}`);return()=>S(t.tag,{class:n.value},it(e.default))}}),Ml=Be({name:"QCardActions",props:{...Cg,vertical:Boolean},setup(t,{slots:e}){const n=Mg(t),i=g(()=>`q-card__actions ${n.value} q-card__actions--${t.vertical===!0?"vert column":"horiz row"}`);return()=>S("div",{class:i.value},it(e.default))}}),ss=Be({name:"QCard",props:{...mn,tag:{type:String,default:"div"},square:Boolean,flat:Boolean,bordered:Boolean},setup(t,{slots:e}){const{proxy:{$q:n}}=Ye(),i=gn(t,n),s=g(()=>"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},it(e.default))}});function td(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 wn=Id({name:"close-popup",beforeMount(t,{value:e}){const n={depth:td(e),handler(i){n.depth!==0&&setTimeout(()=>{const s=zg(t);s!==void 0&&Bg(s,i,n.depth)})},handlerKey(i){aa(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=td(e))},beforeUnmount(t){const e=t.__qclosepopup;t.removeEventListener("click",e.handler),t.removeEventListener("keyup",e.handlerKey),delete t.__qclosepopup}}),nd="q-slider__marker-labels",hS=t=>({value:t}),mS=({marker:t})=>S("div",{key:t.value,style:t.style,class:t.classes},t.label),ym=[34,37,40,33,39,38],gS={...mn,...wa,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"}},vS=["pan","update:modelValue","change"];function pS({updateValue:t,updatePosition:e,getDragging:n,formAttrs:i}){const{props:s,emit:o,slots:a,proxy:{$q:r}}=Ye(),l=gn(s,r),u=sm(i),c=N(!1),d=N(!1),f=N(!1),h=N(!1),m=g(()=>s.vertical===!0?"--v":"--h"),p=g(()=>"-"+(s.switchLabelSide===!0?"switched":"standard")),v=g(()=>s.vertical===!0?s.reverse===!0:s.reverse!==(r.lang.rtl===!0)),b=g(()=>isNaN(s.innerMin)===!0||s.innerMinisNaN(s.innerMax)===!0||s.innerMax>s.max?s.max:s.innerMax),x=g(()=>s.disable!==!0&&s.readonly!==!0&&b.value<_.value),w=g(()=>{if(s.step===0)return me=>me;const W=(String(s.step).trim().split(".")[1]||"").length;return me=>parseFloat(me.toFixed(W))}),y=g(()=>s.step===0?1:s.step),V=g(()=>x.value===!0?s.tabindex||0:-1),E=g(()=>s.max-s.min),L=g(()=>_.value-b.value),D=g(()=>Qe(b.value)),T=g(()=>Qe(_.value)),R=g(()=>s.vertical===!0?v.value===!0?"bottom":"top":v.value===!0?"right":"left"),I=g(()=>s.vertical===!0?"height":"width"),H=g(()=>s.vertical===!0?"width":"height"),z=g(()=>s.vertical===!0?"vertical":"horizontal"),Y=g(()=>{const W={role:"slider","aria-valuemin":b.value,"aria-valuemax":_.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}),j=g(()=>`q-slider q-slider${m.value} q-slider--${c.value===!0?"":"in"}active inline no-wrap `+(s.vertical===!0?"row":"column")+(s.disable===!0?" disabled":" q-slider--enabled"+(x.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"+m.value:""));function ee(W){const me="q-slider__"+W;return`${me} ${me}${m.value} ${me}${m.value}${p.value}`}function U(W){const me="q-slider__"+W;return`${me} ${me}${m.value}`}const re=g(()=>{const W=s.selectionColor||s.color;return"q-slider__selection absolute"+(W!==void 0?` text-${W}`:"")}),ce=g(()=>U("markers")+" absolute overflow-hidden"),O=g(()=>U("track-container")),P=g(()=>ee("pin")),J=g(()=>ee("label")),ue=g(()=>ee("text-container")),he=g(()=>ee("marker-labels-container")+(s.markerLabelsClass!==void 0?` ${s.markerLabelsClass}`:"")),B=g(()=>"q-slider__track relative-position no-outline"+(s.trackColor!==void 0?` bg-${s.trackColor}`:"")),te=g(()=>{const W={[H.value]:s.trackSize};return s.trackImg!==void 0&&(W.backgroundImage=`url(${s.trackImg}) !important`),W}),_e=g(()=>"q-slider__inner absolute"+(s.innerTrackColor!==void 0?` bg-${s.innerTrackColor}`:"")),G=g(()=>{const W=T.value-D.value,me={[R.value]:`${100*D.value}%`,[I.value]:W===0?"2px":`${100*W}%`};return s.innerTrackImg!==void 0&&(me.backgroundImage=`url(${s.innerTrackImg}) !important`),me});function qe(W){const{min:me,max:Se,step:je}=s;let ot=me+W*(Se-me);if(je>0){const Wt=(ot-b.value)%je;ot+=(Math.abs(Wt)>=je/2?(Wt<0?-1:1)*je:0)-Wt}return ot=w.value(ot),Ii(ot,b.value,_.value)}function Qe(W){return E.value===0?0:(W-s.min)/E.value}function Nt(W,me){const Se=Ro(W),je=s.vertical===!0?Ii((Se.top-me.top)/me.height,0,1):Ii((Se.left-me.left)/me.width,0,1);return Ii(v.value===!0?1-je:je,D.value,T.value)}const ft=g(()=>qs(s.markers)===!0?s.markers:y.value),gt=g(()=>{const W=[],me=ft.value,Se=s.max;let je=s.min;do W.push(je),je+=me;while(je{const W=` ${nd}${m.value}-`;return nd+`${W}${s.switchMarkerLabelsSide===!0?"switched":"standard"}${W}${v.value===!0?"rtl":"ltr"}`}),Je=g(()=>s.markerLabels===!1?null:Yt(s.markerLabels).map((W,me)=>({index:me,value:W.value,label:W.label||W.value,classes:yt.value+(W.classes!==void 0?" "+W.classes:""),style:{...Lt(W.value),...W.style||{}}}))),wt=g(()=>({markerList:Je.value,markerMap:Le.value,classes:yt.value,getStyle:Lt})),Dt=g(()=>{const W=L.value===0?"2px":100*ft.value/L.value;return{...G.value,backgroundSize:s.vertical===!0?`2px ${W}%`:`${W}% 2px`}});function Yt(W){if(W===!1)return null;if(W===!0)return gt.value.map(hS);if(typeof W=="function")return gt.value.map(Se=>{const je=W(Se);return Io(je)===!0?{...je,value:Se}:{value:Se,label:je}});const me=({value:Se})=>Se>=s.min&&Se<=s.max;return Array.isArray(W)===!0?W.map(Se=>Io(Se)===!0?Se:{value:Se}).filter(me):Object.keys(W).map(Se=>{const je=W[Se],ot=Number(Se);return Io(je)===!0?{...je,value:ot}:{value:ot,label:je}}).filter(me)}function Lt(W){return{[R.value]:`${100*(W-s.min)/E.value}%`}}const Le=g(()=>{if(s.markerLabels===!1)return null;const W={};return Je.value.forEach(me=>{W[me.value]=me}),W});function $(){if(a["marker-label-group"]!==void 0)return a["marker-label-group"](wt.value);const W=a["marker-label"]||mS;return Je.value.map(me=>W({marker:me,...wt.value}))}const Z=g(()=>[[Ng,K,void 0,{[z.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function K(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 Oe(){f.value=!1}function He(W){e(W,n(W)),t(),d.value=!0,c.value=!0,document.addEventListener("mouseup",Me,!0)}function Me(){d.value=!1,c.value=!1,t(!0),Oe(),document.removeEventListener("mouseup",Me,!0)}function Ie(W){e(W,n(W)),t(!0)}function rt(W){ym.includes(W.keyCode)&&t(!0)}function st(W){if(s.vertical===!0)return null;const me=r.lang.rtl!==s.reverse?1-W:W;return{transform:`translateX(calc(${2*me-1} * ${s.thumbSize} / 2 + ${50-100*me}%))`}}function xt(W){const me=g(()=>d.value===!1&&(f.value===W.focusValue||f.value==="both")?" q-slider--focus":""),Se=g(()=>`q-slider__thumb q-slider__thumb${m.value} q-slider__thumb${m.value}-${v.value===!0?"rtl":"ltr"} absolute non-selectable`+me.value+(W.thumbColor.value!==void 0?` text-${W.thumbColor.value}`:"")),je=g(()=>({width:s.thumbSize,height:s.thumbSize,[R.value]:`${100*W.ratio.value}%`,zIndex:f.value===W.focusValue?2:void 0})),ot=g(()=>W.labelColor.value!==void 0?` text-${W.labelColor.value}`:""),Wt=g(()=>st(W.ratio.value)),on=g(()=>"q-slider__text"+(W.labelTextColor.value!==void 0?` text-${W.labelTextColor.value}`:""));return()=>{const qn=[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)&&(qn.push(S("div",{class:P.value+" absolute fit no-pointer-events"+ot.value},[S("div",{class:J.value,style:{minWidth:s.thumbSize}},[S("div",{class:ue.value,style:Wt.value},[S("span",{class:on.value},W.label.value)])])])),s.name!==void 0&&s.disable!==!0&&u(qn,"push")),S("div",{class:Se.value,style:je.value,...W.getNodeData()},qn)}}function Rt(W,me,Se,je){const ot=[];s.innerTrackColor!=="transparent"&&ot.push(S("div",{key:"inner",class:_e.value,style:G.value})),s.selectionColor!=="transparent"&&ot.push(S("div",{key:"selection",class:re.value,style:W.value})),s.markers!==!1&&ot.push(S("div",{key:"marker",class:ce.value,style:Dt.value})),je(ot);const Wt=[ua("div",{key:"trackC",class:O.value,tabindex:me.value,...Se.value},[S("div",{class:B.value,style:te.value},ot)],"slide",x.value,()=>Z.value)];if(s.markerLabels!==!1){const on=s.switchMarkerLabelsSide===!0?"unshift":"push";Wt[on](S("div",{key:"markerL",class:he.value},$()))}return Wt}return qt(()=>{document.removeEventListener("mouseup",Me,!0)}),{state:{active:c,focus:f,preventFocus:d,dragging:h,editable:x,classes:j,tabindex:V,attributes:Y,roundValueFn:w,keyStep:y,trackLen:E,innerMin:b,innerMinRatio:D,innerMax:_,innerMaxRatio:T,positionProp:R,sizeProp:I,isReversed:v},methods:{onActivate:He,onMobileClick:Ie,onBlur:Oe,onKeyup:rt,getContent:Rt,getThumbRenderFn:xt,convertRatioToModel:qe,convertModelToRatio:Qe,getDraggingRatio:Nt}}}const bS=()=>({}),na=Be({name:"QSlider",props:{...gS,modelValue:{required:!0,default:null,validator:t=>typeof t=="number"||t===null},labelValue:[String,Number]},emits:vS,setup(t,{emit:e}){const{proxy:{$q:n}}=Ye(),{state:i,methods:s}=pS({updateValue:m,updatePosition:v,getDragging:p,formAttrs:k_(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=g(()=>s.convertModelToRatio(r.value)),c=g(()=>i.active.value===!0?a.value:u.value),d=g(()=>{const x={[i.positionProp.value]:`${100*i.innerMinRatio.value}%`,[i.sizeProp.value]:`${100*(c.value-i.innerMinRatio.value)}%`};return t.selectionImg!==void 0&&(x.backgroundImage=`url(${t.selectionImg}) !important`),x}),f=s.getThumbRenderFn({focusValue:!0,getNodeData:bS,ratio:c,label:g(()=>t.labelValue!==void 0?t.labelValue:r.value),thumbColor:g(()=>t.thumbColor||t.color),labelColor:g(()=>t.labelColor),labelTextColor:g(()=>t.labelTextColor)}),h=g(()=>i.editable.value!==!0?{}:n.platform.is.mobile===!0?{onClick:s.onMobileClick}:{onMousedown:s.onActivate,onFocus:b,onBlur:s.onBlur,onKeydown:_,onKeyup:s.onKeyup});function m(x){r.value!==t.modelValue&&e("update:modelValue",r.value),x===!0&&e("change",r.value)}function p(){return o.value.getBoundingClientRect()}function v(x,w=i.dragging.value){const y=s.getDraggingRatio(x,w);r.value=s.convertRatioToModel(y),a.value=t.snap!==!0||t.step===0?y:s.convertModelToRatio(r.value)}function b(){i.focus.value=!0}function _(x){if(ym.includes(x.keyCode)===!1)return;Vt(x);const w=([34,33].includes(x.keyCode)?10:1)*i.keyStep.value,y=([34,37,40].includes(x.keyCode)?-1:1)*(i.isReversed.value===!0?-1:1)*(t.vertical===!0?-1:1)*w;r.value=Ii(i.roundValueFn.value(r.value+y),i.innerMin.value,i.innerMax.value),m()}return()=>{const x=s.getContent(d,i.tabindex,h,w=>{w.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},x)}}}),yS={class:"double-slider-container"},xS={class:"slider-container"},wS={class:"row justify-between no-wrap"},_S={class:"col"},SS={key:0,class:"col text-center"},kS={key:1,class:"col text-right"},CS=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=g({get:()=>i.modelValue,set:l=>{i.readonly||n("update:modelValue",l)}}),o=g(()=>s.value>=0&&i.limitMode!=="none"),a=g(()=>["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",yS,[q("div",xS,[C(na,{"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]=ln(()=>{},["stop"])),onTouchmove:u[1]||(u[1]=ln(()=>{},["stop"])),onTouchend:u[2]||(u[2]=ln(()=>{},["stop"]))},null,8,["model-value","max","markers"]),i.limitMode=="soc"?(M(),X(na,{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]=ln(()=>{},["stop"])),onTouchmove:u[5]||(u[5]=ln(()=>{},["stop"])),onTouchend:u[6]||(u[6]=ln(()=>{},["stop"]))},null,8,["modelValue","thumb-size","readonly"])):le("",!0)]),q("div",wS,[q("div",_S,[q("div",null,se(i.limitMode=="amount"?"Geladen":"Ladestand"),1),q("div",null,[Ve(se(i.limitMode=="amount"?r(t.currentValue):t.currentValue+"%")+" ",1),t.vehicleSocType==="manual"&&t.limitMode!=="amount"?(M(),X(xe,{key:0,name:"edit",size:"xs",class:"q-ml-xs cursor-pointer",onClick:t.onEditSoc},{default:A(()=>[C(Vn,null,{default:A(()=>u[7]||(u[7]=[Ve("Ladestand eingeben",-1)])),_:1,__:[7]})]),_:1},8,["onClick"])):t.vehicleSocType!==void 0&&t.limitMode!=="amount"?(M(),X(xe,{key:1,name:"refresh",size:"xs",class:"q-ml-xs cursor-pointer",onClick:t.onRefreshSoc},{default:A(()=>[C(Vn,null,{default:A(()=>u[8]||(u[8]=[Ve("Ladestand aktualisieren",-1)])),_:1,__:[8]})]),_:1},8,["onClick"])):le("",!0)])]),i.targetTime?(M(),Q("div",SS,[u[9]||(u[9]=q("div",null,"Zielzeit",-1)),q("div",null,se(i.targetTime),1)])):le("",!0),o.value?(M(),Q("div",kS,[q("div",null,se(i.limitMode=="soc"?"Ladeziel":"Energieziel"),1),q("div",null,se(i.limitMode=="soc"?s.value+"%":s.value/1e3+" kWh"),1)])):le("",!0)])]))}}),Pl=mt(CS,[["__scopeId","data-v-3b9697ab"]]),_a=Be({name:"QToggle",props:{...mm,icon:String,iconColor:String},emits:gm,setup(t){function e(n,i){const s=g(()=>(n.value===!0?t.checkedIcon:i.value===!0?t.indeterminateIcon:t.uncheckedIcon)||t.icon),o=g(()=>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 vm("toggle",e)}}),xm=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=Fe().chargePointManualLock(e.chargePointId);return(s,o)=>e.readonly?(M(),X(xe,{key:0,name:Pe(i)?"lock":"lock_open",size:"sm",color:Pe(i)?"negative":"positive"},null,8,["name","color"])):(M(),X(_a,{key:1,modelValue:Pe(i),"onUpdate:modelValue":o[0]||(o[0]=a=>Xr(i)?i.value=a:null),color:Pe(i)?"primary":"positive","checked-icon":"lock","unchecked-icon":"lock_open",size:"lg",dense:e.dense},{default:A(()=>[C(Vn,null,{default:A(()=>[Ve(se(Pe(i)?"Ladepunkt gesperrt":"Ladepunkt entsperrt"),1)]),_:1})]),_:1},8,["modelValue","color","dense"]))}}),ia=be({__name:"ChargePointStateIcon",props:{chargePointId:{},vehicleId:{}},setup(t){const e=t,n=Fe(),i=g(()=>e.vehicleId!==void 0?n.vehicleConnectionState(e.vehicleId).some(a=>a.plugged):e.chargePointId!==void 0?n.chargePointPlugState(e.chargePointId):!1),s=g(()=>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(),X(xe,{name:i.value?"power":"power_off",size:"sm",color:i.value?s.value?"positive":"warning":"negative"},{default:A(()=>[C(Vn,null,{default:A(()=>[Ve(se(i.value?s.value?"Lädt":"Angesteckt, lädt nicht":"Nicht angesteckt"),1)]),_:1})]),_:1},8,["name","color"]))}}),wm=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=Fe().chargePointConnectedVehiclePriority(e.chargePointId);return(o,a)=>e.readonly?(M(),X(xe,{key:0,name:Pe(s)?n.on:n.off,color:Pe(s)?"warning":"",size:"sm"},null,8,["name","color"])):(M(),X(_a,{key:1,modelValue:Pe(s),"onUpdate:modelValue":a[0]||(a[0]=r=>Xr(s)?s.value=r:null),color:Pe(s)?"primary":"","checked-icon":n.on,"unchecked-icon":n.off,size:"lg",dense:e.dense},{default:A(()=>[C(Vn,null,{default:A(()=>[Ve(se(Pe(s)?"Fahrzeug priorisiert":"Fahrzeug nicht priorisiert"),1)]),_:1})]),_:1},8,["modelValue","color","checked-icon","unchecked-icon","dense"]))}}),MS={key:0,class:"row q-pt-md full-width"},PS=be({__name:"ChargePointModeButtons",props:{chargePointId:{}},setup(t){const e=t,n=g(()=>$d.is.mobile),{chargeModes:i}=wl(),s=Fe(),o=g(()=>s.chargePointConnectedVehicleChargeMode(e.chargePointId)),a=g(()=>i.find(r=>r.value===o.value.value)?.label);return(r,l)=>n.value?(M(),Q("div",MS,[C(Xo,{class:"col","transition-show":"scale","transition-hide":"scale","transition-duration":"500",color:"primary",label:a.value,size:"md","dropdown-icon":"none",cover:"",push:""},{default:A(()=>[C(Bi,null,{default:A(()=>[(M(!0),Q(De,null,Ke(Pe(i),(u,c)=>(M(),Q(De,{key:u.value},[sn((M(),X(Ni,{clickable:"",onClick:d=>o.value.value=u.value,active:o.value.value===u.value,"active-class":"bg-primary text-white"},{default:A(()=>[C(Xn,{class:"text-center text-weight-bold"},{default:A(()=>[C(Wi,null,{default:A(()=>[Ve(se(u.label.toLocaleUpperCase()),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick","active"])),[[wn]]),c[(M(!0),Q(De,null,Ke(Pe(i),u=>(M(),X(ke,{key:u.value,color:o.value.value===u.value?"primary":"grey",label:u.label,size:"sm",onClick:c=>o.value.value=u.value},null,8,["color","label","onClick"]))),128))]),_:1}))}}),_m=mt(PS,[["__scopeId","data-v-c4f1d1ab"]]),id=be({__name:"ChargePointMessage",props:{chargePointId:{},faultMessage:{type:Boolean}},setup(t){const e=t,n=Fe(),i=N(!0),s=()=>{i.value=!i.value},o=g(()=>a.value!==void 0&&a.value!==0),a=g(()=>e.faultMessage?n.chargePointFaultState(e.chargePointId):-1),r=g(()=>e.faultMessage?n.chargePointFaultMessage(e.chargePointId):n.chargePointStateMessage(e.chargePointId)),l=g(()=>{switch(a.value){case 1:return"bg-warning";case 2:return"bg-negative";default:return"bg-primary"}}),u=g(()=>{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:Re(["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:Re({ellipsis:i.value})},se(r.value),3)],2)):le("",!0)}}),TS={key:0,class:"q-mx-sm"},IS=["title"],DS=["title"],OS=be({__name:"ChargePointVehicleSelect",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1}},setup(t){const e=t,n=g(()=>$d.is.mobile),i=Fe(),s=i.chargePointConnectedVehicleInfo(e.chargePointId),o=g(()=>i.vehicleList);return(a,r)=>e.readonly?(M(),Q("div",TS,[C(xe,{name:"directions_car"}),Ve(" "+se(Pe(s)?.name),1)])):n.value?(M(),X(Xo,{key:1,color:"grey","transition-show":"scale","transition-hide":"scale","transition-duration":"500",size:"md","dropdown-icon":"none",cover:"",push:"",class:"no-drop-down-arrow"},{label:A(()=>[q("span",{class:"block ellipsis",title:Pe(s)?.name},[C(xe,{name:"directions_car"}),Ve(" "+se(Pe(s)?.name),1)],8,IS)]),default:A(()=>[C(Bi,null,{default:A(()=>[(M(!0),Q(De,null,Ke(o.value,(l,u)=>(M(),Q(De,{key:l.id},[sn((M(),X(Ni,{clickable:"",onClick:c=>s.value=l,active:Pe(s).id===l.id,"active-class":"bg-primary text-white"},{default:A(()=>[C(Xn,{class:"text-center text-weight-bold"},{default:A(()=>[C(Wi,{class:"ellipsis",title:l.name},{default:A(()=>[Ve(se(l.name),1)]),_:2},1032,["title"])]),_:2},1024)]),_:2},1032,["onClick","active"])),[[wn]]),u[q("span",{class:"ellipsis q-ml-xs",title:Pe(s)?.name},[C(xe,{name:"directions_car"}),Ve(" "+se(Pe(s)?.name),1)],8,DS)]),default:A(()=>[C(Bi,null,{default:A(()=>[(M(!0),Q(De,null,Ke(o.value,l=>sn((M(),X(Ni,{key:l.id,clickable:"",dense:"",onClick:u=>s.value=l},{default:A(()=>[C(Xn,null,{default:A(()=>[C(Wi,{class:"ellipsis",title:l.name},{default:A(()=>[Ve(se(l.name),1)]),_:2},1032,["title"])]),_:2},1024)]),_:2},1032,["onClick"])),[[wn]])),128))]),_:1})]),_:1}))}}),Sm=mt(OS,[["__scopeId","data-v-4f0d8934"]]),VS={class:"text-subtitle2"},ES={class:"row items-center justify-between q-ml-sm"},AS=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=g(()=>s.value!==n.modelValue),r=g({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=g(()=>{const f=n.discreteValues&&r.value!==void 0?n.discreteValues[r.value]:r.value;return f===n.offValueLeft||f===n.offValueRight?"Aus":f}),c=g(()=>{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}),qt(()=>{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=g(()=>a.value?"pending":"");return(f,h)=>(M(),Q("div",null,[q("div",null,[q("div",VS,se(n.title),1)]),q("div",ES,[C(na,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=m=>r.value=m),min:n.discreteValues?0:n.min,max:n.discreteValues?n.discreteValues.length-1:n.max,step:n.step,color:"primary",class:"col","track-size":"0.5em","thumb-size":"1.7em",onTouchstart:h[1]||(h[1]=ln(()=>{},["stop"])),onTouchmove:h[2]||(h[2]=ln(()=>{},["stop"])),onTouchend:h[3]||(h[3]=ln(()=>{},["stop"])),onChange:l},null,8,["modelValue","min","max","step"]),q("div",{class:Re(["q-ml-sm no-wrap",["col-2","text-right",d.value]])},se(u.value)+" "+se(c.value),3)])]))}}),$t=mt(AS,[["__scopeId","data-v-27ae5baf"]]),qS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},LS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},RS=be({__name:"ChargePointInstantSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>{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(m=>m.value!=="soc")),h}),s=g(()=>n.chargePointConnectedVehicleSocType(e.chargePointId))?.value,o=[{value:1,label:"1"},{value:3,label:"Maximum"}],a=g(()=>n.chargePointConnectedVehicleInstantChargeCurrent(e.chargePointId)),r=g(()=>n.dcChargingEnabled),l=g(()=>n.chargePointConnectedVehicleInstantDcChargePower(e.chargePointId)),u=g(()=>n.chargePointConnectedVehicleInstantChargePhases(e.chargePointId)),c=g(()=>n.chargePointConnectedVehicleInstantChargeLimit(e.chargePointId)),d=g(()=>n.chargePointConnectedVehicleInstantChargeLimitSoC(e.chargePointId)),f=g(()=>n.chargePointConnectedVehicleInstantChargeLimitEnergy(e.chargePointId));return(h,m)=>(M(),Q(De,null,[C($t,{title:"Stromstärke",min:6,max:32,unit:"A",modelValue:a.value.value,"onUpdate:modelValue":m[0]||(m[0]=p=>a.value.value=p),class:"q-mt-sm"},null,8,["modelValue"]),r.value?(M(),X($t,{key:0,title:"DC-Sollleistung",min:4,max:300,unit:"kW",modelValue:l.value.value,"onUpdate:modelValue":m[1]||(m[1]=p=>l.value.value=p),class:"q-mt-sm"},null,8,["modelValue"])):le("",!0),m[4]||(m[4]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen",-1)),q("div",qS,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(De,null,Ke(o,p=>C(ke,{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})]),m[5]||(m[5]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",LS,[C(xn,{class:"col"},{default:A(()=>[(M(!0),Q(De,null,Ke(i.value,p=>(M(),X(ke,{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(),X($t,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:d.value.value,"onUpdate:modelValue":m[2]||(m[2]=p=>d.value.value=p),class:"q-mt-md"},null,8,["modelValue"])):le("",!0),c.value.value==="amount"?(M(),X($t,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:f.value.value,"onUpdate:modelValue":m[3]||(m[3]=p=>f.value.value=p),class:"q-mt-md"},null,8,["modelValue"])):le("",!0)],64))}}),$S=mt(RS,[["__scopeId","data-v-f45a6b19"]]),FS=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(),X(_a,{"model-value":n.value,"onUpdate:modelValue":s,color:n.value?"positive":"negative",size:n.size},null,8,["model-value","color","size"]))}}),zS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},BS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},NS={key:3},WS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},HS={class:"row items-center justify-between q-ma-none q-pa-none no-wrap q-mt-md"},jS=be({__name:"ChargePointPvSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>{let x=[{value:"none",label:"keine",color:"primary"},{value:"soc",label:"EV-SoC",color:"primary"},{value:"amount",label:"Energiemenge",color:"primary"}];return s.value===void 0&&(x=x.filter(w=>w.value!=="soc")),x}),s=g(()=>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=g(()=>n.chargePointConnectedVehiclePvChargeMinCurrent(e.chargePointId)),l=g(()=>n.dcChargingEnabled),u=g(()=>n.chargePointConnectedVehiclePvDcChargePower(e.chargePointId)),c=g(()=>n.chargePointConnectedVehiclePvDcMinSocPower(e.chargePointId)),d=g(()=>n.chargePointConnectedVehiclePvChargePhases(e.chargePointId)),f=g(()=>n.chargePointConnectedVehiclePvChargePhasesMinSoc(e.chargePointId)),h=g(()=>n.chargePointConnectedVehiclePvChargeMinSoc(e.chargePointId)),m=g(()=>n.chargePointConnectedVehiclePvChargeMinSocCurrent(e.chargePointId)),p=g(()=>n.chargePointConnectedVehiclePvChargeLimit(e.chargePointId)),v=g(()=>n.chargePointConnectedVehiclePvChargeLimitSoC(e.chargePointId)),b=g(()=>n.chargePointConnectedVehiclePvChargeLimitEnergy(e.chargePointId)),_=g(()=>n.chargePointConnectedVehiclePvChargeFeedInLimit(e.chargePointId));return(x,w)=>(M(),Q(De,null,[C($t,{title:"Minimaler Dauerstrom",min:0,max:16,step:1,unit:"A","off-value-left":0,"discrete-values":[0,6,7,8,9,10,11,12,13,14,15,16],modelValue:r.value.value,"onUpdate:modelValue":w[0]||(w[0]=y=>r.value.value=y),class:"q-mt-md"},null,8,["modelValue"]),l.value?(M(),X($t,{key:0,title:"Minimaler DC-Dauerleistung",min:0,max:300,step:1,unit:"kW",modelValue:u.value.value,"onUpdate:modelValue":w[1]||(w[1]=y=>u.value.value=y),class:"q-mt-md"},null,8,["modelValue"])):le("",!0),w[10]||(w[10]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen",-1)),q("div",zS,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(De,null,Ke(o,y=>C(ke,{key:y.value,color:d.value.value===y.value?"primary":"grey",label:y.label,size:"sm",class:"col",onClick:V=>d.value.value=y.value},null,8,["color","label","onClick"])),64))]),_:1})]),w[11]||(w[11]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",BS,[C(xn,{class:"col"},{default:A(()=>[(M(!0),Q(De,null,Ke(i.value,y=>(M(),X(ke,{key:y.value,color:p.value.value===y.value?"primary":"grey",label:y.label,size:"sm",class:"col",onClick:V=>p.value.value=y.value},null,8,["color","label","onClick"]))),128))]),_:1})]),p.value.value==="soc"?(M(),X($t,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:v.value.value,"onUpdate:modelValue":w[2]||(w[2]=y=>v.value.value=y),class:"q-mt-md"},null,8,["modelValue"])):le("",!0),p.value.value==="amount"?(M(),X($t,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:b.value.value,"onUpdate:modelValue":w[3]||(w[3]=y=>b.value.value=y),class:"q-mt-md"},null,8,["modelValue"])):le("",!0),Pe(s)!==void 0?(M(),Q("div",NS,[C($t,{title:"Mindest-SoC für das Fahrzeug",min:0,max:100,step:5,unit:"%","off-value-left":0,modelValue:h.value.value,"onUpdate:modelValue":w[4]||(w[4]=y=>h.value.value=y),class:"q-mt-md"},null,8,["modelValue"]),C($t,{title:"Mindest-SoC-Strom",min:6,max:32,unit:"A",modelValue:m.value.value,"onUpdate:modelValue":w[5]||(w[5]=y=>m.value.value=y),class:"q-mt-md"},null,8,["modelValue"]),l.value?(M(),X($t,{key:0,title:"DC Mindest-SoC-Leistung",min:0,max:300,step:1,unit:"kW",modelValue:c.value.value,"onUpdate:modelValue":w[6]||(w[6]=y=>c.value.value=y),class:"q-mt-md"},null,8,["modelValue"])):le("",!0),w[8]||(w[8]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen Mindest-SoC",-1)),q("div",WS,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(De,null,Ke(a,y=>C(ke,{key:y.value,color:f.value.value===y.value?"primary":"grey",label:y.label,size:"sm",class:"col",onClick:V=>f.value.value=y.value},null,8,["color","label","onClick"])),64))]),_:1})])])):le("",!0),q("div",HS,[w[9]||(w[9]=q("div",{class:"text-subtitle2 q-mr-sm"},"Einspeisegrenze beachten",-1)),q("div",null,[C(FS,{dense:"",modelValue:_.value.value,"onUpdate:modelValue":w[7]||(w[7]=y=>_.value.value=y)},null,8,["modelValue"])])])],64))}});/*! -* chartjs-plugin-annotation v3.1.0 -* https://www.chartjs.org/chartjs-plugin-annotation/index - * (c) 2024 chartjs-plugin-annotation Contributors - * Released under the MIT License - */const sd={modes:{point(t,e){return qo(t,e,{intersect:!0})},nearest(t,e,n){return ZS(t,e,n)},x(t,e,n){return qo(t,e,{intersect:n.intersect,axis:"x"})},y(t,e,n){return qo(t,e,{intersect:n.intersect,axis:"y"})}}};function Tl(t,e,n){return(sd.modes[n.mode]||sd.modes.nearest)(t,e,n)}function US(t,e,n){return n!=="x"&&n!=="y"?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,n,!0)}function YS(t,e,n){return n==="x"?{x:t.x,y:e.y}:n==="y"?{x:e.x,y:t.y}:e}function qo(t,e,n){return t.filter(i=>n.intersect?i.inRange(e.x,e.y):US(i,e,n.axis))}function ZS(t,e,n){let i=Number.POSITIVE_INFINITY;return qo(t,e,n).reduce((s,o)=>{const a=o.getCenterPoint(),r=YS(e,a,n.axis),l=ji(e,r);return ls._index-o._index).slice(0,1)}function bi(t,e,n){const i=Math.cos(n),s=Math.sin(n),o=e.x,a=e.y;return{x:o+i*(t.x-o)-s*(t.y-a),y:a+s*(t.x-o)+i*(t.y-a)}}const XS=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,ri=.001,Sa=(t,e,n)=>Math.min(n,Math.max(e,t)),km=(t,e)=>t.value>=t.start-e&&t.value<=t.end+e;function KS(t,e,n){for(const i of Object.keys(t))t[i]=Sa(t[i],e,n);return t}function QS(t,e,n,i){return!t||!e||n<=0?!1:Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(n+i,2)}function Cm(t,{x:e,y:n,x2:i,y2:s},o,{borderWidth:a,hitTolerance:r}){const l=(a+r)/2,u=t.x>=e-l-ri&&t.x<=i+l+ri,c=t.y>=n-l-ri&&t.y<=s+l+ri;return o==="x"?u:(o==="y"||u)&&c}function Mm(t,{rect:e,center:n},i,{rotation:s,borderWidth:o,hitTolerance:a}){const r=bi(t,n,kt(-s));return Cm(r,e,i,{borderWidth:o,hitTolerance:a})}function yi(t,e){const{centerX:n,centerY:i}=t.getProps(["centerX","centerY"],e);return{x:n,y:i}}function GS(t,e,n,i=!0){const s=n.split(".");let o=0;for(const a of e.split(".")){const r=s[o++];if(parseInt(a,10)typeof t=="string"&&t.endsWith("%"),Tm=t=>parseFloat(t)/100,Im=t=>Sa(Tm(t),0,1),ps=(t,e)=>({x:t,y:e,x2:t,y2:e,width:0,height:0}),JS={box:t=>ps(t.centerX,t.centerY),doughnutLabel:t=>ps(t.centerX,t.centerY),ellipse:t=>({centerX:t.centerX,centerY:t.centerX,radius:0,width:0,height:0}),label:t=>ps(t.centerX,t.centerY),line:t=>ps(t.x,t.y),point:t=>({centerX:t.centerX,centerY:t.centerY,radius:0,width:0,height:0}),polygon:t=>ps(t.centerX,t.centerY)};function Il(t,e){return e==="start"?0:e==="end"?t:Pm(e)?Im(e)*t:t/2}function Kn(t,e,n=!0){return typeof e=="number"?e:Pm(e)?(n?Im(e):Tm(e))*t:t}function ek(t,e){const{x:n,width:i}=t,s=e.textAlign;return s==="center"?n+i/2:s==="end"||s==="right"?n+i:n}function Dm(t,e,{borderWidth:n,position:i,xAdjust:s,yAdjust:o},a){const r=we(a),l=e.width+(r?a.width:0)+n,u=e.height+(r?a.height:0)+n,c=Dl(i),d=od(t.x,l,s,c.x),f=od(t.y,u,o,c.y);return{x:d,y:f,x2:d+l,y2:f+u,width:l,height:u,centerX:d+l/2,centerY:f+u/2}}function Dl(t,e="center"){return we(t)?{x:Ce(t.x,e),y:Ce(t.y,e)}:(t=Ce(t,e),{x:t,y:t})}const Om=(t,e)=>t&&t.autoFit&&e<1;function Vm(t,e){const n=t.font,i=nt(n)?n:[n];return Om(t,e)?i.map(function(s){const o=It(s);return o.size=Math.floor(s.size*e),o.lineHeight=s.lineHeight,It(o)}):i.map(s=>It(s))}function Em(t){return t&&(Qt(t.xValue)||Qt(t.yValue))}function od(t,e,n=0,i){return t-Il(e,i)+n}function os(t,e,n){const i=n.init;if(i){if(i===!0)return qm(e,n)}else return;return tk(t,e,n)}function Am(t,e,n){let i=!1;return e.forEach(s=>{Ut(t[s])?(i=!0,n[s]=t[s]):Qt(n[s])&&delete n[s]}),i}function qm(t,e){const n=e.type||"line";return JS[n](t)}function tk(t,e,n){const i=Ue(n.init,[{chart:t,properties:e,options:n}]);if(i===!0)return qm(e,n);if(we(i))return i}const hr=new Map,nk=t=>isNaN(t)||t<=0,ik=t=>t.reduce(function(e,n){return e+=n.string,e},"");function ka(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object HTMLImageElement]"||e==="[object HTMLCanvasElement]"}}function Ca(t,{x:e,y:n},i){i&&(t.translate(e,n),t.rotate(kt(i)),t.translate(-e,-n))}function An(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle||"butt",t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle||"miter",t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function as(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function Ma(t,e){const n=e.content;if(ka(n))return{width:Kn(n.width,e.width),height:Kn(n.height,e.height)};const i=Vm(e),s=e.textStrokeWidth,o=nt(n)?n:[n],a=o.join()+ik(i)+s+(t._measureText?"-spriting":"");return hr.has(a)||hr.set(a,rk(t,o,i,s)),hr.get(a)}function Lm(t,e,n){const{x:i,y:s,width:o,height:a}=e;t.save(),as(t,n);const r=An(t,n);t.fillStyle=n.backgroundColor,t.beginPath(),Ho(t,{x:i,y:s,w:o,h:a,radius:KS(Ei(n.borderRadius),0,Math.min(o,a)/2)}),t.closePath(),t.fill(),r&&(t.shadowColor=n.borderShadowColor,t.stroke()),t.restore()}function Rm(t,e,n,i){const s=n.content;if(ka(s)){t.save(),t.globalAlpha=ck(n.opacity,s.style.opacity),t.drawImage(s,e.x,e.y,e.width,e.height),t.restore();return}const o=nt(s)?s:[s],a=Vm(n,i),r=n.color,l=nt(r)?r:[r],u=ek(e,n),c=e.y+n.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=n.textAlign,sk(t,n)&&lk(t,{x:u,y:c},o,a),uk(t,{x:u,y:c},o,{fonts:a,colors:l}),t.restore()}function sk(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}function ok(t,e,n,i){const{radius:s,options:o}=e,a=o.pointStyle,r=o.rotation;let l=(r||0)*tl;if(ka(a)){t.save(),t.translate(n,i),t.rotate(l),t.drawImage(a,-a.width/2,-a.height/2,a.width,a.height),t.restore();return}nk(s)||ak(t,{x:n,y:i,radius:s,rotation:r,style:a,rad:l})}function ak(t,{x:e,y:n,radius:i,rotation:s,style:o,rad:a}){let r,l,u,c;switch(t.beginPath(),o){default:t.arc(e,n,i,0,St),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(a)*i,n-Math.cos(a)*i),a+=Bo,t.lineTo(e+Math.sin(a)*i,n-Math.cos(a)*i),a+=Bo,t.lineTo(e+Math.sin(a)*i,n-Math.cos(a)*i),t.closePath();break;case"rectRounded":c=i*.516,u=i-c,r=Math.cos(a+en)*u,l=Math.sin(a+en)*u,t.arc(e-r,n-l,c,a-We,a-Tt),t.arc(e+l,n-r,c,a-Tt,a),t.arc(e+r,n+l,c,a,a+Tt),t.arc(e-l,n+r,c,a+Tt,a+We),t.closePath();break;case"rect":if(!s){u=Math.SQRT1_2*i,t.rect(e-u,n-u,2*u,2*u);break}a+=en;case"rectRot":r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+l,n-r),t.lineTo(e+r,n+l),t.lineTo(e-l,n+r),t.closePath();break;case"crossRot":a+=en;case"cross":r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+r,n+l),t.moveTo(e+l,n-r),t.lineTo(e-l,n+r);break;case"star":r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+r,n+l),t.moveTo(e+l,n-r),t.lineTo(e-l,n+r),a+=en,r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+r,n+l),t.moveTo(e+l,n-r),t.lineTo(e-l,n+r);break;case"line":r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+r,n+l);break;case"dash":t.moveTo(e,n),t.lineTo(e+Math.cos(a)*i,n+Math.sin(a)*i);break}t.fill()}function rk(t,e,n,i){t.save();const s=e.length;let o=0,a=i;for(let r=0;r0||s.borderWidth===0)&&(t.moveTo(l.x,l.y),t.lineTo(u.x,u.y)),t.moveTo(c.x,c.y),t.lineTo(d.x,d.y);const f=bi({x:n,y:i},e.getCenterPoint(),kt(-e.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}function fk(t,e){const{x:n,y:i,x2:s,y2:o}=t,a=hk(t,e);let r,l;return e==="left"||e==="right"?(r={x:n+a,y:i},l={x:r.x,y:o}):(r={x:n,y:i+a},l={x:s,y:r.y}),{separatorStart:r,separatorEnd:l}}function hk(t,e){const{width:n,height:i,options:s}=t,o=s.callout.margin+s.borderWidth/2;return e==="right"?n+o:e==="bottom"?i+o:-o}function mk(t,e,n){const{y:i,width:s,height:o,options:a}=t,r=a.callout.start,l=gk(e,a.callout);let u,c;return e==="left"||e==="right"?(u={x:n.x,y:i+Kn(o,r)},c={x:u.x+l,y:u.y}):(u={x:n.x+Kn(s,r),y:n.y},c={x:u.x,y:u.y+l}),{sideStart:u,sideEnd:c}}function gk(t,e){const n=e.side;return t==="left"||t==="top"?-n:n}function vk(t,e){const n=e.position;return $m.includes(n)?n:pk(t,e)}function pk(t,e){const{x:n,y:i,x2:s,y2:o,width:a,height:r,pointX:l,pointY:u,centerX:c,centerY:d,rotation:f}=t,h={x:c,y:d},m=e.start,p=Kn(a,m),v=Kn(r,m),b=[n,n+p,n+p,s],_=[i+v,o,i,o],x=[];for(let w=0;w<4;w++){const y=bi({x:b[w],y:_[w]},h,kt(f));x.push({position:$m[w],distance:ji(y,{x:l,y:u})})}return x.sort((w,y)=>w.distance-y.distance)[0].position}function bk(t,e,n){const{pointX:i,pointY:s}=t,o=e.margin;let a=i,r=s;return n==="left"?a+=o:n==="right"?a-=o:n==="top"?r+=o:n==="bottom"&&(r-=o),t.inRange(a,r)}const ad={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function Qi(t,e,n){return e=typeof e=="number"?e:t.parse(e),Ct(e)?t.getPixelForValue(e):n}function hi(t,e,n){const i=e[n];if(i||n==="scaleID")return i;const s=n.charAt(0),o=Object.values(t).filter(a=>a.axis&&a.axis===s);return o.length?o[0].id:s}function Fm(t,e){if(t){const n=t.options.reverse,i=Qi(t,e.min,n?e.end:e.start),s=Qi(t,e.max,n?e.start:e.end);return{start:i,end:s}}}function zm(t,e){const{chartArea:n,scales:i}=t,s=i[hi(i,e,"xScaleID")],o=i[hi(i,e,"yScaleID")];let a=n.width/2,r=n.height/2;return s&&(a=Qi(s,e.xValue,s.left+s.width/2)),o&&(r=Qi(o,e.yValue,o.top+o.height/2)),{x:a,y:r}}function Ol(t,e){const n=t.scales,i=n[hi(n,e,"xScaleID")],s=n[hi(n,e,"yScaleID")];if(!i&&!s)return{};let{left:o,right:a}=i||t.chartArea,{top:r,bottom:l}=s||t.chartArea;const u=rd(i,{min:e.xMin,max:e.xMax,start:o,end:a});o=u.start,a=u.end;const c=rd(s,{min:e.yMin,max:e.yMax,start:l,end:r});return r=c.start,l=c.end,{x:o,y:r,x2:a,y2:l,width:a-o,height:l-r,centerX:o+(a-o)/2,centerY:r+(l-r)/2}}function Bm(t,e){if(!Em(e)){const n=Ol(t,e);let i=e.radius;(!i||isNaN(i))&&(i=Math.min(n.width,n.height)/2,e.radius=i);const s=i*2,o=n.centerX+e.xAdjust,a=n.centerY+e.yAdjust;return{x:o-i,y:a-i,x2:o+i,y2:a+i,centerX:o,centerY:a,width:s,height:s,radius:i}}return xk(t,e)}function yk(t,e){const{scales:n,chartArea:i}=t,s=n[e.scaleID],o={x:i.left,y:i.top,x2:i.right,y2:i.bottom};return s?wk(s,o,e):_k(n,o,e),o}function Nm(t,e){const n=Ol(t,e);return n.initProperties=os(t,n,e),n.elements=[{type:"label",optionScope:"label",properties:Ck(t,n,e),initProperties:n.initProperties}],n}function xk(t,e){const n=zm(t,e),i=e.radius*2;return{x:n.x-e.radius+e.xAdjust,y:n.y-e.radius+e.yAdjust,x2:n.x+e.radius+e.xAdjust,y2:n.y+e.radius+e.yAdjust,centerX:n.x+e.xAdjust,centerY:n.y+e.yAdjust,radius:e.radius,width:i,height:i}}function rd(t,e){const n=Fm(t,e)||e;return{start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)}}function wk(t,e,n){const i=Qi(t,n.value,NaN),s=Qi(t,n.endValue,i);t.isHorizontal()?(e.x=i,e.x2=s):(e.y=i,e.y2=s)}function _k(t,e,n){for(const i of Object.keys(ad)){const s=t[hi(t,n,i)];if(s){const{min:o,max:a,start:r,end:l,startProp:u,endProp:c}=ad[i],d=Fm(s,{min:n[o],max:n[a],start:s[r],end:s[l]});e[u]=d.start,e[c]=d.end}}}function Sk({properties:t,options:e},n,i,s){const{x:o,x2:a,width:r}=t;return Wm({start:o,end:a,borderWidth:e.borderWidth},{position:i.x,padding:{start:s.left,end:s.right},adjust:e.label.xAdjust,size:n.width})}function kk({properties:t,options:e},n,i,s){const{y:o,y2:a,height:r}=t;return Wm({start:o,end:a,borderWidth:e.borderWidth},{position:i.y,padding:{start:s.top,end:s.bottom},adjust:e.label.yAdjust,size:n.height})}function Wm(t,e){const{start:n,end:i,borderWidth:s}=t,{position:o,padding:{start:a,end:r},adjust:l}=e,u=i-s-n-a-r-e.size;return n+s/2+l+Il(u,o)}function Ck(t,e,n){const i=n.label;i.backgroundColor="transparent",i.callout.display=!1;const s=Dl(i.position),o=zt(i.padding),a=Ma(t.ctx,i),r=Sk({properties:e,options:n},a,s,o),l=kk({properties:e,options:n},a,s,o),u=a.width+o.width,c=a.height+o.height;return{x:r,y:l,x2:r+u,y2:l+c,width:u,height:c,centerX:r+u/2,centerY:l+c/2,rotation:i.rotation}}const $r=["enter","leave"],Vl=$r.concat("click");function Mk(t,e,n){e.listened=Am(n,Vl,e.listeners),e.moveListened=!1,$r.forEach(i=>{Ut(n[i])&&(e.moveListened=!0)}),(!e.listened||!e.moveListened)&&e.annotations.forEach(i=>{!e.listened&&Ut(i.click)&&(e.listened=!0),e.moveListened||$r.forEach(s=>{Ut(i[s])&&(e.listened=!0,e.moveListened=!0)})})}function Pk(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return Tk(t,e,n);case"click":return Ik(t,e,n)}}function Tk(t,e,n){if(!t.moveListened)return;let i;e.type==="mousemove"?i=Tl(t.visibleElements,e,n.interaction):i=[];const s=t.hovered;t.hovered=i;const o={state:t,event:e};let a=ld(o,"leave",s,i);return ld(o,"enter",i,s)||a}function ld({state:t,event:e},n,i,s){let o;for(const a of i)s.indexOf(a)<0&&(o=Hm(a.options[n]||t.listeners[n],a,e)||o);return o}function Ik(t,e,n){const i=t.listeners,s=Tl(t.visibleElements,e,n.interaction);let o;for(const a of s)o=Hm(a.options.click||i.click,a,e)||o;return o}function Hm(t,e,n){return Ue(t,[e.$context,n])===!0}const sa=["afterDraw","beforeDraw"];function Dk(t,e,n){const i=e.visibleElements;e.hooked=Am(n,sa,e.hooks),e.hooked||i.forEach(s=>{e.hooked||sa.forEach(o=>{Ut(s.options[o])&&(e.hooked=!0)})})}function ud(t,e,n){if(t.hooked){const i=e.options[n]||t.hooks[n];return Ue(i,[e.$context])}}function Ok(t,e,n){const i=Lk(t.scales,e,n);let s=cd(e,i,"min","suggestedMin");s=cd(e,i,"max","suggestedMax")||s,s&&Ut(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function Vk(t,e){for(const n of t)Ak(n,e)}function cd(t,e,n,i){if(Ct(e[n])&&!Ek(t.options,n,i)){const s=t[n]!==e[n];return t[n]=e[n],s}}function Ek(t,e,n){return Qt(t[e])||Qt(t[n])}function Ak(t,e){for(const n of["scaleID","xScaleID","yScaleID"]){const i=hi(e,t,n);i&&!e[i]&&qk(t,n)&&console.warn(`No scale found with id '${i}' for annotation '${t.id}'`)}}function qk(t,e){if(e==="scaleID")return!0;const n=e.charAt(0);for(const i of["Min","Max","Value"])if(Qt(t[n+i]))return!0;return!1}function Lk(t,e,n){const i=e.axis,s=e.id,o=i+"ScaleID",a={min:Ce(e.min,Number.NEGATIVE_INFINITY),max:Ce(e.max,Number.POSITIVE_INFINITY)};for(const r of n)r.scaleID===s?dd(r,e,["value","endValue"],a):hi(t,r,o)===s&&dd(r,e,[i+"Min",i+"Max",i+"Value"],a);return a}function dd(t,e,n,i){for(const s of n){const o=t[s];if(Qt(o)){const a=e.parse(o);i.min=Math.min(i.min,a),i.max=Math.max(i.max,a)}}}class rs extends Bt{inRange(e,n,i,s){const{x:o,y:a}=bi({x:e,y:n},this.getCenterPoint(s),kt(-this.options.rotation));return Cm({x:o,y:a},this.getProps(["x","y","x2","y2"],s),i,this.options)}getCenterPoint(e){return yi(this,e)}draw(e){e.save(),Ca(e,this.getCenterPoint(),this.options.rotation),Lm(e,this,this.options),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return Nm(e,n)}}rs.id="boxAnnotation";rs.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,hitTolerance:0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};rs.defaultRoutes={borderColor:"color",backgroundColor:"color"};rs.descriptors={label:{_fallback:!0}};class Pa extends Bt{inRange(e,n,i,s){return Mm({x:e,y:n},{rect:this.getProps(["x","y","x2","y2"],s),center:this.getCenterPoint(s)},i,{rotation:this.rotation,borderWidth:0,hitTolerance:this.options.hitTolerance})}getCenterPoint(e){return yi(this,e)}draw(e){const n=this.options;!n.display||!n.content||(Nk(e,this),e.save(),Ca(e,this.getCenterPoint(),this.rotation),Rm(e,this,n,this._fitRatio),e.restore())}resolveElementProperties(e,n){const i=Rk(e,n);if(!i)return{};const{controllerMeta:s,point:o,radius:a}=Fk(e,n,i);let r=Ma(e.ctx,n);const l=zk(r,a);Om(n,l)&&(r={width:r.width*l,height:r.height*l});const{position:u,xAdjust:c,yAdjust:d}=n,f=Dm(o,r,{borderWidth:0,position:u,xAdjust:c,yAdjust:d});return{initProperties:os(e,f,n),...f,...s,rotation:n.rotation,_fitRatio:l}}}Pa.id="doughnutLabelAnnotation";Pa.defaults={autoFit:!0,autoHide:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderColor:"transparent",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:0,color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,spacing:1,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0};Pa.defaultRoutes={};function Rk(t,e){return t.getSortedVisibleDatasetMetas().reduce(function(n,i){const s=i.controller;return s instanceof xs&&$k(t,e,i.data)&&(!n||s.innerRadius=90?i:n},void 0)}function $k(t,e,n){if(!e.autoHide)return!0;for(let i=0;id,b=v?s+m:a-m,_=Bk(b,c,d,p);return{controllerMeta:{_centerX:c,_centerY:d,_radius:p,_counterclockwise:v,..._},point:h,radius:Math.min(r,Math.min(f.right-f.left,f.bottom-f.top)/2)}}function zk({width:t,height:e},n){const i=Math.sqrt(Math.pow(t,2)+Math.pow(e,2));return n*2/i}function Bk(t,e,n,i){const s=Math.pow(n-t,2),o=Math.pow(i,2),a=e*-2,r=Math.pow(e,2)+s-o,l=Math.pow(a,2)-4*r;if(l<=0)return{_startAngle:0,_endAngle:St};const u=(-a-Math.sqrt(l))/2,c=(-a+Math.sqrt(l))/2;return{_startAngle:vr({x:e,y:n},{x:u,y:t}).angle,_endAngle:vr({x:e,y:n},{x:c,y:t}).angle}}function Nk(t,e){const{_centerX:n,_centerY:i,_radius:s,_startAngle:o,_endAngle:a,_counterclockwise:r,options:l}=e;t.save();const u=An(t,l);t.fillStyle=l.backgroundColor,t.beginPath(),t.arc(n,i,s,o,a,r),t.closePath(),t.fill(),u&&t.stroke(),t.restore()}class Js extends Bt{inRange(e,n,i,s){return Mm({x:e,y:n},{rect:this.getProps(["x","y","x2","y2"],s),center:this.getCenterPoint(s)},i,{rotation:this.rotation,borderWidth:this.options.borderWidth,hitTolerance:this.options.hitTolerance})}getCenterPoint(e){return yi(this,e)}draw(e){const n=this.options,i=!Qt(this._visible)||this._visible;!n.display||!n.content||!i||(e.save(),Ca(e,this.getCenterPoint(),this.rotation),dk(e,this),Lm(e,this,n),Rm(e,Wk(this),n),e.restore())}resolveElementProperties(e,n){let i;if(Em(n))i=zm(e,n);else{const{centerX:r,centerY:l}=Ol(e,n);i={x:r,y:l}}const s=zt(n.padding),o=Ma(e.ctx,n),a=Dm(i,o,n,s);return{initProperties:os(e,a,n),pointX:i.x,pointY:i.y,...a,rotation:n.rotation}}}Js.id="labelAnnotation";Js.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};Js.defaultRoutes={borderColor:"color"};function Wk({x:t,y:e,width:n,height:i,options:s}){const o=s.borderWidth/2,a=zt(s.padding);return{x:t+a.left+o,y:e+a.top+o,width:n-a.left-a.right-s.borderWidth,height:i-a.top-a.bottom-s.borderWidth}}const El=(t,e,n)=>({x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}),Fr=(t,e,n)=>El(e,n,Math.abs((t-e.y)/(n.y-e.y))).x,fd=(t,e,n)=>El(e,n,Math.abs((t-e.x)/(n.x-e.x))).y,Ms=t=>t*t,Hk=(t,e,{x:n,y:i,x2:s,y2:o},a)=>a==="y"?{start:Math.min(i,o),end:Math.max(i,o),value:e}:{start:Math.min(n,s),end:Math.max(n,s),value:t},hd=(t,e,n,i)=>(1-i)*(1-i)*t+2*(1-i)*i*e+i*i*n,zr=(t,e,n,i)=>({x:hd(t.x,e.x,n.x,i),y:hd(t.y,e.y,n.y,i)}),md=(t,e,n,i)=>2*(1-i)*(e-t)+2*i*(n-e),gd=(t,e,n,i)=>-Math.atan2(md(t.x,e.x,n.x,i),md(t.y,e.y,n.y,i))+.5*We;class eo extends Bt{inRange(e,n,i,s){const o=(this.options.borderWidth+this.options.hitTolerance)/2;if(i!=="x"&&i!=="y"){const a={mouseX:e,mouseY:n},{path:r,ctx:l}=this;if(r){An(l,this.options),l.lineWidth+=this.options.hitTolerance;const{chart:c}=this.$context,d=e*c.currentDevicePixelRatio,f=n*c.currentDevicePixelRatio,h=l.isPointInStroke(r,d,f)||Br(this,a,s);return l.restore(),h}const u=Ms(o);return Zk(this,a,u,s)||Br(this,a,s)}return jk(this,{mouseX:e,mouseY:n},i,{hitSize:o,useFinalPosition:s})}getCenterPoint(e){return yi(this,e)}draw(e){const{x:n,y:i,x2:s,y2:o,cp:a,options:r}=this;if(e.save(),!An(e,r))return e.restore();as(e,r);const l=Math.sqrt(Math.pow(s-n,2)+Math.pow(o-i,2));if(r.curve&&a)return n1(e,this,a,l),e.restore();const{startOpts:u,endOpts:c,startAdjust:d,endAdjust:f}=jm(this),h=Math.atan2(o-i,s-n);e.translate(n,i),e.rotate(h),e.beginPath(),e.moveTo(0+d,0),e.lineTo(l-f,0),e.shadowColor=r.borderShadowColor,e.stroke(),Nr(e,0,d,u),Nr(e,l,-f,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){const i=yk(e,n),{x:s,y:o,x2:a,y2:r}=i,l=Uk(i,e.chartArea),u=l?Yk({x:s,y:o},{x:a,y:r},e.chartArea):{x:s,y:o,x2:a,y2:r,width:Math.abs(a-s),height:Math.abs(r-o)};if(u.centerX=(a+s)/2,u.centerY=(r+o)/2,u.initProperties=os(e,u,n),n.curve){const d={x:u.x,y:u.y},f={x:u.x2,y:u.y2};u.cp=t1(u,n,ji(d,f))}const c=Xk(e,u,n.label);return c._visible=l,u.elements=[{type:"label",optionScope:"label",properties:c,initProperties:u.initProperties}],u}}eo.id="lineAnnotation";const vd={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};eo.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},vd),fill:!1,length:12,start:Object.assign({},vd),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,hitTolerance:0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},Js.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};eo.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};eo.defaultRoutes={borderColor:"color"};function jk(t,{mouseX:e,mouseY:n},i,{hitSize:s,useFinalPosition:o}){const a=Hk(e,n,t.getProps(["x","y","x2","y2"],o),i);return km(a,s)||Br(t,{mouseX:e,mouseY:n},o,i)}function Uk({x:t,y:e,x2:n,y2:i},{top:s,right:o,bottom:a,left:r}){return!(to&&n>o||ea&&i>a)}function pd({x:t,y:e},n,{top:i,right:s,bottom:o,left:a}){return ts&&(e=fd(s,{x:t,y:e},n),t=s),eo&&(t=Fr(o,{x:t,y:e},n),e=o),{x:t,y:e}}function Yk(t,e,n){const{x:i,y:s}=pd(t,e,n),{x:o,y:a}=pd(e,t,n);return{x:i,y:s,x2:o,y2:a,width:Math.abs(o-i),height:Math.abs(a-s)}}function Zk(t,{mouseX:e,mouseY:n},i=ri,s){const{x:o,y:a,x2:r,y2:l}=t.getProps(["x","y","x2","y2"],s),u=r-o,c=l-a,d=Ms(u)+Ms(c),f=d===0?-1:((e-o)*u+(n-a)*c)/d;let h,m;return f<0?(h=o,m=a):f>1?(h=r,m=l):(h=o+f*u,m=a+f*c),Ms(e-h)+Ms(n-m)<=i}function Br(t,{mouseX:e,mouseY:n},i,s){const o=t.label;return o.options.display&&o.inRange(e,n,s,i)}function Xk(t,e,n){const i=n.borderWidth,s=zt(n.padding),o=Ma(t.ctx,n),a=o.width+s.width+i,r=o.height+s.height+i;return Qk(e,n,{width:a,height:r,padding:s},t.chartArea)}function Kk(t){const{x:e,y:n,x2:i,y2:s}=t,o=Math.atan2(s-n,i-e);return o>We/2?o-We:o0&&(s.w/2+o.left-i.x)/a,u=r>0&&(s.h/2+o.top-i.y)/r;return Sa(Math.max(l,u),0,.25)}function e1(t,e){const{x:n,x2:i,y:s,y2:o}=t,a=Math.min(s,o)-e.top,r=Math.min(n,i)-e.left,l=e.bottom-Math.max(s,o),u=e.right-Math.max(n,i);return{x:Math.min(r,u),y:Math.min(a,l),dx:r<=u?1:-1,dy:a<=l?1:-1}}function yd(t,e){const{size:n,min:i,max:s,padding:o}=e,a=n/2;return n>s-i?(s+i)/2:(i>=t-o-a&&(t=i+o+a),s<=t+o+a&&(t=s-o-a),t)}function jm(t){const e=t.options,n=e.arrowHeads&&e.arrowHeads.start,i=e.arrowHeads&&e.arrowHeads.end;return{startOpts:n,endOpts:i,startAdjust:xd(t,n),endAdjust:xd(t,i)}}function xd(t,e){if(!e||!e.display)return 0;const{length:n,width:i}=e,s=t.options.borderWidth/2,o={x:n,y:i+s};return Math.abs(Fr(0,o,{x:0,y:s}))}function Nr(t,e,n,i){if(!i||!i.display)return;const{length:s,width:o,fill:a,backgroundColor:r,borderColor:l}=i,u=Math.abs(e-s)+n;t.beginPath(),as(t,i),An(t,i),t.moveTo(u,-o),t.lineTo(e+n,0),t.lineTo(u,o),a===!0?(t.fillStyle=r||l,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=i.borderShadowColor,t.stroke()}function t1(t,e,n){const{x:i,y:s,x2:o,y2:a,centerX:r,centerY:l}=t,u=Math.atan2(a-s,o-i),c=Dl(e.controlPoint,0),d={x:r+Kn(n,c.x,!1),y:l+Kn(n,c.y,!1)};return bi(d,{x:r,y:l},u)}function wd(t,{x:e,y:n},{angle:i,adjust:s},o){!o||!o.display||(t.save(),t.translate(e,n),t.rotate(i),Nr(t,0,-s,o),t.restore())}function n1(t,e,n,i){const{x:s,y:o,x2:a,y2:r,options:l}=e,{startOpts:u,endOpts:c,startAdjust:d,endAdjust:f}=jm(e),h={x:s,y:o},m={x:a,y:r},p=gd(h,n,m,0),v=gd(h,n,m,1)-We,b=zr(h,n,m,d/i),_=zr(h,n,m,1-f/i),x=new Path2D;t.beginPath(),x.moveTo(b.x,b.y),x.quadraticCurveTo(n.x,n.y,_.x,_.y),t.shadowColor=l.borderShadowColor,t.stroke(x),e.path=x,e.ctx=t,wd(t,b,{angle:p,adjust:d},u),wd(t,_,{angle:v,adjust:f},c)}class to extends Bt{inRange(e,n,i,s){const o=this.options.rotation,a=(this.options.borderWidth+this.options.hitTolerance)/2;if(i!=="x"&&i!=="y")return i1({x:e,y:n},this.getProps(["width","height","centerX","centerY"],s),o,a);const{x:r,y:l,x2:u,y2:c}=this.getProps(["x","y","x2","y2"],s),d=i==="y"?{start:l,end:c}:{start:r,end:u},f=bi({x:e,y:n},this.getCenterPoint(s),kt(-o));return f[i]>=d.start-a-ri&&f[i]<=d.end+a+ri}getCenterPoint(e){return yi(this,e)}draw(e){const{width:n,height:i,centerX:s,centerY:o,options:a}=this;e.save(),Ca(e,this.getCenterPoint(),a.rotation),as(e,this.options),e.beginPath(),e.fillStyle=a.backgroundColor;const r=An(e,a);e.ellipse(s,o,i/2,n/2,We/2,0,2*We),e.fill(),r&&(e.shadowColor=a.borderShadowColor,e.stroke()),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return Nm(e,n)}}to.id="ellipseAnnotation";to.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,label:Object.assign({},rs.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};to.defaultRoutes={borderColor:"color",backgroundColor:"color"};to.descriptors={label:{_fallback:!0}};function i1(t,e,n,i){const{width:s,height:o,centerX:a,centerY:r}=e,l=s/2,u=o/2;if(l<=0||u<=0)return!1;const c=kt(n||0),d=Math.cos(c),f=Math.sin(c),h=Math.pow(d*(t.x-a)+f*(t.y-r),2),m=Math.pow(f*(t.x-a)-d*(t.y-r),2);return h/Math.pow(l+i,2)+m/Math.pow(u+i,2)<=1.0001}class Ta extends Bt{inRange(e,n,i,s){const{x:o,y:a,x2:r,y2:l,width:u}=this.getProps(["x","y","x2","y2","width"],s),c=(this.options.borderWidth+this.options.hitTolerance)/2;return i!=="x"&&i!=="y"?QS({x:e,y:n},this.getCenterPoint(s),u/2,c):km(i==="y"?{start:a,end:l,value:n}:{start:o,end:r,value:e},c)}getCenterPoint(e){return yi(this,e)}draw(e){const n=this.options,i=n.borderWidth;if(n.radius<.1)return;e.save(),e.fillStyle=n.backgroundColor,as(e,n);const s=An(e,n);ok(e,this,this.centerX,this.centerY),s&&!ka(n.pointStyle)&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore(),n.borderWidth=i}resolveElementProperties(e,n){const i=Bm(e,n);return i.initProperties=os(e,i,n),i}}Ta.id="pointAnnotation";Ta.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};Ta.defaultRoutes={borderColor:"color",backgroundColor:"color"};class Ia extends Bt{inRange(e,n,i,s){if(i!=="x"&&i!=="y")return this.options.radius>=.1&&this.elements.length>1&&o1(this.elements,e,n,s);const o=bi({x:e,y:n},this.getCenterPoint(s),kt(-this.options.rotation)),a=this.elements.map(u=>i==="y"?u.bY:u.bX),r=Math.min(...a),l=Math.max(...a);return o[i]>=r&&o[i]<=l}getCenterPoint(e){return yi(this,e)}draw(e){const{elements:n,options:i}=this;e.save(),e.beginPath(),e.fillStyle=i.backgroundColor,as(e,i);const s=An(e,i);let o=!0;for(const a of n)o?(e.moveTo(a.x,a.y),o=!1):e.lineTo(a.x,a.y);e.closePath(),e.fill(),s&&(e.shadowColor=i.borderShadowColor,e.stroke()),e.restore()}resolveElementProperties(e,n){const i=Bm(e,n),{sides:s,rotation:o}=n,a=[],r=2*We/s;let l=o*tl;for(let u=0;un!=o.bY>n&&e<(o.bX-r.bX)*(n-r.bY)/(o.bY-r.bY)+r.bX&&(s=!s),o=r}return s}const Zn={box:rs,doughnutLabel:Pa,ellipse:to,label:Js,line:eo,point:Ta,polygon:Ia};Object.keys(Zn).forEach(t=>{dt.describe(`elements.${Zn[t].id}`,{_fallback:"plugins.annotation.common"})});const a1={update:Object.assign},r1=Vl.concat(sa),_d=(t,e)=>we(e)?Hr(t,e):t,Wr=t=>t==="color"||t==="font";function Al(t="line"){return Zn[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function l1(t,e,n,i){const s=c1(t,n.animations,i),o=e.annotations,a=h1(e.elements,o);for(let r=0;r_d(a,s)):n[i]=_d(o,s)}return n}function f1(t,e,n,i){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,get elements(){return n.filter(s=>s&&s.options)},id:i.id,type:"annotation"}))}function h1(t,e){const n=e.length,i=t.length;if(in&&t.splice(n,i-n);return t}var m1="3.1.0";const $n=new Map,Sd=t=>t.type!=="doughnutLabel",g1=Vl.concat(sa);var v1={id:"annotation",version:m1,beforeRegister(){GS("chart.js","4.0",Un.version)},afterRegister(){Un.register(Zn)},afterUnregister(){Un.unregister(Zn)},beforeInit(t){$n.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,n){const i=$n.get(t),s=i.annotations=[];let o=n.annotations;we(o)?Object.keys(o).forEach(a=>{const r=o[a];we(r)&&(r.id=a,s.push(r))}):nt(o)&&s.push(...o),Vk(s.filter(Sd),t.scales)},afterDataLimits(t,e){const n=$n.get(t);Ok(t,e.scale,n.annotations.filter(Sd).filter(i=>i.display&&i.adjustScaleRange))},afterUpdate(t,e,n){const i=$n.get(t);Mk(t,i,n),l1(t,i,n,e.mode),i.visibleElements=i.elements.filter(s=>!s.skip&&s.options.display),Dk(t,i,n)},beforeDatasetsDraw(t,e,n){bs(t,"beforeDatasetsDraw",n.clip)},afterDatasetsDraw(t,e,n){bs(t,"afterDatasetsDraw",n.clip)},beforeDatasetDraw(t,e,n){bs(t,e.index,n.clip)},beforeDraw(t,e,n){bs(t,"beforeDraw",n.clip)},afterDraw(t,e,n){bs(t,"afterDraw",n.clip)},beforeEvent(t,e,n){const i=$n.get(t);Pk(i,e.event,n)&&(e.changed=!0)},afterDestroy(t){$n.delete(t)},getAnnotations(t){const e=$n.get(t);return e?e.elements:[]},_getAnnotationElementsAtEventForMode(t,e,n){return Tl(t,e,n)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"},colors:{properties:["backgroundColor","borderColor"],type:"color"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!g1.includes(t)&&t!=="init",annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${Zn[Al(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:Wr,_fallback:!0},_indexable:Wr}},additionalOptionScopes:[""]};function bs(t,e,n){const{ctx:i,chartArea:s}=t,o=$n.get(t);n&&Us(i,s);const a=p1(o.visibleElements,e).sort((r,l)=>r.element.options.z-l.element.options.z);for(const r of a)b1(i,s,o,r);n&&Ys(i)}function p1(t,e){const n=[];for(const i of t)if(i.options.drawTime===e&&n.push({element:i,main:!0}),i.elements&&i.elements.length)for(const s of i.elements)s.options.display&&s.options.drawTime===e&&n.push({element:s});return n}function b1(t,e,n,i){const s=i.element;i.main?(ud(n,s,"beforeDraw"),s.draw(t,e),ud(n,s,"afterDraw")):s.draw(t,e)}const y1={class:"chartContainer"},x1=be({__name:"ElectricityTariffChart",props:{modelValue:{type:Number,required:!1,default:void 0}},emits:["update:modelValue"],setup(t,{emit:e}){Un.register(Hf,Li,On,Vs,Yo,Zi,Nf,v1);const n=t,i=e,s=Fe(),o=gi(),a=Pg("priceChart"),r=N({datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgb(18, 111, 142)",backgroundColor:"rgb(18, 111, 142)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:2,data:[],yAxisID:"y"}]}),l=g(()=>{let h=[];const m=s.etPrices;if(Object.keys(m).length>0){for(const[b,_]of Object.entries(m))h.push({x:parseInt(b)*1e3,y:_*1e5});const v=h.slice(-1)[0];h.push({x:v.x+3599*1e3,y:v.y})}const p=r.value;return p.datasets[0].data=h,p}),u=g(()=>Object.keys(l.value.datasets[0].data).length>0),c=g(()=>{const h="rgba(73, 238, 73, 0.2)",m="rgba(255, 10, 13, 0.2)",p=l.value.datasets[0].data;let v=[];if(n.modelValue!==void 0){for(let b=0;bn.modelValue){let _={type:"box",drawTime:"beforeDatasetsDraw",xMin:p[b].x,xMax:0,borderWidth:1,cornerRadius:0,borderColor:m,backgroundColor:m};for(;bn.modelValue;)b++;b==p.length&&b--,_.xMax=p[b].x,v.push(_)}}return v}),d=g(()=>({plugins:{title:{display:!1},legend:{display:!1},annotation:{annotations:c.value}},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",color:o.dark.isActive?"rgb(255, 255, 255)":"rgb(0, 0, 0)"},ticks:{font:{size:12},color:o.dark.isActive?"rgb(255, 255, 255)":"rgb(0, 0, 0)"},grid:{color:o.dark.isActive?"rgba(255, 255, 255, 0.1)":"rgba(0, 0, 0, 0.1)"}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]",color:o.dark.isActive?"rgb(255, 255, 255)":"rgb(0, 0, 0)"},grid:{color:o.dark.isActive?"rgba(255, 255, 255, 0.1)":"rgba(0, 0, 0, 0.1)"},ticks:{font:{size:12},stepSize:.1,maxTicksLimit:11,color:o.dark.isActive?"rgb(255, 255, 255)":"rgb(0, 0, 0)"}}}}));function f(h){if(!a.value)return;const m=a.value.chart.getElementsAtEventForMode(h,"index",{intersect:!1},!0);if(m.length>0){const p=l.value.datasets[0].data[m[0].index];i("update:modelValue",Math.ceil(p.y*100)/100)}}return(h,m)=>(M(),Q("div",y1,[u.value?(M(),X(Pe(Xf),{key:0,ref_key:"priceChart",ref:a,data:l.value,options:d.value,class:"chart",onClick:f},null,8,["data","options"])):le("",!0)]))}}),w1=mt(x1,[["__scopeId","data-v-9992330e"]]),_1={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},S1={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},k1={key:3},C1={class:"row no-wrap items-center justify-between q-mb-xs q-gutter-x-xs"},M1={class:"col-auto"},P1={class:"col-auto q-mx-sm"},T1={class:"col-auto"},I1=be({__name:"ChargePointEcoSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>{let p=[{value:"none",label:"keine",color:"primary"},{value:"soc",label:"EV-SoC",color:"primary"},{value:"amount",label:"Energiemenge",color:"primary"}];return s.value===void 0&&(p=p.filter(v=>v.value!=="soc")),p}),s=g(()=>n.chargePointConnectedVehicleSocType(e.chargePointId))?.value,o=[{value:1,label:"1"},{value:3,label:"Maximum"},{value:0,label:"Automatik"}],a=g(()=>n.chargePointConnectedVehicleEcoChargeCurrent(e.chargePointId)),r=g(()=>n.dcChargingEnabled),l=g(()=>n.chargePointConnectedVehicleEcoChargeDcPower(e.chargePointId)),u=g(()=>n.chargePointConnectedVehicleEcoChargePhases(e.chargePointId)),c=g(()=>n.chargePointConnectedVehicleEcoChargeLimit(e.chargePointId)),d=g(()=>n.chargePointConnectedVehicleEcoChargeLimitSoC(e.chargePointId)),f=g(()=>n.chargePointConnectedVehicleEcoChargeLimitEnergy(e.chargePointId)),h=g(()=>n.etProviderConfigured),m=g(()=>n.chargePointConnectedVehicleEcoChargeMaxPrice(e.chargePointId));return(p,v)=>(M(),Q(De,null,[C($t,{title:"Minimaler Dauerstrom unter der Preisgrenze",min:6,max:16,step:1,unit:"A",modelValue:a.value.value,"onUpdate:modelValue":v[0]||(v[0]=b=>a.value.value=b),class:"q-mt-md"},null,8,["modelValue"]),r.value?(M(),X($t,{key:0,title:"Minimaler Dauerleistung unter der Preisgrenze",min:4,max:300,step:1,unit:"kW",modelValue:l.value.value,"onUpdate:modelValue":v[1]||(v[1]=b=>l.value.value=b),class:"q-mt-md"},null,8,["modelValue"])):le("",!0),v[12]||(v[12]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen",-1)),q("div",_1,[C(xn,{class:"col"},{default:A(()=>[(M(),Q(De,null,Ke(o,b=>C(ke,{key:b.value,color:u.value.value===b.value?"primary":"grey",label:b.label,size:"sm",class:"col",onClick:_=>u.value.value=b.value},null,8,["color","label","onClick"])),64))]),_:1})]),v[13]||(v[13]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",S1,[C(xn,{class:"col"},{default:A(()=>[(M(!0),Q(De,null,Ke(i.value,b=>(M(),X(ke,{key:b.value,color:c.value.value===b.value?"primary":"grey",label:b.label,size:"sm",class:"col",onClick:_=>c.value.value=b.value},null,8,["color","label","onClick"]))),128))]),_:1})]),c.value.value==="soc"?(M(),X($t,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:d.value.value,"onUpdate:modelValue":v[2]||(v[2]=b=>d.value.value=b),class:"q-mt-md"},null,8,["modelValue"])):le("",!0),c.value.value==="amount"?(M(),X($t,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:f.value.value,"onUpdate:modelValue":v[3]||(v[3]=b=>f.value.value=b),class:"q-mt-md"},null,8,["modelValue"])):le("",!0),h.value?(M(),Q("div",k1,[v[11]||(v[11]=q("div",{class:"text-subtitle2 q-my-sm"}," Preisgrenze für strompreisbasiertes Laden ",-1)),q("div",C1,[q("div",M1,[m.value.value?(M(),X(ke,{key:0,class:"col-auto q-mr-xs",label:"-1,00",color:"grey",size:"sm",dense:"",onClick:v[4]||(v[4]=b=>m.value.value=m.value.value-1)})):le("",!0),m.value.value?(M(),X(ke,{key:1,class:"col-auto q-mr-xs",label:"-0,10",color:"grey",size:"sm",dense:"",onClick:v[5]||(v[5]=b=>m.value.value=m.value.value-.1)})):le("",!0),m.value.value?(M(),X(ke,{key:2,class:"col-auto",label:"-0,01",color:"grey",size:"sm",dense:"",onClick:v[6]||(v[6]=b=>m.value.value=m.value.value-.01)})):le("",!0)]),q("div",P1,se(m.value.value?.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})+" ct/kWh"),1),q("div",T1,[m.value.value?(M(),X(ke,{key:0,class:"col-auto q-mr-xs",label:"+0,01",color:"grey",size:"sm",dense:"",onClick:v[7]||(v[7]=b=>m.value.value=m.value.value+.01)})):le("",!0),m.value.value?(M(),X(ke,{key:1,class:"col-auto q-mr-xs",label:"+0,10",color:"grey",size:"sm",dense:"",onClick:v[8]||(v[8]=b=>m.value.value=m.value.value+.1)})):le("",!0),m.value.value?(M(),X(ke,{key:2,class:"col-auto",label:"+1,00",color:"grey",size:"sm",dense:"",onClick:v[9]||(v[9]=b=>m.value.value=m.value.value+1)})):le("",!0)])]),C(hm,{filled:"",class:"q-mt-sm"},{default:A(()=>[C(w1,{modelValue:m.value.value,"onUpdate:modelValue":v[10]||(v[10]=b=>m.value.value=b)},null,8,["modelValue"])]),_:1})])):le("",!0)],64))}}),D1={class:"column"},O1={class:"plan-name"},V1={class:"plan-details"},E1={key:0},A1={key:1},q1={key:2},L1={key:0},R1={key:1},$1=be({__name:"ChargePointScheduledPlanButton",props:{chargePointId:{},plan:{}},setup(t){const e=t,n=Fe(),i=["Mo","Di","Mi","Do","Fr","Sa","So"],s=g(()=>n.vehicleScheduledChargingPlanActive(e.chargePointId,e.plan.id)),o=g(()=>n.vehicleScheduledChargingPlanEtActive(e.chargePointId,e.plan.id)),a=g(()=>{let l=[],u=null;return e.plan.frequency.weekly.forEach((c,d)=>{c?u===null&&(u=d):u!==null&&(u===d-1?l.push(i[u]):l.push(`${i[u]}-${i[d-1]}`),u=null)}),u!==null&&(u===e.plan.frequency.weekly.length-1?l.push(i[u]):l.push(`${i[u]}-${i[e.plan.frequency.weekly.length-1]}`)),l.join(", ")}),r=g(()=>e.plan.frequency.once===void 0?"-":new Date(e.plan.frequency.once).toLocaleDateString(void 0,{day:"2-digit",month:"2-digit",year:"numeric"}));return(l,u)=>(M(),X(ke,{"no-caps":"",align:"center",class:"cursor-pointer",color:s.value.value?"positive":"negative",onClick:u[0]||(u[0]=c=>s.value.value=!s.value.value)},{default:A(()=>[q("div",D1,[q("div",O1,se(l.plan.name),1),q("div",V1,[q("div",null,[C(xe,{name:l.plan.frequency.selected==="once"?"today":l.plan.frequency.selected==="daily"?"date_range":"calendar_month",size:"sm",title:l.plan.frequency.selected==="once"?"Einmalig":l.plan.frequency.selected==="daily"?"Täglich":"Wöchentlich"},null,8,["name","title"]),l.plan.frequency.selected==="once"?(M(),Q("div",E1,se(r.value),1)):le("",!0),l.plan.frequency.selected==="weekly"?(M(),Q("div",A1,se(a.value),1)):le("",!0),l.plan.frequency.selected==="daily"?(M(),Q("div",q1,"täglich")):le("",!0)]),q("div",null,[C(xe,{name:"schedule",size:"sm"}),q("div",null,se(l.plan.time),1)]),q("div",null,[C(xe,{name:l.plan.limit.selected==="soc"?"battery_full":"bolt",size:"sm"},null,8,["name"]),l.plan.limit.selected==="soc"?(M(),Q("div",L1,[Ve(se(l.plan.limit.soc_scheduled)+"% ",1),C(xe,{name:l.plan.bidi_charging_enabled?"sync_alt":"arrow_right_alt",size:"sm"},null,8,["name"]),Ve(" "+se(l.plan.limit.soc_limit)+"% ",1)])):le("",!0),l.plan.limit.selected==="amount"?(M(),Q("div",R1,se(l.plan.limit.amount?l.plan.limit.amount/1e3:"")+"kWh ",1)):le("",!0)]),q("div",null,[o.value.value?(M(),X(xe,{key:0,name:"bar_chart",size:"sm"})):le("",!0)])])])]),_:1},8,["color"]))}}),F1=mt($1,[["__scopeId","data-v-8568cf54"]]),z1={key:0,class:"row q-mt-sm q-pa-sm bg-primary text-white no-wrap message-text",color:"primary",style:{"border-radius":"10px"}},B1={key:1},N1=be({__name:"ChargePointScheduledSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>n.vehicleScheduledChargingPlans(e.chargePointId));return(s,o)=>(M(),Q(De,null,[o[1]||(o[1]=q("div",{class:"row justify-between items-center"},[q("div",{class:"text-subtitle2 q-mr-sm q-mt-md"},"Termine Zielladen:")],-1)),i.value.length===0?(M(),Q("div",z1,[C(xe,{name:"info",size:"sm",class:"q-mr-xs"}),o[0]||(o[0]=Ve(" Keine Ladeziele festgelegt. ",-1))])):(M(),Q("div",B1,[(M(!0),Q(De,null,Ke(i.value,(a,r)=>(M(),Q("div",{key:r,class:"row q-mt-sm"},[C(F1,{class:"full-width","charge-point-id":e.chargePointId,plan:a},null,8,["charge-point-id","plan"])]))),128))]))],64))}}),oa=be({__name:"ChargePointTimeCharging",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1},dense:{type:Boolean,default:!1},iconSize:{type:String,default:"sm"},toolTip:{type:Boolean,default:!1}},setup(t){const e=t,n={off:"alarm_off",on:"alarm"},s=Fe().chargePointConnectedVehicleTimeCharging(e.chargePointId);return(o,a)=>e.readonly?(M(),X(xe,{key:0,name:Pe(s)?n.on:n.off,color:Pe(s)?"primary":"",size:e.iconSize?e.iconSize:"sm"},{default:A(()=>[e.toolTip?(M(),X(Vn,{key:0},{default:A(()=>[Ve(se(Pe(s)?"Zeitladen aktiviert":"Zeitladen deaktiviert"),1)]),_:1})):le("",!0)]),_:1},8,["name","color","size"])):(M(),X(_a,{key:1,modelValue:Pe(s),"onUpdate:modelValue":a[0]||(a[0]=r=>Xr(s)?s.value=r:null),color:Pe(s)?"primary":"","checked-icon":n.on,"unchecked-icon":n.off,size:"lg",dense:e.dense},null,8,["modelValue","color","checked-icon","unchecked-icon","dense"]))}}),W1={class:"column"},H1={class:"plan-name"},j1={class:"plan-details"},U1={key:0},Y1={key:1},Z1={key:2},X1={key:0},K1={key:0},Q1={key:1},G1=be({__name:"ChargePointTimeChargingPlanButton",props:{chargePointId:{},plan:{}},setup(t){const e=t,n=Fe(),i=["Mo","Di","Mi","Do","Fr","Sa","So"],s=g(()=>n.vehicleTimeChargingPlanActive(e.chargePointId,e.plan.id)),o=g(()=>{let r=[],l=null;return e.plan.frequency.weekly.forEach((u,c)=>{u?l===null&&(l=c):l!==null&&(l===c-1?r.push(i[l]):r.push(`${i[l]}-${i[c-1]}`),l=null)}),l!==null&&(l===e.plan.frequency.weekly.length-1?r.push(i[l]):r.push(`${i[l]}-${i[e.plan.frequency.weekly.length-1]}`)),r.join(", ")}),a=g(()=>{if(e.plan.frequency.once===void 0)return"-";const r=new Date(e.plan.frequency.once[0]),l=new Date(e.plan.frequency.once[1]),u=r.getFullYear()===l.getFullYear(),c=r.getMonth()===l.getMonth()&&u;return`${r.getDay()===l.getDay()&&c?"":r.toLocaleDateString(void 0,{day:"numeric",month:c?void 0:"numeric",year:u?void 0:"numeric"})+(c?".-":"-")}${l.toLocaleDateString(void 0,{day:"numeric",month:"numeric",year:"numeric"})}`});return(r,l)=>(M(),X(ke,{"no-caps":"",align:"center",class:"cursor-pointer",color:s.value.value?"positive":"negative",onClick:l[0]||(l[0]=u=>s.value.value=!s.value.value)},{default:A(()=>[q("div",W1,[q("div",H1,se(r.plan.name),1),q("div",j1,[q("div",null,[C(xe,{name:r.plan.frequency.selected==="once"?"today":r.plan.frequency.selected==="daily"?"date_range":"calendar_month",size:"sm",title:r.plan.frequency.selected==="once"?"Einmalig":r.plan.frequency.selected==="daily"?"Täglich":"Wöchentlich"},null,8,["name","title"]),r.plan.frequency.selected==="once"?(M(),Q("div",U1,se(a.value),1)):le("",!0),r.plan.frequency.selected==="weekly"?(M(),Q("div",Y1,se(o.value),1)):le("",!0),r.plan.frequency.selected==="daily"?(M(),Q("div",Z1,"täglich")):le("",!0)]),q("div",null,[C(xe,{name:"schedule",size:"sm"}),q("div",null,se(r.plan.time[0])+"-"+se(r.plan.time[1]),1)]),r.plan.limit.selected!=="none"?(M(),Q("div",X1,[C(xe,{name:r.plan.limit.selected==="soc"?"battery_full":"bolt",size:"sm"},null,8,["name"]),r.plan.limit.selected==="soc"?(M(),Q("div",K1,se(r.plan.limit.soc)+"%",1)):le("",!0),r.plan.limit.selected==="amount"?(M(),Q("div",Q1,se(r.plan.limit.amount?r.plan.limit.amount/1e3:"")+"kWh ",1)):le("",!0)])):le("",!0)])])]),_:1},8,["color"]))}}),J1=mt(G1,[["__scopeId","data-v-139702f2"]]),eC={class:"row items-center q-ma-none q-pa-none no-wrap items-center justify-between"},tC={key:0,class:"row justify-between items-center"},nC={key:1,class:"row q-mt-sm q-pa-sm bg-primary text-white no-wrap message-text",color:"primary",style:{"border-radius":"10px"}},iC={key:2},sC=be({__name:"ChargePointTimeChargingSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>n.vehicleTimeChargingPlans(e.chargePointId)),s=n.chargePointConnectedVehicleTimeCharging(e.chargePointId);return(o,a)=>(M(),Q(De,null,[q("div",eC,[a[0]||(a[0]=q("div",{class:"text-subtitle2"},"Zeitladen",-1)),q("div",null,[C(oa,{"charge-point-id":e.chargePointId,dense:""},null,8,["charge-point-id"])])]),Pe(s)?(M(),Q("div",tC,a[1]||(a[1]=[q("div",{class:"text-subtitle2"},"Termine Zeitladen:",-1)]))):le("",!0),i.value.length===0&&Pe(s)?(M(),Q("div",nC,[C(xe,{name:"info",size:"sm",class:"q-mr-xs"}),a[2]||(a[2]=Ve(" Keine Zeitpläne vorhanden. ",-1))])):Pe(s)?(M(),Q("div",iC,[(M(!0),Q(De,null,Ke(i.value,(r,l)=>(M(),Q("div",{key:l,class:"row q-mt-sm"},[C(J1,{class:"full-width","charge-point-id":e.chargePointId,plan:r},null,8,["charge-point-id","plan"])]))),128))])):le("",!0)],64))}}),oC={class:"row no-wrap"},aC=["title"],rC={class:"row items-center justify-between"},lC={class:"row items-center q-mt-sm"},uC={class:"col"},cC={class:"row items-center justify-between q-mt-sm"},dC={class:"row items-center no-wrap"},fC={key:0},hC={key:1},mC={key:2},gC={key:3},vC={key:4},pC=be({__name:"ChargePointSettings",props:{chargePointId:{},modelValue:{type:Boolean}},emits:["update:model-value"],setup(t,{emit:e}){const n=Fe(),i=t,s=e,o=g(()=>zi.lt.sm),a=N(i.modelValue);fe(()=>i.modelValue,c=>{a.value=c});const r=g({get:()=>a.value,set:c=>{a.value=c,s("update:model-value",c)}}),l=g(()=>n.chargePointName(i.chargePointId)),u=g(()=>n.chargePointConnectedVehicleChargeMode(i.chargePointId));return(c,d)=>(M(),X(Pe(ns),{modelValue:r.value,"onUpdate:modelValue":d[0]||(d[0]=f=>r.value=f),maximized:o.value,"backdrop-filter":o.value?"":"blur(4px)"},{default:A(()=>[C(ss,null,{default:A(()=>[C(ct,null,{default:A(()=>[q("div",oC,[d[1]||(d[1]=q("div",{class:"text-h6 q-pr-sm"},"Einstellungen:",-1)),q("div",{class:"text-h6 ellipsis",title:l.value},se(l.value),9,aC),C(is),sn(C(ke,{icon:"close",flat:"",round:"",dense:""},null,512),[[wn]])])]),_:1}),C(At),C(ct,null,{default:A(()=>[q("div",rC,[d[2]||(d[2]=q("div",{class:"text-subtitle2"},"Ladepunkt sperren",-1)),C(xm,{"charge-point-id":i.chargePointId,dense:""},null,8,["charge-point-id"])]),C(At,{class:"q-mt-sm"}),q("div",lC,[d[3]||(d[3]=q("div",{class:"col-auto text-subtitle2 q-mr-sm"},"Fahrzeug",-1)),q("div",uC,[C(Sm,{class:"full-width","charge-point-id":i.chargePointId,readonly:!1},null,8,["charge-point-id"])])]),q("div",cC,[d[4]||(d[4]=q("div",{class:"text-subtitle2"},"Priorität",-1)),C(wm,{"charge-point-id":i.chargePointId,readonly:!1,dense:""},null,8,["charge-point-id"])]),C(At,{class:"q-mt-sm"}),q("div",dC,[C(_m,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])]),u.value.value==="instant_charging"?(M(),Q("div",fC,[C($S,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):le("",!0),u.value.value==="pv_charging"?(M(),Q("div",hC,[C(jS,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):le("",!0),u.value.value==="eco_charging"?(M(),Q("div",mC,[C(I1,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):le("",!0),u.value.value==="scheduled_charging"?(M(),Q("div",gC,[C(N1,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):le("",!0),u.value.value!=="stop"?(M(),Q("div",vC,[C(At,{class:"q-my-sm"}),C(sC,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):le("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue","maximized","backdrop-filter"]))}}),bC={class:"row"},yC={class:"text-h6 q-mr-md"},xC={class:"row justify-center items-center"},wC={class:"col-6"},_C={class:"row justify-center items-center q-mt-md"},SC={class:"col q-px-md"},Zm=be({__name:"ManualSocDialog",props:{vehicleId:{},chargePointId:{},socDialogVisible:{type:Boolean}},emits:["update:socDialogVisible"],setup(t,{emit:e}){const n=Fe(),i=t,s=e,o=g(()=>n.vehicleList.find(h=>h.id===i.vehicleId)?.name||""),a=g({get:()=>i.socDialogVisible,set:f=>{s("update:socDialogVisible",f)}}),r=N(void 0),l=g({get:()=>r.value??n.vehicleSocManualValue(i.vehicleId,i.chargePointId).value??0,set:f=>{r.value=Math.min(Math.max(0,f),100)}}),u={0:"0%",50:"50%",100:"100%"},c=()=>{n.vehicleSocManualValue(i.vehicleId,i.chargePointId).value=l.value},d=()=>{r.value=void 0};return(f,h)=>(M(),X(ns,{modelValue:a.value,"onUpdate:modelValue":h[4]||(h[4]=m=>a.value=m)},{default:A(()=>[C(ss,null,{default:A(()=>[C(ct,null,{default:A(()=>[q("div",bC,[q("div",yC,"SoC-Eingabe "+se(o.value),1),C(is),sn(C(ke,{icon:"close",flat:"",round:"",dense:""},null,512),[[wn]])])]),_:1}),C(ct,{class:"q-py-none"},{default:A(()=>[q("div",xC,[q("div",wC,[C(rm,{modelValue:l.value,"onUpdate:modelValue":h[2]||(h[2]=m=>l.value=m),modelModifiers:{number:!0},type:"text",inputmode:"numeric",suffix:"%","hide-spinner":"","input-class":"text-right"},{prepend:A(()=>[C(ke,{round:"",flat:"",dense:"",icon:"remove",onClick:h[0]||(h[0]=m=>l.value--)})]),append:A(()=>[C(ke,{round:"",flat:"",dense:"",icon:"add",onClick:h[1]||(h[1]=m=>l.value++)})]),_:1},8,["modelValue"])])]),q("div",_C,[q("div",SC,[C(na,{modelValue:l.value,"onUpdate:modelValue":h[3]||(h[3]=m=>l.value=m),modelModifiers:{number:!0},min:0,max:100,step:1,markers:10,"marker-labels":u,color:"primary"},null,8,["modelValue"])])])]),_:1}),C(Ml,{align:"center",class:"q-mt-md"},{default:A(()=>[sn(C(ke,{label:"Abbrechen",color:"negative",onClick:d},null,512),[[wn]]),sn(C(ke,{label:"Bestätigen",color:"primary",onClick:c},null,512),[[wn]])]),_:1})]),_:1})]),_:1},8,["modelValue"]))}}),kC=["top","middle","bottom"],CC=Be({name:"QBadge",props:{color:String,textColor:String,floating:Boolean,transparent:Boolean,multiLine:Boolean,outline:Boolean,rounded:Boolean,label:[Number,String],align:{type:String,validator:t=>kC.includes(t)}},setup(t,{slots:e}){const n=g(()=>t.align!==void 0?{verticalAlign:t.align}:null),i=g(()=>{const s=t.outline===!0&&t.color||t.textColor;return`q-badge flex inline items-center no-wrap q-badge--${t.multiLine===!0?"multi":"single"}-line`+(t.outline===!0?" q-badge--outline":t.color!==void 0?` bg-${t.color}`:"")+(s!==void 0?` text-${s}`:"")+(t.floating===!0?" q-badge--floating":"")+(t.rounded===!0?" q-badge--rounded":"")+(t.transparent===!0?" q-badge--transparent":"")});return()=>S("div",{class:i.value,style:n.value,role:"status","aria-label":t.label},mi(e.default,t.label!==void 0?[t.label]:[]))}}),Xm=be({__name:"ChargePointPowerData",props:{power:{},phaseNumber:{},current:{},columnDisplayFormat:{type:Boolean}},setup(t){return(e,n)=>(M(),Q("div",{class:Re(["text-no-wrap items-center",e.columnDisplayFormat?"column":"row inline no-wrap"])},[q("span",null,se(e.power),1),q("div",{class:Re({"q-ml-xs":!e.columnDisplayFormat})},[C(CC,{rounded:"",color:"primary",label:e.phaseNumber,class:"q-mr-xs"},{default:A(()=>[C(Vn,null,{default:A(()=>n[0]||(n[0]=[Ve("Phasenanzahl",-1)])),_:1,__:[0]})]),_:1},8,["label"]),q("span",null,se(e.current),1)],2)],2))}}),MC=["title"],PC={class:"col"},TC={class:"col no-wrap"},IC={class:"col text-right"},DC=be({__name:"ChargePointCard",props:{chargePointId:{},closeButton:{type:Boolean},fullHeight:{type:Boolean}},setup(t){const e=N(null),n=Fe(),i=gi(),s=t,o=g(()=>n.chargePointConnectedVehicleInfo(s.chargePointId).value?.id),a=g(()=>{switch(v.value){case"instant_charging":return n.chargePointConnectedVehicleInstantChargeLimit(s.chargePointId).value;case"pv_charging":return n.chargePointConnectedVehiclePvChargeLimit(s.chargePointId).value;case"eco_charging":return n.chargePointConnectedVehicleEcoChargeLimit(s.chargePointId).value;case"scheduled_charging":return x.value.limit_mode;default:return"soc"}}),r=N(!1),l=N(!1),u=()=>{l.value=!0},c=g(()=>n.chargePointName(s.chargePointId)),d=g(()=>n.chargePointPower(s.chargePointId)),f=g(()=>n.chargePointEnergyChargedPlugged(s.chargePointId)),h=g(()=>n.chargePointPhaseNumber(s.chargePointId)),m=g(()=>n.chargePointChargingCurrent(s.chargePointId)),p=g(()=>a.value==="amount"?n.chargePointEnergyChargedPlugged(s.chargePointId,"value"):Math.round(n.chargePointConnectedVehicleSoc(s.chargePointId).value?.soc??0)),v=g(()=>n.chargePointConnectedVehicleChargeMode(s.chargePointId).value),b=g(()=>{switch(v.value){case"scheduled_charging":return x.value.limit;case"instant_charging":switch(n.chargePointConnectedVehicleInstantChargeLimit(s.chargePointId).value){case"soc":return n.chargePointConnectedVehicleInstantChargeLimitSoC(s.chargePointId).value??0;case"amount":return(n.chargePointConnectedVehicleInstantChargeLimitEnergy(s.chargePointId).value??0)*1e3}case"pv_charging":switch(n.chargePointConnectedVehiclePvChargeLimit(s.chargePointId).value){case"soc":return n.chargePointConnectedVehiclePvChargeLimitSoC(s.chargePointId).value??0;case"amount":return(n.chargePointConnectedVehiclePvChargeLimitEnergy(s.chargePointId).value??0)*1e3}case"eco_charging":switch(n.chargePointConnectedVehicleEcoChargeLimit(s.chargePointId).value){case"soc":return n.chargePointConnectedVehicleEcoChargeLimitSoC(s.chargePointId).value??0;case"amount":return(n.chargePointConnectedVehicleEcoChargeLimitEnergy(s.chargePointId).value??0)*1e3}default:return}}),_=g(()=>!!(b.value&&b.value>999||w.value)),x=g(()=>n.vehicleChargeTarget(s.chargePointId).value),w=g(()=>n.chargePointConnectedVehicleSocType(s.chargePointId))?.value,y=()=>{n.chargePointConnectedVehicleForceSocUpdate(s.chargePointId),i.notify({type:"positive",message:"SoC Update angefordert."})};return(V,E)=>(M(),X(ss,{ref_key:"cardRef",ref:e,class:Re(["card-width",{"full-height":s.fullHeight}])},{default:A(()=>[C(ct,{class:"row no-wrap"},{default:A(()=>[q("div",{class:"text-h6 text-bold ellipsis",title:c.value},se(c.value),9,MC),C(is),s.closeButton?sn((M(),X(ke,{key:0,icon:"close",flat:"",round:"",dense:""},null,512)),[[wn]]):le("",!0)]),_:1}),C(At,{class:"q-mt-sm"}),C(ct,{class:"row flex items-center justify-between"},{default:A(()=>[q("div",null,[C(ia,{"charge-point-id":Number(s.chargePointId)},null,8,["charge-point-id"]),C(oa,{"charge-point-id":Number(s.chargePointId),readonly:!0,iconSize:"xs",toolTip:!0},null,8,["charge-point-id"]),C(xm,{"charge-point-id":s.chargePointId},null,8,["charge-point-id"])]),C(xe,{class:"cursor-pointer",name:"settings",size:"sm",onClick:E[0]||(E[0]=L=>r.value=!0)})]),_:1}),C(ct,null,{default:A(()=>[C(id,{"fault-message":"","charge-point-id":s.chargePointId},null,8,["charge-point-id"]),C(id,{"charge-point-id":s.chargePointId},null,8,["charge-point-id"])]),_:1}),C(ct,{class:"full-width row no-wrap justify-between content-start items-center q-mt-sm"},{default:A(()=>[C(Sm,{class:"col","charge-point-id":Number(s.chargePointId)},null,8,["charge-point-id"]),C(wm,{class:"col-auto","charge-point-id":s.chargePointId},null,8,["charge-point-id"])]),_:1}),C(ct,null,{default:A(()=>[C(_m,{"charge-point-id":s.chargePointId},null,8,["charge-point-id"])]),_:1}),C(ct,{class:"row q-mt-sm"},{default:A(()=>[q("div",PC,[E[3]||(E[3]=q("div",{class:"text-subtitle2"},"Leistung",-1)),q("div",TC,[C(Xm,{power:d.value,"phase-number":h.value,current:m.value},null,8,["power","phase-number","current"])])]),q("div",IC,[E[4]||(E[4]=q("div",{class:"text-subtitle2"},"geladen",-1)),Ve(" "+se(f.value),1)])]),_:1}),C(ct,null,{default:A(()=>[_.value?(M(),X(Pl,{key:0,class:"q-mt-sm","model-value":b.value,readonly:!0,"charge-mode":v.value,"limit-mode":a.value,"current-value":p.value,"target-time":x.value.time,"vehicle-soc-type":Pe(w),"on-edit-soc":u,"on-refresh-soc":y},null,8,["model-value","charge-mode","limit-mode","current-value","target-time","vehicle-soc-type"])):le("",!0)]),_:1}),V.$slots["card-actions"]?(M(),X(Ml,{key:0,align:"right"},{default:A(()=>[Vi(V.$slots,"card-actions",{},void 0,!0)]),_:3})):le("",!0),C(pC,{chargePointId:s.chargePointId,modelValue:r.value,"onUpdate:modelValue":E[1]||(E[1]=L=>r.value=L)},null,8,["chargePointId","modelValue"]),C(Zm,{vehicleId:o.value,chargePointId:s.chargePointId,socDialogVisible:l.value,"onUpdate:socDialogVisible":E[2]||(E[2]=L=>l.value=L)},null,8,["vehicleId","chargePointId","socDialogVisible"])]),_:3},8,["class"]))}}),kd=mt(DC,[["__scopeId","data-v-733d1f13"]]),Cd=be({__name:"ChargePointMode",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),{chargeModes:i}=wl(),s=g(()=>n.chargePointConnectedVehicleChargeMode(e.chargePointId)),o=g(()=>i.find(r=>r.value===s.value.value)?.label),a=g(()=>i.find(r=>r.value===s.value.value)?.color);return(r,l)=>(M(),X(ta,{outline:"",size:"sm",color:a.value},{default:A(()=>[Ve(se(o.value),1)]),_:1},8,["color"]))}}),OC=["title"],VC=["title"],EC=["title"],AC=["title"],qC={class:"items-center"},LC={class:"q-pa-xs column q-gutter-y-xs"},RC={class:"col-5 text-caption text-bold"},$C={class:"col-7 text-right"},FC=be({__name:"ChargePointInformation",setup(t){const e=Fe(),{chargeModes:n}=wl(),i=g(()=>e.chargePointIds),s=g(()=>e.themeConfiguration?.chargePoint_card_view_breakpoint||4),o=g(()=>e.themeConfiguration?.chargePoint_table_search_input_field),a=g(()=>zi.lt.sm),r=g(()=>zi.lt.md),l=N(null),u=N(!1),c=N(""),d=g(()=>b=>{const _=e.chargePointName(b),x=e.chargePointConnectedVehicleInfo(b).value?.name||"Kein Fahrzeug",w=e.chargePointPlugState(b),y=e.chargePointConnectedVehicleChargeMode(b).value,V=n.find(j=>j.value===y),E=V?V.label:y,L=e.chargePointConnectedVehicleSoc(b).value?.soc,D=L!==void 0?`${Math.round(L)}%`:"0%",T=e.chargePointPower(b),R=e.chargePointEnergyChargedPlugged(b),I=e.chargePointConnectedVehicleTimeCharging(b).value,H=e.chargePointPhaseNumber(b),z=e.chargePointChargingCurrent(b);return{id:b,name:_,vehicle:x,plugged:w,chargeMode:E,timeCharging:I,soc:D,power:T,phaseNumber:H,current:z,powerColumn:"",charged:R}}),f=[{field:"name",label:"Ladepunkt"},{field:"vehicle",label:"Fahrzeug"},{field:"plugged",label:"Status",align:"center"},{field:"chargeMode",label:"Lademodus"},{field:"timeCharging",label:"Zeitladen",align:"center"},{field:"powerColumn",label:"Leistung",align:"right"},{field:"charged",label:"Geladen",align:"right"},{field:"soc",label:"Ladestand",align:"right"}],h=[{field:"nameAndVehicle",label:"Ladepunkt"},{field:"modePluggedTimeCharging",label:"Lademodus",align:"center"},{field:"powerColumn",label:"Leistung",align:"center"},{field:"charged",label:"Geladen",align:"right",expandField:!0},{field:"soc",label:"Ladestand",align:"right",expandField:!0}],m=h.filter(b=>!b.expandField),p=h.filter(b=>b.expandField),v=b=>{l.value=b.id,u.value=!0};return(b,_)=>(M(),Q(De,null,[i.value.length<=s.value?(M(),X(_l,{key:0,items:i.value},{item:A(({item:x})=>[C(kd,{"charge-point-id":x,"full-height":""},null,8,["charge-point-id"])]),_:1},8,["items"])):(M(),X(bm,{key:1,items:i.value,"row-data":d.value,"column-config":r.value?Pe(m):f,dense:r.value,square:r.value,"search-input-visible":o.value,"table-height":r.value?"35vh":"45vh",filter:c.value,"onUpdate:filter":_[0]||(_[0]=x=>c.value=x),"columns-to-search":["vehicle","name"],"row-expandable":r.value,onRowClick:v},{"body-cell-name":A(x=>[C(_t,{class:Re([`text-${x.col.align}`,"max-width-0"])},{default:A(()=>[q("div",{class:"ellipsis",title:x.row.name},se(x.row.name),9,OC)]),_:2},1032,["class"])]),"body-cell-vehicle":A(x=>[C(_t,{class:Re([`text-${x.col.align}`,"max-width-0"])},{default:A(()=>[q("div",{class:"ellipsis",title:x.row.vehicle},se(x.row.vehicle),9,VC)]),_:2},1032,["class"])]),"body-cell-plugged":A(x=>[C(_t,{"auto-width":"",class:Re(`text-${x.col.align}`)},{default:A(()=>[C(ia,{"charge-point-id":x.row.id},null,8,["charge-point-id"])]),_:2},1032,["class"])]),"body-cell-chargeMode":A(x=>[C(_t,{"auto-width":"",class:Re(`text-${x.col.align}`)},{default:A(()=>[C(Cd,{"charge-point-id":x.row.id},null,8,["charge-point-id"])]),_:2},1032,["class"])]),"body-cell-timeCharging":A(x=>[C(_t,{"auto-width":"",class:Re(`text-${x.col.align}`)},{default:A(()=>[C(oa,{"charge-point-id":x.row.id,readonly:!0,toolTip:!0,"icon-size":"xs"},null,8,["charge-point-id"])]),_:2},1032,["class"])]),"body-cell-powerColumn":A(x=>[C(_t,{"auto-width":"",class:Re(`text-${x.col.align}`)},{default:A(()=>[C(Xm,{power:x.row.power,"phase-number":x.row.phaseNumber,current:x.row.current,"column-display-format":a.value},null,8,["power","phase-number","current","column-display-format"])]),_:2},1032,["class"])]),"body-cell-charged":A(x=>[C(_t,{"auto-width":"",class:Re(`text-${x.col.align}`)},{default:A(()=>[Ve(se(x.row.charged),1)]),_:2},1032,["class"])]),"body-cell-soc":A(x=>[C(_t,{"auto-width":"",class:Re(`text-${x.col.align}`)},{default:A(()=>[Ve(se(x.row.soc),1)]),_:2},1032,["class"])]),"body-cell-nameAndVehicle":A(x=>[C(_t,{class:Re([`text-${x.col.align}`,"max-width-0"])},{default:A(()=>[q("div",{class:"ellipsis",title:x.row.name},se(x.row.name),9,EC),q("div",{class:"ellipsis text-caption",title:x.row.vehicle},se(x.row.vehicle),9,AC)]),_:2},1032,["class"])]),"body-cell-modePluggedTimeCharging":A(x=>[C(_t,{"auto-width":"",class:Re(`text-${x.col.align}`)},{default:A(()=>[q("div",qC,[C(Cd,{"charge-point-id":x.row.id},null,8,["charge-point-id"]),C(ia,{"charge-point-id":x.row.id},null,8,["charge-point-id"]),C(oa,{"charge-point-id":x.row.id,readonly:!0,toolTip:!0,"icon-size":"xs"},null,8,["charge-point-id"])])]),_:2},1032,["class"])]),"row-expand":A(x=>[q("div",LC,[(M(!0),Q(De,null,Ke(Pe(p),w=>(M(),Q("div",{key:w.field,class:"row items-start"},[q("div",RC,se(w.label)+":",1),q("div",$C,se(x.row[w.field]),1)]))),128))])]),_:1},8,["items","row-data","column-config","dense","square","search-input-visible","table-height","filter","row-expandable"])),C(ns,{modelValue:u.value,"onUpdate:modelValue":_[1]||(_[1]=x=>u.value=x),"transition-show":"fade","transition-hide":"fade",maximized:a.value,"full-height":a.value,"full-width":a.value,"backdrop-filter":b.$q.screen.width<385?"":"blur(4px)"},{default:A(()=>[l.value!==null?(M(),X(kd,{key:0,"charge-point-id":l.value,"close-button":!0},null,8,["charge-point-id"])):le("",!0)]),_:1},8,["modelValue","maximized","full-height","full-width","backdrop-filter"])],64))}}),zC=mt(FC,[["__scopeId","data-v-66f9059a"]]),Km=()=>({batteryModes:[{value:"ev_mode",label:"Fahrzeuge",color:"primary",icon:"directions_car",tooltip:"Fahrzeuge"},{value:"bat_mode",label:"Speicher",color:"primary",icon:"battery_charging_full",tooltip:"Speicher"},{value:"min_soc_bat_mode",label:"Mindest-SoC",color:"primary",icon:"battery_4_bar",tooltip:"Mindest-SoC des Speichers"}]}),BC=be({__name:"BatteryModeButtons",setup(t){const e=Fe(),{batteryModes:n}=Km(),i=g(()=>e.batteryMode());return(s,o)=>(M(),X(xn,{class:"q-mt-md"},{default:A(()=>[(M(!0),Q(De,null,Ke(Pe(n),a=>(M(),X(ke,{key:a.value,color:i.value.value===a.value?"primary":"grey",label:a.label,icon:a.icon,size:"sm",onClick:r=>i.value.value=a.value},{default:A(()=>[C(Vn,{class:"bg-primary"},{default:A(()=>[Ve(se(a.tooltip),1)]),_:2},1024)]),_:2},1032,["color","label","icon","onClick"]))),128))]),_:1}))}}),NC={class:"row no-wrap"},WC=["title"],HC=be({__name:"BatterySettingsDialog",props:{batteryId:{}},setup(t,{expose:e}){const n=N(!1),i=t,s=Fe(),o=g(()=>zi.lt.sm),a=g(()=>i.batteryId===void 0||i.batteryId===-1?"Übergreifend":s.batteryName(i.batteryId));return e({open:()=>n.value=!0}),(r,l)=>(M(),X(ns,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=u=>n.value=u),maximized:o.value,"backdrop-filter":o.value?"":"blur(4px)"},{default:A(()=>[C(ss,null,{default:A(()=>[C(ct,null,{default:A(()=>[q("div",NC,[l[1]||(l[1]=q("div",{class:"text-h6 q-pr-sm"},"Einstellungen:",-1)),q("div",{class:"text-h6 ellipsis",title:a.value},se(a.value),9,WC),C(is),sn(C(ke,{icon:"close",flat:"",round:"",dense:""},null,512),[[wn]])])]),_:1}),C(At),C(ct,null,{default:A(()=>[l[2]||(l[2]=q("div",{class:"text-subtitle2"},"Laden mit Überschuss Modus:",-1)),C(BC)]),_:1,__:[2]})]),_:1})]),_:1},8,["modelValue","maximized","backdrop-filter"]))}}),jC=["title"],UC={class:"q-ml-sm"},YC={key:0},ZC={class:"q-ml-sm row items-center"},XC={class:"row q-mt-sm text-subtitle2 justify-between full-width"},KC={class:"q-ml-sm"},QC={class:"row q-mt-sm text-subtitle2 justify-between full-width"},GC={class:"q-ml-sm"},JC=be({__name:"BatteryCard",props:{batteryId:{},fullHeight:{type:Boolean}},setup(t){const e=N(null),n=t,i=g(()=>u.batteryIds.length===1),s=g(()=>a.value||i.value),{batteryModes:o}=Km(),a=g(()=>n.batteryId===-1),r=g(()=>{const p=u.batteryMode();return o.find(v=>v.value===p.value)||o[0]}),l=N(),u=Fe(),c=g(()=>a.value?"Speicher Übersicht":u.batteryName(n.batteryId)),d=g(()=>a.value?u.batterySocTotal:u.batterySoc(n.batteryId)),f=g(()=>a.value?u.batteryTotalPower("textValue"):u.batteryPower(n.batteryId,"textValue")),h=g(()=>a.value?u.batteryDailyImportedTotal("textValue"):u.batteryDailyImported(n.batteryId,"textValue")||"---"),m=g(()=>a.value?u.batteryDailyExportedTotal("textValue"):u.batteryDailyExported(n.batteryId,"textValue")||"---");return(p,v)=>(M(),Q(De,null,[C(ss,{ref_key:"cardRef",ref:e,class:Re(["card-width",{"battery-sum":n.batteryId===-1,"full-height":n.fullHeight}])},{default:A(()=>[C(ct,{class:"row no-wrap items-center justify-between"},{default:A(()=>[q("div",{class:"text-h6 text-bold ellipsis",title:c.value},se(c.value),9,jC),C(is),s.value?(M(),X(ke,{key:0,icon:"settings",flat:"",round:"",dense:"",onClick:v[0]||(v[0]=b=>l.value?.open())})):le("",!0)]),_:1}),C(At,{class:"q-mt-sm"}),C(ct,{class:"row q-mt-sm text-subtitle2 justify-between full-width"},{default:A(()=>[v[1]||(v[1]=q("div",null,"Leistung:",-1)),q("div",UC,se(f.value),1)]),_:1,__:[1]}),s.value?(M(),Q("div",YC,[C(At,{inset:"",class:"q-mt-sm"}),s.value?(M(),X(ct,{key:0,class:"row q-mt-md justify-between text-subtitle2"},{default:A(()=>[v[2]||(v[2]=q("div",null,"Laden mit Überschuss:",-1)),q("div",ZC,[C(xe,{name:r.value.icon,size:"sm",class:"q-mr-sm",color:"primary"},null,8,["name"]),q("div",null,se(r.value.label),1)])]),_:1,__:[2]})):le("",!0)])):le("",!0),C(At,{inset:""}),C(ct,null,{default:A(()=>[v[5]||(v[5]=q("div",{class:"text-subtitle1 text-weight-bold q-mt-sm"},"Heute:",-1)),q("div",XC,[v[3]||(v[3]=q("div",null,"Geladen:",-1)),q("div",KC,se(h.value),1)]),q("div",QC,[v[4]||(v[4]=q("div",null,"Entladen:",-1)),q("div",GC,se(m.value),1)])]),_:1,__:[5]}),C(At,{inset:"",class:"q-mt-sm"}),C(ct,null,{default:A(()=>[C(Pl,{"current-value":d.value,readonly:!0,"limit-mode":"none"},null,8,["current-value"])]),_:1})]),_:1},8,["class"]),C(HC,{"battery-id":n.batteryId,ref_key:"dialog",ref:l},null,8,["battery-id"])],64))}}),eM=mt(JC,[["__scopeId","data-v-1fa8d17b"]]),tM=be({__name:"BatteryInformation",setup(t){const e=Fe(),n=g(()=>{let i=e.batteryIds;return i.length>1?[-1].concat(i):i});return(i,s)=>(M(),X(_l,{items:n.value},{item:A(({item:o})=>[C(eM,{"battery-id":o,"full-height":""},null,8,["battery-id"])]),_:1},8,["items"]))}}),nM={class:"row items-center"},Qm=be({__name:"VehicleConnectionStateIcon",props:{vehicleId:{}},setup(t){const e=t,n=Fe(),i=g(()=>n.vehicleConnectionState(e.vehicleId));return(s,o)=>(M(),Q("div",nM,[o[0]||(o[0]=q("div",{class:"text-subtitle2 q-mr-sm"},"Status:",-1)),i.value.length<1?(M(),X(ta,{key:0,label:"Nicht zugeordnet",color:"primary",class:"q-ml-auto"})):le("",!0),(M(!0),Q(De,null,Ke(i.value,(a,r)=>(M(),X(ta,{key:r,icon:a.plugged?"power":"power_off",class:Re(["ellipsis",[{"q-ml-auto":r===0,"q-ml-none":r!==0}]]),color:a.plugged?a.charging?"positive":"warning":"negative",label:a.name},{default:A(()=>[C(Vn,null,{default:A(()=>[Ve(se(a.plugged?a.charging?"Lädt":"Angesteckt, lädt nicht":"Nicht angesteckt"),1)]),_:2},1024)]),_:2},1032,["icon","class","color","label"]))),128))]))}}),iM=["title"],sM={class:"col"},oM={class:"col q-pl-sm"},aM={key:0},rM=be({__name:"VehicleCard",props:{vehicleId:{},closeButton:{type:Boolean},fullHeight:{type:Boolean}},setup(t){const e=N(null),n=t,i=Fe(),s=gi(),o=N(!1),a=()=>{o.value=!0},r=g(()=>i.vehicleList.find(f=>f.id===n.vehicleId)),l=g(()=>i.vehicleInfo(n.vehicleId)),u=g(()=>i.vehicleSocType(n.vehicleId)),c=g(()=>i.vehicleSocValue(n.vehicleId)||0),d=()=>{i.vehicleForceSocUpdate(n.vehicleId),s.notify({type:"positive",message:"SoC Update angefordert."})};return(f,h)=>(M(),X(ss,{ref_key:"cardRef",ref:e,class:Re(["card-width",{"full-height":n.fullHeight}])},{default:A(()=>[C(ct,{class:"row no-wrap"},{default:A(()=>[q("div",{class:"text-h6 text-bold ellipsis",title:r.value?.name},se(r.value?.name),9,iM),C(is),n.closeButton?sn((M(),X(ke,{key:0,icon:"close",flat:"",round:"",dense:""},null,512)),[[wn]]):le("",!0)]),_:1}),C(At,{class:"q-mt-sm"}),C(ct,{class:"row q-mt-sm"},{default:A(()=>[q("div",sM,[h[1]||(h[1]=q("div",{class:"text-subtitle2"},"Hersteller:",-1)),Ve(" "+se(l.value?.manufacturer||"keine Angabe"),1)]),q("div",oM,[h[2]||(h[2]=q("div",{class:"text-subtitle2"},"Modell:",-1)),Ve(" "+se(l.value?.model||"keine Angabe"),1)])]),_:1}),C(At,{inset:"",class:"q-mt-sm"}),C(ct,null,{default:A(()=>[C(Qm,{"vehicle-id":f.vehicleId,class:"q-mt-sm"},null,8,["vehicle-id"])]),_:1}),u.value?(M(),Q("div",aM,[C(At,{inset:"",class:"q-mt-sm"}),C(ct,null,{default:A(()=>[u.value?(M(),X(Pl,{key:0,"current-value":c.value,readonly:!0,"limit-mode":"none","vehicle-soc-type":u.value,"on-edit-soc":a,"on-refresh-soc":d},null,8,["current-value","vehicle-soc-type"])):le("",!0)]),_:1})])):le("",!0),f.$slots["card-actions"]?(M(),X(Ml,{key:1,align:"right"},{default:A(()=>[Vi(f.$slots,"card-actions",{},void 0,!0)]),_:3})):le("",!0),C(Zm,{vehicleId:n.vehicleId,socDialogVisible:o.value,"onUpdate:socDialogVisible":h[0]||(h[0]=m=>o.value=m)},null,8,["vehicleId","socDialogVisible"])]),_:3},8,["class"]))}}),Md=mt(rM,[["__scopeId","data-v-d1390425"]]),lM=["title"],uM={class:"dialog-content"},cM=be({__name:"VehicleInformation",setup(t){const e=Fe(),n=g(()=>zi.lt.md),i=N(!1),s=N(null),o=N(""),a=g(()=>e.themeConfiguration?.vehicle_table_search_input_field),r=g(()=>e.themeConfiguration?.vehicle_card_view_breakpoint||4),l=g(()=>e.vehicleList),u=g(()=>l.value.map(m=>m.id)),c=g(()=>m=>{const v=e.vehicleList.find(D=>D.id===m)?.name||"keine Angabe",b=e.vehicleConnectionState(m),_=b.some(D=>D.plugged),x=b.some(D=>D.charging),w=e.vehicleInfo(m),y=w?.manufacturer||"keine Angabe",V=w?.model||"keine Angabe",E=e.vehicleSocValue(m),L=E!==void 0?`${Math.round(E)}%`:"–";return{id:m,name:v,manufacturer:y,model:V,plugState:_,chargeState:x,vehicleSocValue:L}}),d=[{field:"name",label:"Fahrzeug"},{field:"manufacturer",label:"Hersteller"},{field:"model",label:"Modell"},{field:"plugged",label:"Status",align:"center"},{field:"vehicleSocValue",label:"Ladestand",align:"right"}],f=[{field:"name",label:"Fahrzeug"},{field:"plugged",label:"Status",align:"center"},{field:"vehicleSocValue",label:"Ladestand",align:"right"}],h=m=>{s.value=m.id,i.value=!0};return(m,p)=>(M(),Q(De,null,[u.value.length<=r.value?(M(),X(_l,{key:0,items:u.value},{item:A(({item:v})=>[C(Md,{"vehicle-id":v,"full-height":""},null,8,["vehicle-id"])]),_:1},8,["items"])):(M(),X(bm,{key:1,items:u.value,"row-data":c.value,"column-config":n.value?f:d,dense:n.value,square:n.value,"search-input-visible":a.value,"table-height":n.value?"35vh":"45vh",filter:o.value,"onUpdate:filter":p[0]||(p[0]=v=>o.value=v),"columns-to-search":["name","manufacturer","model"],"row-expandable":!0,onRowClick:h},{"row-expand":A(v=>[C(Qm,{"vehicle-id":v.row.id},null,8,["vehicle-id"])]),"body-cell-name":A(v=>[C(_t,{class:Re([`text-${v.col.align}`,"max-width-0"])},{default:A(()=>[q("div",{class:"ellipsis",title:v.row.name},se(v.row.name),9,lM)]),_:2},1032,["class"])]),"body-cell-manufacturer":A(v=>[C(_t,{"auto-width":"",class:Re(`text-${v.col.align}`)},{default:A(()=>[Ve(se(v.row.manufacturer),1)]),_:2},1032,["class"])]),"body-cell-model":A(v=>[C(_t,{"auto-width":"",class:Re(`text-${v.col.align}`)},{default:A(()=>[Ve(se(v.row.model),1)]),_:2},1032,["class"])]),"body-cell-plugged":A(v=>[C(_t,{"auto-width":"",class:Re(`text-${v.col.align}`)},{default:A(()=>[C(ia,{"vehicle-id":v.row.id},null,8,["vehicle-id"])]),_:2},1032,["class"])]),"body-cell-vehicleSocValue":A(v=>[C(_t,{"auto-width":"",class:Re(`text-${v.col.align}`)},{default:A(()=>[Ve(se(v.row.vehicleSocValue),1)]),_:2},1032,["class"])]),_:1},8,["items","row-data","column-config","dense","square","search-input-visible","table-height","filter"])),C(ns,{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=v=>i.value=v),"transition-show":"fade","transition-hide":"fade","backdrop-filter":m.$q.screen.width<385?"":"blur(4px)"},{default:A(()=>[q("div",uM,[s.value!==null?(M(),X(Md,{key:0,"vehicle-id":s.value,closeButton:""},null,8,["vehicle-id"])):le("",!0)])]),_:1},8,["modelValue","backdrop-filter"])],64))}}),dM=mt(cM,[["__scopeId","data-v-c2e6a5f0"]]),fM={class:"row justify-center full-width chart-section"},hM={class:"tab-section"},mM=be({name:"IndexPage",__name:"IndexPage",setup(t){const e=N("charge-points"),n=Fe(),i=g(()=>n.batteryConfigured);return(s,o)=>(M(),X(tv,{class:"column"},{default:A(()=>[q("div",fM,[C(f_)]),q("div",hM,[C(Kg,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=a=>e.value=a),dense:"",class:"q-tabs__content--align-justify"},{default:A(()=>[C(Fa,{name:"charge-points",title:"Ladepunkte"},{default:A(()=>[C(xe,{name:"ev_station",size:"md",color:"primary"})]),_:1}),C(Fa,{name:"vehicles",title:"Fahrzeuge"},{default:A(()=>[C(xe,{name:"directions_car",size:"md",color:"primary"})]),_:1}),i.value?(M(),X(Fa,{key:0,name:"batteries",title:"Speicher"},{default:A(()=>[C(xe,{name:"battery_full",size:"md",color:"primary"})]),_:1})):le("",!0)]),_:1},8,["modelValue"]),C(ev,{modelValue:e.value,"onUpdate:modelValue":o[1]||(o[1]=a=>e.value=a),class:"col column"},{default:A(()=>[C(za,{name:"charge-points",class:"column"},{default:A(()=>[C(zC)]),_:1}),C(za,{name:"vehicles",class:"column"},{default:A(()=>[C(dM)]),_:1}),i.value?(M(),X(za,{key:0,name:"batteries",class:"column"},{default:A(()=>[C(tM)]),_:1})):le("",!0)]),_:1},8,["modelValue"])])]),_:1}))}}),xM=mt(mM,[["__scopeId","data-v-a07e6bc2"]]);export{xM as default}; diff --git a/packages/modules/web_themes/koala/web/assets/IndexPage-IZgFdmdx.js b/packages/modules/web_themes/koala/web/assets/IndexPage-IZgFdmdx.js new file mode 100644 index 0000000000..b1537c819c --- /dev/null +++ b/packages/modules/web_themes/koala/web/assets/IndexPage-IZgFdmdx.js @@ -0,0 +1,28 @@ +var eg=Object.defineProperty;var tg=(t,e,n)=>e in t?eg(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ae=(t,e,n)=>tg(t,typeof e!="symbol"?e+"":e,n);import{i as Lo,e as Pn,K as Pd,g as Ue,r as B,a as g,o as Rt,m as hn,j as sn,R as Td,h as S,J as we,t as mi,L as aa,M as jr,N as At,c as Be,w as he,q as ra,s as la,d as et,x as ng,O as Id,P as La,S as zn,T as Ra,n as Dd,U as io,V as Ro,W as ig,X as As,Y as sg,Z as og,v as ua,l as ag,y as rg,_ as lg,$ as Fl,a0 as Ur,a1 as qs,Q as ke,C as ye,a2 as Od,a3 as K,F as P,a4 as q,a5 as Oe,a6 as Xe,a7 as Re,a8 as ue,I as Ve,a9 as oe,aa as Vd,ab as ug,B as cg,ac as Tn,u as bt,ad as Ed,ae as dg,af as Ad,z as fg,ag as qd,ah as hg,ai as In,E as X,G as A,H as C,aj as Te,ak as mg,al as ln,am as zi,an as Vi,ao as Ld,ap as gg,p as Rd,aq as si,ar as Bn,as as vg,f as pg,k as zl,at as Yr,au as Zr,av as bg,aw as ls,ax as yg,ay as Bl,az as Io,aA as xg,aB as wg,aC as _g,aD as Sg,aE as Nl,aF as Wl,aG as kg,aH as Cg,aI as Mg,aJ as Xr,aK as $d,aL as Pg}from"./index-BH3GZeBO.js";import{y as Ps,j as Ls,Q as Tg,z as Hl,A as Ig,B as jl,u as mn,c as gn,_ as ht,o as gi,h as Fd,s as zd,C as Dg,D as Ul,E as Kr,i as Bd,F as Og,G as Nd,H as Vg,I as Eg,k as Wd,J as Hd,K as Yl,L as Ag,M as Zl,g as jd,N as qg,O as Lg,P as ca,w as xn,p as Bi,q as Ni,r as Xn,v as Wi,l as Rg,m as $g,R as Fg,S as Xl,t as Lt,U as zg,V as Bg,T as Ng,d as Ii,x as Vn}from"./_plugin-vue_export-helper-CnHKGPMP.js";import{u as Fe}from"./mqtt-store-CmJDUm41.js";let $a,so=0;const Tt=new Array(256);for(let t=0;t<256;t++)Tt[t]=(t+256).toString(16).substring(1);const Wg=(()=>{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}})(),Kl=4096;function mr(){($a===void 0||so+16>Kl)&&(so=0,$a=Wg(Kl));const t=Array.prototype.slice.call($a,so,so+=16);return t[6]=t[6]&15|64,t[8]=t[8]&63|128,Tt[t[0]]+Tt[t[1]]+Tt[t[2]]+Tt[t[3]]+"-"+Tt[t[4]]+Tt[t[5]]+"-"+Tt[t[6]]+Tt[t[7]]+"-"+Tt[t[8]]+Tt[t[9]]+"-"+Tt[t[10]]+Tt[t[11]]+Tt[t[12]]+Tt[t[13]]+Tt[t[14]]+Tt[t[15]]}let Hg=0;const jg=["click","keydown"],Ug={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${Hg++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function Yg(t,e,n,i){const s=Lo(Pd,Pn);if(s===Pn)return console.error("QTab/QRouteTab component needs to be child of QTabs"),Pn;const{proxy:o}=Ue(),a=B(null),r=B(null),l=B(null),u=g(()=>t.disable===!0||t.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},t.ripple===!0?{}:t.ripple)),c=g(()=>s.currentModel.value===t.name),d=g(()=>"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=g(()=>"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=g(()=>t.disable===!0||s.hasFocus.value===!0||c.value===!1&&s.hasActiveTab.value===!0?-1:t.tabindex||0);function m(y,w){if(w!==!0&&y?.qAvoidFocus!==!0&&a.value?.focus(),t.disable!==!0){s.updateModel({name:t.name}),n("click",y);return}}function p(y){aa(y,[13,32])?m(y,!0):jr(y)!==!0&&y.keyCode>=35&&y.keyCode<=40&&y.altKey!==!0&&y.metaKey!==!0&&s.onKbdNavigate(y.keyCode,o.$el)===!0&&At(y),n("keydown",y)}function v(){const y=s.tabProps.value.narrowIndicator,w=[],x=S("div",{ref:l,class:["q-tab__indicator",s.tabProps.value.indicatorClass]});t.icon!==void 0&&w.push(S(we,{class:"q-tab__icon",name:t.icon})),t.label!==void 0&&w.push(S("div",{class:"q-tab__label"},t.label)),t.alert!==!1&&w.push(t.alertIcon!==void 0?S(we,{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}`:"")})),y===!0&&w.push(x);const M=[S("div",{class:"q-focus-helper",tabindex:-1,ref:a}),S("div",{class:f.value},mi(e.default,w))];return y===!1&&M.push(x),M}const b={name:g(()=>t.name),rootRef:r,tabIndicatorRef:l,routeData:i};Rt(()=>{s.unregisterTab(b)}),hn(()=>{s.registerTab(b)});function _(y,w){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:m,onKeydown:p,...w};return sn(S(y,x,v()),[[Td,u.value]])}return{renderTab:_,$tabs:s}}const Fa=Be({name:"QTab",props:Ug,emits:jg,setup(t,{slots:e,emit:n}){const{renderTab:i}=Yg(t,e,n);return()=>i("div")}});let Rs=!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,Rs=t.scrollLeft>=0,t.remove()}function Zg(t,e,n){const i=n===!0?["left","right"]:["top","bottom"];return`absolute-${e===!0?i[0]:i[1]}${t?` text-${t}`:""}`}const Xg=["left","center","right","justify"],Kg=Be({name:"QTabs",props:{modelValue:[Number,String],align:{type:String,default:"center",validator:t=>Xg.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}=Ps(),{registerTick:a}=Ps(),{registerTick:r}=Ps(),{registerTimeout:l,removeTimeout:u}=Ls(),{registerTimeout:c,removeTimeout:d}=Ls(),f=B(null),h=B(null),m=B(t.modelValue),p=B(!1),v=B(!0),b=B(!1),_=B(!1),y=[],w=B(0),x=B(!1);let M=null,E=null,L;const O=g(()=>({activeClass:t.activeClass,activeColor:t.activeColor,activeBgColor:t.activeBgColor,indicatorClass:Zg(t.indicatorColor,t.switchIndicator,t.vertical),narrowIndicator:t.narrowIndicator,inlineLabel:t.inlineLabel,noCaps:t.noCaps})),D=g(()=>{const N=w.value,W=m.value;for(let te=0;te`q-tabs__content--align-${p.value===!0?"left":_.value===!0?"justify":t.align}`),T=g(()=>`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":"")),j=g(()=>"q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position "+R.value+(t.contentClass!==void 0?` ${t.contentClass}`:"")),F=g(()=>t.vertical===!0?{container:"height",content:"offsetHeight",scroll:"scrollHeight"}:{container:"width",content:"offsetWidth",scroll:"scrollWidth"}),Y=g(()=>t.vertical!==!0&&s.lang.rtl===!0),U=g(()=>Rs===!1&&Y.value===!0);he(Y,I),he(()=>t.modelValue,N=>{J({name:N,setCurrent:!0,skipEmit:!0})}),he(()=>t.outsideArrows,Z);function J({name:N,setCurrent:W,skipEmit:te}){m.value!==N&&(te!==!0&&t["onUpdate:modelValue"]!==void 0&&n("update:modelValue",N),(W===!0||t["onUpdate:modelValue"]===void 0)&&(de(m.value,N),m.value=N))}function Z(){o(()=>{f.value&&ae({width:f.value.offsetWidth,height:f.value.offsetHeight})})}function ae(N){if(F.value===void 0||h.value===null)return;const W=N[F.value.container],te=Math.min(h.value[F.value.scroll],Array.prototype.reduce.call(h.value.children,(Ee,Pe)=>Ee+(Pe[F.value.content]||0),0)),ie=W>0&&te>W;p.value=ie,ie===!0&&a(I),_.value=WEe.name.value===N):null,ie=W!=null&&W!==""?y.find(Ee=>Ee.name.value===W):null;if(dt===!0)dt=!1;else if(te&&ie){const Ee=te.tabIndicatorRef.value,Pe=ie.tabIndicatorRef.value;M!==null&&(clearTimeout(M),M=null),Ee.style.transition="none",Ee.style.transform="none",Pe.style.transition="none",Pe.style.transform="none";const De=Ee.getBoundingClientRect(),ot=Pe.getBoundingClientRect();Pe.style.transform=t.vertical===!0?`translate3d(0,${De.top-ot.top}px,0) scale3d(1,${ot.height?De.height/ot.height:1},1)`:`translate3d(${De.left-ot.left}px,0,0) scale3d(${ot.width?De.width/ot.width:1},1,1)`,r(()=>{M=setTimeout(()=>{M=null,Pe.style.transition="transform .25s cubic-bezier(.4, 0, .2, 1)",Pe.style.transform="none"},70)})}ie&&p.value===!0&&V(ie.rootRef.value)}function V(N){const{left:W,width:te,top:ie,height:Ee}=h.value.getBoundingClientRect(),Pe=N.getBoundingClientRect();let De=t.vertical===!0?Pe.top-ie:Pe.left-W;if(De<0){h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.floor(De),I();return}De+=t.vertical===!0?Pe.height-Ee:Pe.width-te,De>0&&(h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.ceil(De),I())}function I(){const N=h.value;if(N===null)return;const W=N.getBoundingClientRect(),te=t.vertical===!0?N.scrollTop:Math.abs(N.scrollLeft);Y.value===!0?(v.value=Math.ceil(te+W.width)0):(v.value=te>0,b.value=t.vertical===!0?Math.ceil(te+W.height){Q(N)===!0&&z()},5)}function ce(){G(U.value===!0?Number.MAX_SAFE_INTEGER:0)}function me(){G(U.value===!0?0:Number.MAX_SAFE_INTEGER)}function z(){E!==null&&(clearInterval(E),E=null)}function ee(N,W){const te=Array.prototype.filter.call(h.value.children,ot=>ot===W||ot.matches&&ot.matches(".q-tab.q-focusable")===!0),ie=te.length;if(ie===0)return;if(N===36)return V(te[0]),te[0].focus(),!0;if(N===35)return V(te[ie-1]),te[ie-1].focus(),!0;const Ee=N===(t.vertical===!0?38:37),Pe=N===(t.vertical===!0?40:39),De=Ee===!0?-1:Pe===!0?1:void 0;if(De!==void 0){const ot=Y.value===!0?-1:1,nt=te.indexOf(W)+De*ot;return nt>=0&&ntU.value===!0?{get:N=>Math.abs(N.scrollLeft),set:(N,W)=>{N.scrollLeft=-W}}:t.vertical===!0?{get:N=>N.scrollTop,set:(N,W)=>{N.scrollTop=W}}:{get:N=>N.scrollLeft,set:(N,W)=>{N.scrollLeft=W}});function Q(N){const W=h.value,{get:te,set:ie}=Me.value;let Ee=!1,Pe=te(W);const De=N=N)&&(Ee=!0,Pe=N),ie(W,Pe),I(),Ee}function Le(N,W){for(const te in N)if(N[te]!==W[te])return!1;return!0}function tt(){let N=null,W={matchedLen:0,queryDiff:9999,hrefLen:0};const te=y.filter(De=>De.routeData?.hasRouterLink.value===!0),{hash:ie,query:Ee}=i.$route,Pe=Object.keys(Ee).length;for(const De of te){const ot=De.routeData.exact.value===!0;if(De.routeData[ot===!0?"linkIsExactActive":"linkIsActive"].value!==!0)continue;const{hash:nt,query:wt,matched:$t,href:H}=De.routeData.resolvedLink.value,ge=Object.keys(wt).length;if(ot===!0){if(nt!==ie||ge!==Pe||Le(Ee,wt)===!1)continue;N=De.name.value;break}if(nt!==""&&nt!==ie||ge!==0&&Le(wt,Ee)===!1)continue;const Se={matchedLen:$t.length,queryDiff:Pe-ge,hrefLen:H.length-nt.length};if(Se.matchedLen>W.matchedLen){N=De.name.value,W=Se;continue}else if(Se.matchedLen!==W.matchedLen)continue;if(Se.queryDiffW.hrefLen&&(N=De.name.value,W=Se)}if(N===null&&y.some(De=>De.routeData===void 0&&De.name.value===m.value)===!0){dt=!1;return}J({name:N,setCurrent:!0})}function Ot(N){if(u(),x.value!==!0&&f.value!==null&&N.target&&typeof N.target.closest=="function"){const W=N.target.closest(".q-tab");W&&f.value.contains(W)===!0&&(x.value=!0,p.value===!0&&V(W))}}function ct(){l(()=>{x.value=!1},30)}function yt(){Mt.avoidRouteWatcher===!1?c(tt):d()}function mt(){if(L===void 0){const N=he(()=>i.$route.fullPath,yt);L=()=>{N(),L=void 0}}}function xt(N){y.push(N),w.value++,Z(),N.routeData===void 0||i.$route===void 0?c(()=>{if(p.value===!0){const W=m.value,te=W!=null&&W!==""?y.find(ie=>ie.name.value===W):null;te&&V(te.rootRef.value)}}):(mt(),N.routeData.hasRouterLink.value===!0&&yt())}function gt(N){y.splice(y.indexOf(N),1),w.value--,Z(),L!==void 0&&N.routeData!==void 0&&(y.every(W=>W.routeData===void 0)===!0&&L(),yt())}const Mt={currentModel:m,tabProps:O,hasFocus:x,hasActiveTab:D,registerTab:xt,unregisterTab:gt,verifyRouteModel:yt,updateModel:J,onKbdNavigate:ee,avoidRouteWatcher:!1};ng(Pd,Mt);function Wt(){M!==null&&clearTimeout(M),z(),L?.()}let Vt,dt;return Rt(Wt),ra(()=>{Vt=L!==void 0,Wt()}),la(()=>{Vt===!0&&(mt(),dt=!0,yt()),Z()}),()=>S("div",{ref:f,class:T.value,role:"tablist",onFocusin:Ot,onFocusout:ct},[S(Tg,{onResize:ae}),S("div",{ref:h,class:j.value,onScroll:I},et(e.default)),S(we,{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:ce,onTouchstartPassive:ce,onMouseupPassive:z,onMouseleavePassive:z,onTouchendPassive:z}),S(we,{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:me,onTouchstartPassive:me,onMouseupPassive:z,onMouseleavePassive:z,onTouchendPassive:z})])}});function Qg(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 Gg=Id({name:"touch-swipe",beforeMount(t,{value:e,arg:n,modifiers:i}){if(i.mouse!==!0&&zn.has.touch!==!0)return;const s=i.mouseCapture===!0?"Capture":"",o={handler:e,sensitivity:Qg(n),direction:Hl(i),noop:Dd,mouseStart(a){jl(a,o)&&ig(a)&&(io(o,"temp",[[document,"mousemove","move",`notPassive${s}`],[document,"mouseup","end","notPassiveCapture"]]),o.start(a,!0))},touchStart(a){if(jl(a,o)){const r=a.target;io(o,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","notPassiveCapture"],[r,"touchend","end","notPassiveCapture"]]),o.start(a)}},start(a,r){zn.is.firefox===!0&&Ra(t,!0);const l=Ro(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){At(a);return}const r=Date.now()-o.event.time;if(r===0)return;const l=Ro(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&&m>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?(At(a),o.event.mouse===!0&&(document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),Ig(),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&&(La(o,"temp"),zn.is.firefox===!0&&Ra(t,!1),o.styleCleanup?.(!0),a!==void 0&&o.event.dir!==!1&&At(a),o.event=void 0)}};if(t.__qtouchswipe=o,i.mouse===!0){const a=i.mouseCapture===!0||i.mousecapture===!0?"Capture":"";io(o,"main",[[t,"mousedown","mouseStart",`passive${a}`]])}zn.has.touch===!0&&io(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=Hl(e.modifiers))},beforeUnmount(t){const e=t.__qtouchswipe;e!==void 0&&(La(e,"main"),La(e,"temp"),zn.is.firefox===!0&&Ra(t,!1),e.styleCleanup?.(),delete t.__qtouchswipe)}});function Jg(){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 Ud={name:{required:!0},disable:Boolean},Ql={setup(t,{slots:e}){return()=>S("div",{class:"q-panel scroll",role:"tabpanel"},et(e.default))}},Yd={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},Zd=["update:modelValue","beforeTransition","transition"];function Xd(){const{props:t,emit:e,proxy:n}=Ue(),{getCache:i}=Jg(),{registerTimeout:s}=Ls();let o,a;const r=B(null),l={value:null};function u(F){const Y=t.vertical===!0?"up":"left";L((n.$q.lang.rtl===!0?-1:1)*(F.direction===Y?1:-1))}const c=g(()=>[[Gg,u,void 0,{horizontal:t.vertical!==!0,vertical:t.vertical,mouse:!0}]]),d=g(()=>t.transitionPrev||`slide-${t.vertical===!0?"down":"right"}`),f=g(()=>t.transitionNext||`slide-${t.vertical===!0?"up":"left"}`),h=g(()=>`--q-transition-duration: ${t.transitionDuration}ms`),m=g(()=>typeof t.modelValue=="string"||typeof t.modelValue=="number"?t.modelValue:String(t.modelValue)),p=g(()=>({include:t.keepAliveInclude,exclude:t.keepAliveExclude,max:t.keepAliveMax})),v=g(()=>t.keepAliveInclude!==void 0||t.keepAliveExclude!==void 0);he(()=>t.modelValue,(F,Y)=>{const U=w(F)===!0?x(F):-1;a!==!0&&E(U===-1?0:U{e("transition",F,Y)},t.transitionDuration))});function b(){L(1)}function _(){L(-1)}function y(F){e("update:modelValue",F)}function w(F){return F!=null&&F!==""}function x(F){return o.findIndex(Y=>Y.props.name===F&&Y.props.disable!==""&&Y.props.disable!==!0)}function M(){return o.filter(F=>F.props.disable!==""&&F.props.disable!==!0)}function E(F){const Y=F!==0&&t.animated===!0&&l.value!==-1?"q-transition--"+(F===-1?d.value:f.value):null;r.value!==Y&&(r.value=Y)}function L(F,Y=l.value){let U=Y+F;for(;U!==-1&&U{a=!1});return}U+=F}t.infinite===!0&&o.length!==0&&Y!==-1&&Y!==o.length&&L(F,F===-1?o.length:-1)}function O(){const F=x(t.modelValue);return l.value!==F&&(l.value=F),!0}function D(){const F=w(t.modelValue)===!0&&O()&&o[l.value];return t.keepAlive===!0?[S(og,p.value,[S(v.value===!0?i(m.value,()=>({...Ql,name:m.value})):Ql,{key:m.value,style:h.value},()=>F)])]:[S("div",{class:"q-panel scroll",style:h.value,key:m.value,role:"tabpanel"},[F])]}function R(){if(o.length!==0)return t.animated===!0?[S(As,{name:r.value},D)]:D()}function T(F){return o=sg(et(F.default,[])).filter(Y=>Y.props!==null&&Y.props.slot===void 0&&w(Y.props.name)===!0),o.length}function j(){return o}return Object.assign(n,{next:b,previous:_,goTo:y}),{panelIndex:l,panelDirectives:c,updatePanelsList:T,updatePanelIndex:O,getPanelContent:R,getEnabledPanels:M,getPanels:j,isValidPanelName:w,keepAliveProps:p,needsUniqueKeepAliveWrapper:v,goToPanelByOffset:L,goToPanel:y,nextPanel:b,previousPanel:_}}const za=Be({name:"QTabPanel",props:Ud,setup(t,{slots:e}){return()=>S("div",{class:"q-tab-panel",role:"tabpanel"},et(e.default))}}),ev=Be({name:"QTabPanels",props:{...Yd,...mn},emits:Zd,setup(t,{slots:e}){const n=Ue(),i=gn(t,n.proxy.$q),{updatePanelsList:s,getPanelContent:o,panelDirectives:a}=Xd(),r=g(()=>"q-tab-panels q-panel-parent"+(i.value===!0?" q-tab-panels--dark q-dark":""));return()=>(s(e),ua("div",{class:r.value},o(),"pan",t.swipeable,()=>a.value))}}),tv=Be({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(t,{slots:e}){const{proxy:{$q:n}}=Ue(),i=Lo(ag,Pn);if(i===Pn)return console.error("QPage needs to be a deep child of QLayout"),Pn;if(Lo(rg,Pn)===Pn)return console.error("QPage needs to be child of QPageContainer"),Pn;const o=g(()=>{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=g(()=>`q-page${t.padding===!0?" q-layout-padding":""}`);return()=>S("main",{class:a.value,style:o.value},et(e.default))}}),Kd=Be({name:"QCarouselSlide",props:{...Ud,imgSrc:String},setup(t,{slots:e}){const n=g(()=>t.imgSrc?{backgroundImage:`url("${t.imgSrc}")`}:{});return()=>S("div",{class:"q-carousel__slide",style:n.value},et(e.default))}}),nv=Be({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=g(()=>`q-carousel__control absolute absolute-${t.position}`),i=g(()=>({margin:`${t.offset[1]}px ${t.offset[0]}px`}));return()=>S("div",{class:n.value,style:i.value},et(e.default))}});let us=0;const Qd={fullscreen:Boolean,noRouteFullscreenExit:Boolean},Gd=["update:fullscreen","fullscreen"];function Jd(){const t=Ue(),{props:e,emit:n,proxy:i}=t;let s,o,a;const r=B(!1);lg(t)===!0&&he(()=>i.$route.fullPath,()=>{e.noRouteFullscreenExit!==!0&&c()}),he(()=>e.fullscreen,d=>{r.value!==d&&l()}),he(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),us++,us===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,us=Math.max(0,us-1),us===0&&(document.body.classList.remove("q-body--fullscreen-mixin"),i.$el.scrollIntoView!==void 0&&setTimeout(()=>{i.$el.scrollIntoView()})))}return Ur(()=>{o=document.createElement("span")}),hn(()=>{e.fullscreen===!0&&u()}),Rt(c),Object.assign(i,{toggleFullscreen:l,setFullscreen:u,exitFullscreen:c}),{inFullscreen:r,toggleFullscreen:l}}const iv=["top","right","bottom","left"],sv=["regular","flat","outline","push","unelevated"],ef=Be({name:"QCarousel",props:{...mn,...Yd,...Qd,transitionPrev:{type:String,default:"fade"},transitionNext:{type:String,default:"fade"},height:String,padding:Boolean,controlColor:String,controlTextColor:String,controlType:{type:String,validator:t=>sv.includes(t),default:"flat"},autoplay:[Number,Boolean],arrows:Boolean,prevIcon:String,nextIcon:String,navigation:Boolean,navigationPosition:{type:String,validator:t=>iv.includes(t)},navigationIcon:String,navigationActiveIcon:String,thumbnails:Boolean},emits:[...Gd,...Zd],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}=Xd(),{inFullscreen:m}=Jd(),p=g(()=>m.value!==!0&&t.height!==void 0?{height:t.height}:{}),v=g(()=>t.vertical===!0?"vertical":"horizontal"),b=g(()=>t.navigationPosition||(t.vertical===!0?"right":"bottom")),_=g(()=>`q-carousel q-panel-parent q-carousel--with${t.padding===!0?"":"out"}-padding`+(m.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}`:"")),y=g(()=>{const D=[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?D.reverse():D}),w=g(()=>t.navigationIcon||n.iconSet.carousel.navigationIcon),x=g(()=>t.navigationActiveIcon||w.value),M=g(()=>({color:t.controlColor,textColor:t.controlTextColor,round:!0,[t.controlType]:!0,dense:!0}));he(()=>t.modelValue,()=>{t.autoplay&&E()}),he(()=>t.autoplay,D=>{D?E():s!==null&&(clearTimeout(s),s=null)});function E(){const D=qs(t.autoplay)===!0?Math.abs(t.autoplay):5e3;s!==null&&clearTimeout(s),s=setTimeout(()=>{s=null,D>=0?d():c()},D)}hn(()=>{t.autoplay&&E()}),Rt(()=>{s!==null&&clearTimeout(s)});function L(D,R){return S("div",{class:`q-carousel__control q-carousel__navigation no-wrap absolute flex q-carousel__navigation--${D} 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(R))])}function O(){const D=[];if(t.navigation===!0){const R=e["navigation-icon"]!==void 0?e["navigation-icon"]:j=>S(ke,{key:"nav"+j.name,class:`q-carousel__navigation-icon q-carousel__navigation-icon--${j.active===!0?"":"in"}active`,...j.btnProps,onClick:j.onClick}),T=o-1;D.push(L("buttons",(j,F)=>{const Y=j.props.name,U=h.value===F;return R({index:F,maxIndex:T,name:Y,active:U,btnProps:{icon:U===!0?x.value:w.value,size:"sm",...M.value},onClick:()=>{u(Y)}})}))}else if(t.thumbnails===!0){const R=t.controlColor!==void 0?` text-${t.controlColor}`:"";D.push(L("thumbnails",T=>{const j=T.props;return S("img",{key:"tmb#"+j.name,class:`q-carousel__thumbnail q-carousel__thumbnail--${j.name===t.modelValue?"":"in"}active`+R,src:j.imgSrc||j["img-src"],onClick:()=>{u(j.name)}})}))}return t.arrows===!0&&h.value>=0&&((t.infinite===!0||h.value>0)&&D.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(ke,{icon:y.value[0],...M.value,onClick:c})])),(t.infinite===!0||h.value(o=a(e),S("div",{class:_.value,style:p.value},[ua("div",{class:"q-carousel__slides-container"},r(),"sl-cont",t.swipeable,()=>l.value)].concat(O())))}}),ov={class:"svg-container"},av=["viewBox"],rv={id:"layer1",style:{display:"inline"}},lv=["d"],uv={id:"layer2",style:{display:"inline"}},cv=["cx","cy","r"],dv=["transform","onClick"],fv=["id"],hv=["x","y","width","height"],mv=["id"],gv=["x","y","width","height","rx","ry"],vv=["x","y","width","height","rx","ry"],pv=["clip-path"],bv=["id","x","y"],yv=["id","values"],xv=["id","x","y"],wv=["transform"],_v=["r"],Sv=["r"],kv=["r","clip-path"],Cv=["href","x","y","height","width"],Mv=ye({__name:"EnergyFlowChart",setup(t){Od(W=>({18478186:s.value,"78e1d2fe":r.value}));const e=Fe(),n=B({xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3}),i=g(()=>`${n.value.xMin} ${n.value.yMin} ${n.value.xMax} ${n.value.yMax}`),s=g(()=>n.value.strokeWidth),o=g(()=>n.value.circleRadius),a=g(()=>n.value.circleRadius),r=g(()=>`${n.value.textSize}px`),l=W=>{let te={...W};return te.textValue&&(te.textValue=te.textValue.replace(/^-/,"")),te.value&&(te.value=Math.abs(te.value)),te.scaledValue&&(te.scaledValue=Math.abs(te.scaledValue)),te},u=g(()=>e.getGridPower("object")),c=g(()=>Number(u.value.value)>0),d=g(()=>Number(u.value.value)<0),f=g(()=>e.batteryTotalPower("object")),h=g(()=>Number(e.batteryTotalPower("value"))<0),m=g(()=>Number(e.batteryTotalPower("value"))>0),p=g(()=>Number(e.batterySocTotal)/100),v=g(()=>e.getHomePower("object")),b=g(()=>Number(v.value.value)>0),_=g(()=>Number(v.value.value)<0),y=g(()=>e.getPvPower("object")),w=g(()=>Number(y.value.value)<0),x=g(()=>Number(y.value.value)>0),M=g(()=>e.chargePointIds),E=g(()=>e.chargePointName(M.value[0])||"---"),L=g(()=>e.chargePointName(M.value[1])||"---"),O=g(()=>e.chargePointName(M.value[2])||"---"),D=g(()=>M.value.length>0?e.chargePointPower(M.value[0],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),R=g(()=>M.value.length>0?e.chargePointPower(M.value[1],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),T=g(()=>M.value.length>0?e.chargePointPower(M.value[2],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),j=g(()=>Number(D.value.value)>0),F=g(()=>Number(D.value.value)<0),Y=g(()=>Number(R.value.value)>0),U=g(()=>Number(R.value.value)<0),J=g(()=>Number(T.value.value)>0),Z=g(()=>Number(T.value.value)<0),ae=W=>{switch(W){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"}}},de=g(()=>e.chargePointPlugState(M.value[0])),V=g(()=>{const W=e.chargePointConnectedVehicleChargeMode(M.value[0]);return ae(W.value||"")}),I=g(()=>e.chargePointConnectedVehicleInfo(M.value[0]).value?.name||"---"),G=g(()=>e.chargePointConnectedVehicleSoc(M.value[0])),ce=g(()=>e.chargePointPlugState(M.value[1])),me=g(()=>{const W=e.chargePointConnectedVehicleChargeMode(M.value[1]);return ae(W.value||"")}),z=g(()=>e.chargePointConnectedVehicleInfo(M.value[1]).value?.name||"---"),ee=g(()=>e.chargePointConnectedVehicleSoc(M.value[1])),Me=g(()=>e.chargePointPlugState(M.value[2])),Q=g(()=>{const W=e.chargePointConnectedVehicleChargeMode(M.value[2]);return ae(W.value||"")}),Le=g(()=>e.chargePointConnectedVehicleInfo(M.value[2]).value?.name||"---"),tt=g(()=>e.chargePointConnectedVehicleSoc(M.value[2])),Ot=g(()=>e.chargePointSumPower("object")),ct=g(()=>Number(Ot.value.value)<0),yt=g(()=>Number(Ot.value.value)>0),mt=g(()=>{const W=[];return W.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"}),W.push({id:"home",class:{base:"home",valueLabel:"",animated:_.value,animatedReverse:b.value},position:{row:0,column:2},label:["Haus",l(v.value).textValue],icon:"icons/owbHouse.svg"}),e.getPvConfigured&&W.push({id:"pv",class:{base:"pv",valueLabel:"fill-success",animated:w.value,animatedReverse:x.value},position:{row:1,column:0},label:["PV",l(y.value).textValue],icon:"icons/owbPV.svg"}),e.batteryConfigured&&W.push({id:"battery",class:{base:"battery",valueLabel:"",animated:h.value,animatedReverse:m.value},position:{row:1,column:2},label:["Speicher",l(f.value).textValue],soc:p.value,icon:"icons/owbBattery.svg"}),M.value.length>0&&(M.value.length<=3?(W.push({id:"charge-point-1",class:{base:"charge-point",valueLabel:"",animated:F.value,animatedReverse:j.value},position:{row:2,column:M.value.length>1?0:1},label:[E.value,l(D.value).textValue],icon:"icons/owbChargePoint.svg"}),de.value&&W.push({id:"vehicle-1",class:{base:"vehicle",valueLabel:"fill-"+V.value.class,animated:F.value,animatedReverse:j.value},position:{row:3,column:M.value.length>1?0:1},label:[I.value||"---",V.value.label||"---"],soc:(G.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),M.value.length>1&&W.push({id:"charge-point-2",class:{base:"charge-point",valueLabel:"",animated:U.value,animatedReverse:Y.value},position:{row:2,column:M.value.length>2?1:2},label:[L.value,l(R.value).textValue],icon:"icons/owbChargePoint.svg"}),ce.value&&W.push({id:"vehicle-2",class:{base:"vehicle",valueLabel:"fill-"+me.value.class,animated:U.value,animatedReverse:Y.value},position:{row:3,column:M.value.length>2?1:2},label:[z.value||"---",me.value.label||"---"],soc:(ee.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),M.value.length>2&&W.push({id:"charge-point-3",class:{base:"charge-point",valueLabel:"",animated:Z.value,animatedReverse:J.value},position:{row:2,column:2},label:[O.value,l(T.value).textValue],icon:"icons/owbChargePoint.svg"}),Me.value&&W.push({id:"vehicle-3",class:{base:"vehicle",valueLabel:"fill-"+Q.value.class,animated:Z.value,animatedReverse:J.value},position:{row:3,column:2},label:[Le.value||"---",Q.value.label||"---"],soc:(tt.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"})):W.push({id:"charge-point-sum",class:{base:"charge-point",valueLabel:"",animated:ct.value,animatedReverse:yt.value},position:{row:2,column:1},label:["Ladepunkte",l(Ot.value).textValue],icon:"icons/owbChargePoint.svg"})),W}),xt=g(()=>M.value?.length>0?M.value.length>3?3:4:3);he(xt,W=>{n.value.numRows=W},{immediate:!0});const gt=W=>{const te=n.value.yMin+n.value.strokeWidth+n.value.circleRadius,Ee=n.value.yMax-n.value.strokeWidth-n.value.circleRadius-te;return W*(Ee/(n.value.numRows-1))+te},Mt=W=>{const te=n.value.xMin+n.value.strokeWidth+N.value/2,Ee=n.value.xMax-n.value.strokeWidth-N.value/2-te;return W*(Ee/(n.value.numColumns-1))+te},Wt=W=>{const te=Mt(W);return W<(n.value.numColumns-1)/2?te+N.value/2-n.value.circleRadius:W>(n.value.numColumns-1)/2?te-N.value/2+n.value.circleRadius:te},Vt=W=>{const te=document.getElementById(W);if(te==null||!(te instanceof SVGGraphicsElement))return{x:0,y:0,width:0,height:0};const ie=te.getBBox();return{x:ie.x,y:ie.y,width:ie.width,height:ie.height}},dt=W=>{const te=document.querySelector(`#${W}`);te&&te.beginElement()},N=g(()=>(n.value.xMax-n.value.xMin-n.value.strokeWidth-n.value.numColumns)/n.value.numColumns);return(W,te)=>(P(),K("div",ov,[(P(),K("svg",{viewBox:i.value,version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},[q("g",rv,[(P(!0),K(Oe,null,Xe(mt.value,ie=>(P(),K("path",{key:ie.id,class:Re([ie.class.base,{animated:ie.class.animated},{animatedReverse:ie.class.animatedReverse}]),d:ie.class.base!=="vehicle"?`M ${Wt(ie.position.column)}, ${gt(ie.position.row)} ${Mt(1)}, ${gt(1)}`:`M ${Wt(ie.position.column)}, ${gt(ie.position.row)} ${Wt(ie.position.column)}, ${gt(ie.position.row-1)}`},null,10,lv))),128))]),q("g",uv,[q("circle",{id:"center",cx:Mt(1),cy:gt(1),r:n.value.circleRadius/3},null,8,cv),(P(!0),K(Oe,null,Xe(mt.value,ie=>(P(),K("g",{key:ie.id,class:Re(ie.class.base),transform:`translate(${Mt(ie.position.column)}, ${gt(ie.position.row)})`,onClick:Ee=>dt(`animate-label-${ie.id}`)},[q("defs",null,[ie.soc?(P(),K("clipPath",{key:0,id:`clip-soc-${ie.id}`},[q("rect",{x:-n.value.circleRadius-n.value.strokeWidth,y:(n.value.circleRadius+n.value.strokeWidth)*(1-2*ie.soc),width:(n.value.circleRadius+n.value.strokeWidth)*2,height:(n.value.circleRadius+n.value.strokeWidth)*2*ie.soc},null,8,hv)],8,fv)):ue("",!0),q("clipPath",{id:`clip-label-${ie.id}`},[q("rect",{x:-N.value/2,y:-n.value.circleRadius,width:N.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,gv)],8,mv)]),q("rect",{x:-N.value/2,y:-n.value.circleRadius,width:N.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,vv),q("text",{"clip-path":`url(#clip-label-${ie.id})`},[q("tspan",{id:`label-${ie.id}`,"text-anchor":"start",x:-N.value/2+2*n.value.circleRadius+n.value.strokeWidth,y:-n.value.textSize/2},[Vt(`label-${ie.id}`).width>N.value-2*n.value.circleRadius-2*n.value.strokeWidth?(P(),K("animate",{key:0,id:`animate-label-${ie.id}`,xmlns:"http://www.w3.org/2000/svg",attributeName:"x",dur:"5s",values:"0; "+(-Vt(`label-${ie.id}`).width+N.value-2.5*n.value.circleRadius-2*n.value.strokeWidth)+"; 0;",repeatCount:"0",additive:"sum"},null,8,yv)):ue("",!0),Ve(" "+oe(ie.label[0]),1)],8,bv),q("tspan",{id:`value-${ie.id}`,class:Re(ie.class.valueLabel),"text-anchor":"end",x:2*n.value.circleRadius+n.value.strokeWidth,y:n.value.textSize},oe(ie.label[1]),11,xv)],8,pv),q("g",{transform:`translate(${n.value.circleRadius-N.value/2}, 0)`},[q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:"background-circle"},null,8,_v),q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:Re({soc:ie.soc})},null,10,Sv),ie.soc?(P(),K("circle",{key:0,cx:"0",cy:"0",r:n.value.circleRadius,"clip-path":`url(#clip-soc-${ie.id})`},null,8,kv)):ue("",!0),q("image",{href:ie.icon,x:-o.value/2,y:-a.value/2,height:a.value,width:o.value},null,8,Cv)],8,wv)],10,dv))),128))])],8,av))]))}}),Pv=ht(Mv,[["__scopeId","data-v-130920c7"]]);/*! + * @kurkle/color v0.3.4 + * https://github.com/kurkle/color#readme + * (c) 2024 Jukka Kurkela + * Released under the MIT License + */function js(t){return t+.5|0}const Wn=(t,e,n)=>Math.max(Math.min(t,n),e);function ys(t){return Wn(js(t*2.55),0,255)}function jn(t){return Wn(js(t*255),0,255)}function Dn(t){return Wn(js(t/2.55)/100,0,1)}function Gl(t){return Wn(js(t*100),0,100)}const Gt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},gr=[..."0123456789ABCDEF"],Tv=t=>gr[t&15],Iv=t=>gr[(t&240)>>4]+gr[t&15],oo=t=>(t&240)>>4===(t&15),Dv=t=>oo(t.r)&&oo(t.g)&&oo(t.b)&&oo(t.a);function Ov(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&Gt[t[1]]*17,g:255&Gt[t[2]]*17,b:255&Gt[t[3]]*17,a:e===5?Gt[t[4]]*17:255}:(e===7||e===9)&&(n={r:Gt[t[1]]<<4|Gt[t[2]],g:Gt[t[3]]<<4|Gt[t[4]],b:Gt[t[5]]<<4|Gt[t[6]],a:e===9?Gt[t[7]]<<4|Gt[t[8]]:255})),n}const Vv=(t,e)=>t<255?e(t):"";function Ev(t){var e=Dv(t)?Tv:Iv;return t?"#"+e(t.r)+e(t.g)+e(t.b)+Vv(t.a,e):void 0}const Av=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function tf(t,e,n){const i=e*Math.min(n,1-n),s=(o,a=(o+t/30)%12)=>n-i*Math.max(Math.min(a-3,9-a,1),-1);return[s(0),s(8),s(4)]}function qv(t,e,n){const i=(s,o=(s+t/60)%6)=>n-n*e*Math.max(Math.min(o,4-o,1),0);return[i(5),i(3),i(1)]}function Lv(t,e,n){const i=tf(t,1,.5);let s;for(e+n>1&&(s=1/(e+n),e*=s,n*=s),s=0;s<3;s++)i[s]*=1-e-n,i[s]+=e;return i}function Rv(t,e,n,i,s){return t===s?(e-n)/i+(e.5?c/(2-o-a):c/(o+a),l=Rv(n,i,s,c,o),l=l*60+.5),[l|0,u||0,r]}function Gr(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(jn)}function Jr(t,e,n){return Gr(tf,t,e,n)}function $v(t,e,n){return Gr(Lv,t,e,n)}function Fv(t,e,n){return Gr(qv,t,e,n)}function nf(t){return(t%360+360)%360}function zv(t){const e=Av.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?ys(+e[5]):jn(+e[5]));const s=nf(+e[2]),o=+e[3]/100,a=+e[4]/100;return e[1]==="hwb"?i=$v(s,o,a):e[1]==="hsv"?i=Fv(s,o,a):i=Jr(s,o,a),{r:i[0],g:i[1],b:i[2],a:n}}function Bv(t,e){var n=Qr(t);n[0]=nf(n[0]+e),n=Jr(n),t.r=n[0],t.g=n[1],t.b=n[2]}function Nv(t){if(!t)return;const e=Qr(t),n=e[0],i=Gl(e[1]),s=Gl(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${s}%, ${Dn(t.a)})`:`hsl(${n}, ${i}%, ${s}%)`}const Jl={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},eu={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Wv(){const t={},e=Object.keys(eu),n=Object.keys(Jl);let i,s,o,a,r;for(i=0;i>16&255,o>>8&255,o&255]}return t}let ao;function Hv(t){ao||(ao=Wv(),ao.transparent=[0,0,0,0]);const e=ao[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const jv=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Uv(t){const e=jv.exec(t);let n=255,i,s,o;if(e){if(e[7]!==i){const a=+e[7];n=e[8]?ys(a):Wn(a*255,0,255)}return i=+e[1],s=+e[3],o=+e[5],i=255&(e[2]?ys(i):Wn(i,0,255)),s=255&(e[4]?ys(s):Wn(s,0,255)),o=255&(e[6]?ys(o):Wn(o,0,255)),{r:i,g:s,b:o,a:n}}}function Yv(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${Dn(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const Ba=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,ki=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Zv(t,e,n){const i=ki(Dn(t.r)),s=ki(Dn(t.g)),o=ki(Dn(t.b));return{r:jn(Ba(i+n*(ki(Dn(e.r))-i))),g:jn(Ba(s+n*(ki(Dn(e.g))-s))),b:jn(Ba(o+n*(ki(Dn(e.b))-o))),a:t.a+n*(e.a-t.a)}}function ro(t,e,n){if(t){let i=Qr(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=Jr(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function sf(t,e){return t&&Object.assign(e||{},t)}function tu(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=jn(t[3]))):(e=sf(t,{r:0,g:0,b:0,a:1}),e.a=jn(e.a)),e}function Xv(t){return t.charAt(0)==="r"?Uv(t):zv(t)}class $s{constructor(e){if(e instanceof $s)return e;const n=typeof e;let i;n==="object"?i=tu(e):n==="string"&&(i=Ov(e)||Hv(e)||Xv(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=sf(this._rgb);return e&&(e.a=Dn(e.a)),e}set rgb(e){this._rgb=tu(e)}rgbString(){return this._valid?Yv(this._rgb):void 0}hexString(){return this._valid?Ev(this._rgb):void 0}hslString(){return this._valid?Nv(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,s=e.rgb;let o;const a=n===o?.5:n,r=2*a-1,l=i.a-s.a,u=((r*l===-1?r:(r+l)/(1+r*l))+1)/2;o=1-u,i.r=255&u*i.r+o*s.r+.5,i.g=255&u*i.g+o*s.g+.5,i.b=255&u*i.b+o*s.b+.5,i.a=a*i.a+(1-a)*s.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=Zv(this._rgb,e._rgb,n)),this}clone(){return new $s(this.rgb)}alpha(e){return this._rgb.a=jn(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=js(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return ro(this._rgb,2,e),this}darken(e){return ro(this._rgb,2,-e),this}saturate(e){return ro(this._rgb,1,e),this}desaturate(e){return ro(this._rgb,1,-e),this}rotate(e){return Bv(this._rgb,e),this}}/*! + * Chart.js v4.5.0 + * https://www.chartjs.org + * (c) 2025 Chart.js Contributors + * Released under the MIT License + */function Sn(){}const Kv=(()=>{let t=0;return()=>t++})();function Ke(t){return t==null}function Je(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function _e(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Ct(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function vn(t,e){return Ct(t)?t:e}function Ce(t,e){return typeof t>"u"?e:t}const Qv=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,of=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function je(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function Ne(t,e,n,i){let s,o,a;if(Je(t))for(o=t.length,s=0;st,x:t=>t.x,y:t=>t.y};function ep(t){const e=t.split("."),n=[];let i="";for(const s of e)i+=s,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function tp(t){const e=ep(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function zs(t,e){return(nu[e]||(nu[e]=tp(e)))(t)}function el(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Qt=t=>typeof t<"u",Yt=t=>typeof t=="function",iu=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function np(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const We=Math.PI,St=2*We,ip=St+We,zo=Number.POSITIVE_INFINITY,tl=We/180,It=We/2,en=We/4,Bo=We*2/3,rf=Math.log10,Hi=Math.sign;function Is(t,e,n){return Math.abs(t-e)s-o).pop(),e}function op(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function di(t){return!op(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function ap(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function rp(t,e,n){let i,s,o;for(i=0,s=t.length;il&&u=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function nl(t,e,n){n=n||(a=>t[a]1;)o=s+i>>1,n(o)?s=o:i=o;return{lo:s,hi:i}}const oi=(t,e,n,i)=>nl(t,n,i?s=>{const o=t[s][e];return ot[s][e]nl(t,n,i=>t[i][e]>=n);function dp(t,e,n){let i=0,s=t.length;for(;ii&&t[s-1]>n;)s--;return i>0||s{const i="_onData"+el(n),s=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...o){const a=s.apply(this,o);return t._chartjs.listeners.forEach(r=>{typeof r[i]=="function"&&r[i](...o)}),a}})})}function au(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,s=i.indexOf(e);s!==-1&&i.splice(s,1),!(i.length>0)&&(uf.forEach(o=>{delete t[o]}),delete t._chartjs)}function hp(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const cf=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function df(t,e){let n=[],i=!1;return function(...s){n=s,i||(i=!0,cf.call(window,()=>{i=!1,t.apply(e,n)}))}}function mp(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const ff=t=>t==="start"?"left":t==="end"?"right":"center",Xt=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2,gp=(t,e,n,i)=>t===(i?"left":"right")?n:t==="center"?(e+n)/2:e;function vp(t,e,n){const i=e.length;let s=0,o=i;if(t._sorted){const{iScale:a,vScale:r,_parsed:l}=t,u=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,c=a.axis,{min:d,max:f,minDefined:h,maxDefined:m}=a.getUserBounds();if(h){if(s=Math.min(oi(l,c,d).lo,n?i:oi(e,c,a.getPixelForValue(d)).lo),u){const p=l.slice(0,s+1).reverse().findIndex(v=>!Ke(v[r.axis]));s-=Math.max(0,p)}s=cn(s,0,i-1)}if(m){let p=Math.max(oi(l,a.axis,f,!0).hi+1,n?0:oi(e,c,a.getPixelForValue(f),!0).hi+1);if(u){const v=l.slice(p-1).findIndex(b=>!Ke(b[r.axis]));p+=Math.max(0,v)}o=cn(p,s,i)-s}else o=i-s}return{start:s,count:o}}function pp(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,s={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=s,!0;const o=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,s),o}const lo=t=>t===0||t===1,ru=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*St/n)),lu=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*St/n)+1,Ds={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*It)+1,easeOutSine:t=>Math.sin(t*It),easeInOutSine:t=>-.5*(Math.cos(We*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>lo(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>lo(t)?t:ru(t,.075,.3),easeOutElastic:t=>lo(t)?t:lu(t,.075,.3),easeInOutElastic(t){return lo(t)?t:t<.5?.5*ru(t*2,.1125,.45):.5+.5*lu(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-Ds.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?Ds.easeInBounce(t*2)*.5:Ds.easeOutBounce(t*2-1)*.5+.5};function il(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function uu(t){return il(t)?t:new $s(t)}function Na(t){return il(t)?t:new $s(t).saturate(.5).darken(.1).hexString()}const bp=["x","y","borderWidth","radius","tension"],yp=["color","borderColor","backgroundColor"];function xp(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:yp},numbers:{type:"number",properties:bp}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function wp(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const cu=new Map;function _p(t,e){e=e||{};const n=t+JSON.stringify(e);let i=cu.get(n);return i||(i=new Intl.NumberFormat(t,e),cu.set(n,i)),i}function sl(t,e,n){return _p(e,n).format(t)}const Sp={values(t){return Je(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let s,o=t;if(n.length>1){const u=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(u<1e-4||u>1e15)&&(s="scientific"),o=kp(t,n)}const a=rf(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:s,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),sl(t,i,l)}};function kp(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var hf={formatters:Sp};function Cp(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:hf.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const fi=Object.create(null),pr=Object.create(null);function Os(t,e){if(!e)return t;const n=e.split(".");for(let i=0,s=n.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,s)=>Na(s.backgroundColor),this.hoverBorderColor=(i,s)=>Na(s.borderColor),this.hoverColor=(i,s)=>Na(s.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return Wa(this,e,n)}get(e){return Os(this,e)}describe(e,n){return Wa(pr,e,n)}override(e,n){return Wa(fi,e,n)}route(e,n,i,s){const o=Os(this,e),a=Os(this,i),r="_"+n;Object.defineProperties(o,{[r]:{value:o[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[r],u=a[s];return _e(l)?Object.assign({},u,l):Ce(l,u)},set(l){this[r]=l}}})}apply(e){e.forEach(n=>n(this))}}var ut=new Mp({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[xp,wp,Cp]);function Pp(t){return!t||Ke(t.size)||Ke(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function du(t,e,n,i,s){let o=e[s];return o||(o=e[s]=t.measureText(s).width,n.push(s)),o>i&&(i=o),i}function Gn(t,e,n){const i=t.currentDevicePixelRatio,s=n!==0?Math.max(n/2,.5):0;return Math.round((e-s)*i)/i+s}function fu(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function br(t,e,n,i){mf(t,e,n,i,null)}function mf(t,e,n,i,s){let o,a,r,l,u,c,d,f;const h=e.pointStyle,m=e.rotation,p=e.radius;let v=(m||0)*tl;if(h&&typeof h=="object"&&(o=h.toString(),o==="[object HTMLImageElement]"||o==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(v),t.drawImage(h,-h.width/2,-h.height/2,h.width,h.height),t.restore();return}if(!(isNaN(p)||p<=0)){switch(t.beginPath(),h){default:s?t.ellipse(n,i,s/2,p,0,0,St):t.arc(n,i,p,0,St),t.closePath();break;case"triangle":c=s?s/2:p,t.moveTo(n+Math.sin(v)*c,i-Math.cos(v)*p),v+=Bo,t.lineTo(n+Math.sin(v)*c,i-Math.cos(v)*p),v+=Bo,t.lineTo(n+Math.sin(v)*c,i-Math.cos(v)*p),t.closePath();break;case"rectRounded":u=p*.516,l=p-u,a=Math.cos(v+en)*l,d=Math.cos(v+en)*(s?s/2-u:l),r=Math.sin(v+en)*l,f=Math.sin(v+en)*(s?s/2-u:l),t.arc(n-d,i-r,u,v-We,v-It),t.arc(n+f,i-a,u,v-It,v),t.arc(n+d,i+r,u,v,v+It),t.arc(n-f,i+a,u,v+It,v+We),t.closePath();break;case"rect":if(!m){l=Math.SQRT1_2*p,c=s?s/2:l,t.rect(n-c,i-l,2*c,2*l);break}v+=en;case"rectRot":d=Math.cos(v)*(s?s/2:p),a=Math.cos(v)*p,r=Math.sin(v)*p,f=Math.sin(v)*(s?s/2:p),t.moveTo(n-d,i-r),t.lineTo(n+f,i-a),t.lineTo(n+d,i+r),t.lineTo(n-f,i+a),t.closePath();break;case"crossRot":v+=en;case"cross":d=Math.cos(v)*(s?s/2:p),a=Math.cos(v)*p,r=Math.sin(v)*p,f=Math.sin(v)*(s?s/2:p),t.moveTo(n-d,i-r),t.lineTo(n+d,i+r),t.moveTo(n+f,i-a),t.lineTo(n-f,i+a);break;case"star":d=Math.cos(v)*(s?s/2:p),a=Math.cos(v)*p,r=Math.sin(v)*p,f=Math.sin(v)*(s?s/2:p),t.moveTo(n-d,i-r),t.lineTo(n+d,i+r),t.moveTo(n+f,i-a),t.lineTo(n-f,i+a),v+=en,d=Math.cos(v)*(s?s/2:p),a=Math.cos(v)*p,r=Math.sin(v)*p,f=Math.sin(v)*(s?s/2:p),t.moveTo(n-d,i-r),t.lineTo(n+d,i+r),t.moveTo(n+f,i-a),t.lineTo(n-f,i+a);break;case"line":a=s?s/2:Math.cos(v)*p,r=Math.sin(v)*p,t.moveTo(n-a,i-r),t.lineTo(n+a,i+r);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(v)*(s?s/2:p),i+Math.sin(v)*p);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function Bs(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.xe.top-n&&t.y0&&o.strokeColor!=="";let l,u;for(t.save(),t.font=s.string,Dp(t,o),l=0;l+t||0;function gf(t,e){const n={},i=_e(e),s=i?Object.keys(e):e,o=_e(t)?i?a=>Ce(t[a],t[e[a]]):a=>t[a]:()=>t;for(const a of s)n[a]=Lp(o(a));return n}function Rp(t){return gf(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Ei(t){return gf(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Bt(t){const e=Rp(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Dt(t,e){t=t||{},e=e||ut.font;let n=Ce(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=Ce(t.style,e.style);i&&!(""+i).match(Ap)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const s={family:Ce(t.family,e.family),lineHeight:qp(Ce(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:Ce(t.weight,e.weight),string:""};return s.string=Pp(s),s}function uo(t,e,n,i){let s,o,a;for(s=0,o=t.length;sn&&r===0?0:r+l;return{min:a(i,-Math.abs(o)),max:a(s,o)}}function vi(t,e){return Object.assign(Object.create(t),e)}function ol(t,e=[""],n,i,s=()=>t[0]){const o=n||t;typeof i>"u"&&(i=yf("_fallback",t));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:i,_getTarget:s,override:r=>ol([r,...t],e,o,i)};return new Proxy(a,{deleteProperty(r,l){return delete r[l],delete r._keys,delete t[0][l],!0},get(r,l){return pf(r,l,()=>Up(l,e,t,r))},getOwnPropertyDescriptor(r,l){return Reflect.getOwnPropertyDescriptor(r._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(r,l){return mu(r).includes(l)},ownKeys(r){return mu(r)},set(r,l,u){const c=r._storage||(r._storage=s());return r[l]=c[l]=u,delete r._keys,!0}})}function Ui(t,e,n,i){const s={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:vf(t,i),setContext:o=>Ui(t,o,n,i),override:o=>Ui(t.override(o),e,n,i)};return new Proxy(s,{deleteProperty(o,a){return delete o[a],delete t[a],!0},get(o,a,r){return pf(o,a,()=>zp(o,a,r))},getOwnPropertyDescriptor(o,a){return o._descriptors.allKeys?Reflect.has(t,a)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,a)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(o,a){return Reflect.has(t,a)},ownKeys(){return Reflect.ownKeys(t)},set(o,a,r){return t[a]=r,delete o[a],!0}})}function vf(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:s=e.allKeys}=t;return{allKeys:s,scriptable:n,indexable:i,isScriptable:Yt(n)?n:()=>n,isIndexable:Yt(i)?i:()=>i}}const Fp=(t,e)=>t?t+el(e):e,al=(t,e)=>_e(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function pf(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function zp(t,e,n){const{_proxy:i,_context:s,_subProxy:o,_descriptors:a}=t;let r=i[e];return Yt(r)&&a.isScriptable(e)&&(r=Bp(e,r,t,n)),Je(r)&&r.length&&(r=Np(e,r,t,a.isIndexable)),al(e,r)&&(r=Ui(r,s,o&&o[e],a)),r}function Bp(t,e,n,i){const{_proxy:s,_context:o,_subProxy:a,_stack:r}=n;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t);let l=e(o,a||i);return r.delete(t),al(t,l)&&(l=rl(s._scopes,s,t,l)),l}function Np(t,e,n,i){const{_proxy:s,_context:o,_subProxy:a,_descriptors:r}=n;if(typeof o.index<"u"&&i(t))return e[o.index%e.length];if(_e(e[0])){const l=e,u=s._scopes.filter(c=>c!==l);e=[];for(const c of l){const d=rl(u,s,t,c);e.push(Ui(d,o,a&&a[t],r))}}return e}function bf(t,e,n){return Yt(t)?t(e,n):t}const Wp=(t,e)=>t===!0?e:typeof t=="string"?zs(e,t):void 0;function Hp(t,e,n,i,s){for(const o of e){const a=Wp(n,o);if(a){t.add(a);const r=bf(a._fallback,n,s);if(typeof r<"u"&&r!==n&&r!==i)return r}else if(a===!1&&typeof i<"u"&&n!==i)return null}return!1}function rl(t,e,n,i){const s=e._rootScopes,o=bf(e._fallback,n,i),a=[...t,...s],r=new Set;r.add(i);let l=hu(r,a,n,o||n,i);return l===null||typeof o<"u"&&o!==n&&(l=hu(r,a,o,l,i),l===null)?!1:ol(Array.from(r),[""],s,o,()=>jp(e,n,i))}function hu(t,e,n,i,s){for(;n;)n=Hp(t,e,n,i,s);return n}function jp(t,e,n){const i=t._getTarget();e in i||(i[e]={});const s=i[e];return Je(s)&&_e(n)?n:s||{}}function Up(t,e,n,i){let s;for(const o of e)if(s=yf(Fp(o,t),n),typeof s<"u")return al(t,s)?rl(n,i,t,s):s}function yf(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function mu(t){let e=t._keys;return e||(e=t._keys=Yp(t._scopes)),e}function Yp(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(s=>!s.startsWith("_")))e.add(i);return Array.from(e)}const Zp=Number.EPSILON||1e-14,Yi=(t,e)=>et==="x"?"y":"x";function Xp(t,e,n,i){const s=t.skip?e:t,o=e,a=n.skip?e:n,r=ji(o,s),l=ji(a,o);let u=r/(r+l),c=l/(r+l);u=isNaN(u)?0:u,c=isNaN(c)?0:c;const d=i*u,f=i*c;return{previous:{x:o.x-d*(a.x-s.x),y:o.y-d*(a.y-s.y)},next:{x:o.x+f*(a.x-s.x),y:o.y+f*(a.y-s.y)}}}function Kp(t,e,n){const i=t.length;let s,o,a,r,l,u=Yi(t,0);for(let c=0;c!u.skip)),e.cubicInterpolationMode==="monotone")Gp(t,s);else{let u=i?t[t.length-1]:t[0];for(o=0,a=t.length;ot.ownerDocument.defaultView.getComputedStyle(t,null);function tb(t,e){return da(t).getPropertyValue(e)}const nb=["top","right","bottom","left"];function li(t,e,n){const i={};n=n?"-"+n:"";for(let s=0;s<4;s++){const o=nb[s];i[o]=parseFloat(t[e+"-"+o+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const ib=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function sb(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:s,offsetY:o}=i;let a=!1,r,l;if(ib(s,o,t.target))r=s,l=o;else{const u=e.getBoundingClientRect();r=i.clientX-u.left,l=i.clientY-u.top,a=!0}return{x:r,y:l,box:a}}function ni(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,s=da(n),o=s.boxSizing==="border-box",a=li(s,"padding"),r=li(s,"border","width"),{x:l,y:u,box:c}=sb(t,n),d=a.left+(c&&r.left),f=a.top+(c&&r.top);let{width:h,height:m}=e;return o&&(h-=a.width+r.width,m-=a.height+r.height),{x:Math.round((l-d)/h*n.width/i),y:Math.round((u-f)/m*n.height/i)}}function ob(t,e,n){let i,s;if(e===void 0||n===void 0){const o=t&&ul(t);if(!o)e=t.clientWidth,n=t.clientHeight;else{const a=o.getBoundingClientRect(),r=da(o),l=li(r,"border","width"),u=li(r,"padding");e=a.width-u.width-l.width,n=a.height-u.height-l.height,i=jo(r.maxWidth,o,"clientWidth"),s=jo(r.maxHeight,o,"clientHeight")}}return{width:e,height:n,maxWidth:i||zo,maxHeight:s||zo}}const fo=t=>Math.round(t*10)/10;function ab(t,e,n,i){const s=da(t),o=li(s,"margin"),a=jo(s.maxWidth,t,"clientWidth")||zo,r=jo(s.maxHeight,t,"clientHeight")||zo,l=ob(t,e,n);let{width:u,height:c}=l;if(s.boxSizing==="content-box"){const f=li(s,"border","width"),h=li(s,"padding");u-=h.width+f.width,c-=h.height+f.height}return u=Math.max(0,u-o.width),c=Math.max(0,i?u/i:c-o.height),u=fo(Math.min(u,a,l.maxWidth)),c=fo(Math.min(c,r,l.maxHeight)),u&&!c&&(c=fo(u/2)),(e!==void 0||n!==void 0)&&i&&l.height&&c>l.height&&(c=l.height,u=fo(Math.floor(c*i))),{width:u,height:c}}function gu(t,e,n){const i=e||1,s=Math.floor(t.height*i),o=Math.floor(t.width*i);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const a=t.canvas;return a.style&&(n||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||a.height!==s||a.width!==o?(t.currentDevicePixelRatio=i,a.height=s,a.width=o,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const rb=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};ll()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function vu(t,e){const n=tb(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function ii(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function lb(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function ub(t,e,n,i){const s={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=ii(t,s,n),r=ii(s,o,n),l=ii(o,e,n),u=ii(a,r,n),c=ii(r,l,n);return ii(u,c,n)}const cb=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},db=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function Ai(t,e,n){return t?cb(e,n):db()}function wf(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function _f(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Sf(t){return t==="angle"?{between:No,compare:lp,normalize:yn}:{between:Di,compare:(e,n)=>e-n,normalize:e=>e}}function pu({start:t,end:e,count:n,loop:i,style:s}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:s}}function fb(t,e,n){const{property:i,start:s,end:o}=n,{between:a,normalize:r}=Sf(i),l=e.length;let{start:u,end:c,loop:d}=t,f,h;if(d){for(u+=l,c+=l,f=0,h=l;fl(s,y,b)&&r(s,y)!==0,x=()=>r(o,b)===0||l(o,y,b),M=()=>p||w(),E=()=>!p||x();for(let L=c,O=c;L<=d;++L)_=e[L%a],!_.skip&&(b=u(_[i]),b!==y&&(p=l(b,s,o),v===null&&M()&&(v=r(b,s)===0?L:O),v!==null&&E()&&(m.push(pu({start:v,end:L,loop:f,count:a,style:h})),v=null),O=L,y=b));return v!==null&&m.push(pu({start:v,end:d,loop:f,count:a,style:h})),m}function Cf(t,e){const n=[],i=t.segments;for(let s=0;ss&&t[o%e].skip;)o--;return o%=e,{start:s,end:o}}function mb(t,e,n,i){const s=t.length,o=[];let a=e,r=t[e],l;for(l=e+1;l<=n;++l){const u=t[l%s];u.skip||u.stop?r.skip||(i=!1,o.push({start:e%s,end:(l-1)%s,loop:i}),e=a=u.stop?l:null):(a=l,r.skip&&(e=l)),r=u}return a!==null&&o.push({start:e%s,end:a%s,loop:i}),o}function gb(t,e){const n=t.points,i=t.options.spanGaps,s=n.length;if(!s)return[];const o=!!t._loop,{start:a,end:r}=hb(n,s,o,i);if(i===!0)return bu(t,[{start:a,end:r,loop:o}],n,e);const l=rr({chart:e,initial:n.initial,numSteps:a,currentStep:Math.min(i-n.start,a)}))}_refresh(){this._request||(this._running=!0,this._request=cf.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const o=i.items;let a=o.length-1,r=!1,l;for(;a>=0;--a)l=o[a],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),r=!0):(o[a]=o[o.length-1],o.pop());r&&(s.draw(),this._notify(s,i,e,"progress")),o.length||(i.running=!1,this._notify(s,i,e,"complete"),i.initial=!1),n+=o.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var Cn=new yb;const xu="transparent",xb={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=uu(t||xu),s=i.valid&&uu(e||xu);return s&&s.valid?s.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class wb{constructor(e,n,i,s){const o=n[i];s=uo([e.to,s,o,e.from]);const a=uo([e.from,o,s]);this._active=!0,this._fn=e.fn||xb[e.type||typeof a],this._easing=Ds[e.easing]||Ds.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=a,this._to=s,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const s=this._target[this._prop],o=i-this._start,a=this._duration-o;this._start=i,this._duration=Math.floor(Math.max(a,e.duration)),this._total+=o,this._loop=!!e.loop,this._to=uo([e.to,n,s,e.from]),this._from=uo([e.from,s,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,s=this._prop,o=this._from,a=this._loop,r=this._to;let l;if(this._active=o!==r&&(a||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(o,r,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let s=0;s{const o=e[s];if(!_e(o))return;const a={};for(const r of n)a[r]=o[r];(Je(o.properties)&&o.properties||[s]).forEach(r=>{(r===s||!i.has(r))&&i.set(r,a)})})}_animateOptions(e,n){const i=n.options,s=Sb(e,i);if(!s)return[];const o=this._createAnimations(s,i);return i.$shared&&_b(e.options.$animations,i).then(()=>{e.options=i},()=>{}),o}_createAnimations(e,n){const i=this._properties,s=[],o=e.$animations||(e.$animations={}),a=Object.keys(n),r=Date.now();let l;for(l=a.length-1;l>=0;--l){const u=a[l];if(u.charAt(0)==="$")continue;if(u==="options"){s.push(...this._animateOptions(e,n));continue}const c=n[u];let d=o[u];const f=i.get(u);if(d)if(f&&d.active()){d.update(f,c,r);continue}else d.cancel();if(!f||!f.duration){e[u]=c;continue}o[u]=d=new wb(f,e,u,c),s.push(d)}return s}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return Cn.add(this._chart,i),!0}}function _b(t,e){const n=[],i=Object.keys(e);for(let s=0;s0||!n&&o<0)return s.index}return null}function ku(t,e){const{chart:n,_cachedMeta:i}=t,s=n._stacks||(n._stacks={}),{iScale:o,vScale:a,index:r}=i,l=o.axis,u=a.axis,c=Pb(o,a,i),d=e.length;let f;for(let h=0;hn[i].axis===e).shift()}function Db(t,e){return vi(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function Ob(t,e,n){return vi(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function cs(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const s of e){const o=s._stacks;if(!o||o[i]===void 0||o[i][n]===void 0)return;delete o[i][n],o[i]._visualValues!==void 0&&o[i]._visualValues[n]!==void 0&&delete o[i]._visualValues[n]}}}const Ua=t=>t==="reset"||t==="none",Cu=(t,e)=>e?t:Object.assign({},t),Vb=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:Pf(n,!0),values:null};class qi{constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Ha(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&cs(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),s=(d,f,h,m)=>d==="x"?f:d==="r"?m:h,o=n.xAxisID=Ce(i.xAxisID,ja(e,"x")),a=n.yAxisID=Ce(i.yAxisID,ja(e,"y")),r=n.rAxisID=Ce(i.rAxisID,ja(e,"r")),l=n.indexAxis,u=n.iAxisID=s(l,o,a,r),c=n.vAxisID=s(l,a,o,r);n.xScale=this.getScaleForId(o),n.yScale=this.getScaleForId(a),n.rScale=this.getScaleForId(r),n.iScale=this.getScaleForId(u),n.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&au(this._data,this),e._stacked&&cs(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(_e(n)){const s=this._cachedMeta;this._data=Mb(n,s)}else if(i!==n){if(i){au(i,this);const s=this._cachedMeta;cs(s),s._parsed=[]}n&&Object.isExtensible(n)&&fp(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const o=n._stacked;n._stacked=Ha(n.vScale,n),n.stack!==i.stack&&(s=!0,cs(n),n.stack=i.stack),this._resyncElements(e),(s||o!==n._stacked)&&(ku(this,n._parsed),n._stacked=Ha(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:s}=this,{iScale:o,_stacked:a}=i,r=o.axis;let l=e===0&&n===s.length?!0:i._sorted,u=e>0&&i._parsed[e-1],c,d,f;if(this._parsing===!1)i._parsed=s,i._sorted=!0,f=s;else{Je(s[e])?f=this.parseArrayData(i,s,e,n):_e(s[e])?f=this.parseObjectData(i,s,e,n):f=this.parsePrimitiveData(i,s,e,n);const h=()=>d[r]===null||u&&d[r]p||d=0;--f)if(!m()){this.updateRangeFromParsed(u,e,h,l);break}}return u}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let s,o,a;for(s=0,o=n.length;s=0&&ethis.getContext(i,s,n),p=u.resolveNamedOptions(f,h,m,d);return p.$shared&&(p.$shared=l,o[a]=Object.freeze(Cu(p,l))),p}_resolveAnimations(e,n,i){const s=this.chart,o=this._cachedDataOpts,a=`animation-${n}`,r=o[a];if(r)return r;let l;if(s.options.animation!==!1){const c=this.chart.config,d=c.datasetAnimationScopeKeys(this._type,n),f=c.getOptionScopes(this.getDataset(),d);l=c.createResolver(f,this.getContext(e,i,n))}const u=new cl(s,l&&l.animations);return l&&l._cacheable&&(o[a]=Object.freeze(u)),u}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||Ua(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),s=this._sharedOptions,o=this.getSharedOptions(i),a=this.includeOptions(n,o)||o!==s;return this.updateSharedOptions(o,n,i),{sharedOptions:o,includeOptions:a}}updateElement(e,n,i,s){Ua(s)?Object.assign(e,i):this._resolveAnimations(n,s).update(e,i)}updateSharedOptions(e,n,i){e&&!Ua(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,s){e.active=s;const o=this.getStyle(n,s);this._resolveAnimations(n,i,s).update(e,{options:!s&&this.getSharedOptions(o)||o})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[r,l,u]of this._syncList)this[r](l,u);this._syncList=[];const s=i.length,o=n.length,a=Math.min(o,s);a&&this.parse(0,a),o>s?this._insertElements(s,o-s,e):o{for(u.length+=n,r=u.length-1;r>=a;r--)u[r]=u[r-n]};for(l(o),r=e;rNo(y,r,l,!0)?1:Math.max(w,w*n,x,x*n),m=(y,w,x)=>No(y,r,l,!0)?-1:Math.min(w,w*n,x,x*n),p=h(0,u,d),v=h(It,c,f),b=m(We,u,d),_=m(We+It,c,f);i=(p-b)/2,s=(v-_)/2,o=-(p+b)/2,a=-(v+_)/2}return{ratioX:i,ratioY:s,offsetX:o,offsetY:a}}class xs extends qi{constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,s=this._cachedMeta;if(this._parsing===!1)s._parsed=i;else{let o=l=>+i[l];if(_e(i[e])){const{key:l="value"}=this._parsing;o=u=>+zs(i[u],l)}let a,r;for(a=e,r=e+n;a0&&!isNaN(e)?St*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,s=i.data.labels||[],o=sl(n._parsed[e],i.options.locale);return{label:s[e]||"",value:o}}getMaxBorderWidth(e){let n=0;const i=this.chart;let s,o,a,r,l;if(!e){for(s=0,o=i.data.datasets.length;se!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")}),Ae(xs,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data;if(n.labels.length&&n.datasets.length){const{labels:{pointStyle:i,color:s}}=e.legend.options;return n.labels.map((o,a)=>{const l=e.getDatasetMeta(0).controller.getStyle(a);return{text:o,fillStyle:l.backgroundColor,strokeStyle:l.borderColor,fontColor:s,lineWidth:l.borderWidth,pointStyle:i,hidden:!e.getDataVisibility(a),index:a}})}return[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}});class Li extends qi{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const n=this._cachedMeta,{dataset:i,data:s=[],_dataset:o}=n,a=this.chart._animationsDisabled;let{start:r,count:l}=vp(n,s,a);this._drawStart=r,this._drawCount=l,pp(n)&&(r=0,l=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!o._decimated,i.points=s;const u=this.resolveDatasetElementOptions(e);this.options.showLine||(u.borderWidth=0),u.segment=this.options.segment,this.updateElement(i,void 0,{animated:!a,options:u},e),this.updateElements(s,r,l,e)}updateElements(e,n,i,s){const o=s==="reset",{iScale:a,vScale:r,_stacked:l,_dataset:u}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(n,s),f=a.axis,h=r.axis,{spanGaps:m,segment:p}=this.options,v=di(m)?m:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||s==="none",_=n+i,y=e.length;let w=n>0&&this.getParsed(n-1);for(let x=0;x=_){E.skip=!0;continue}const L=this.getParsed(x),O=Ke(L[h]),D=E[f]=a.getPixelForValue(L[f],x),R=E[h]=o||O?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,L,l):L[h],x);E.skip=isNaN(D)||isNaN(R)||O,E.stop=x>0&&Math.abs(L[f]-w[f])>v,p&&(E.parsed=L,E.raw=u.data[x]),d&&(E.options=c||this.resolveDataElementOptions(x,M.active?"active":s)),b||this.updateElement(M,x,E,s),w=L}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,s=e.data||[];if(!s.length)return i;const o=s[0].size(this.resolveDataElementOptions(0)),a=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,o,a)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}Ae(Li,"id","line"),Ae(Li,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),Ae(Li,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});function Jn(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class dl{static override(e){Object.assign(dl.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return Jn()}parse(){return Jn()}format(){return Jn()}add(){return Jn()}diff(){return Jn()}startOf(){return Jn()}endOf(){return Jn()}}var Tf={_date:dl};function Ab(t,e,n,i){const{controller:s,data:o,_sorted:a}=t,r=s._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(r&&e===r.axis&&e!=="r"&&a&&o.length){const u=r._reversePixels?cp:oi;if(i){if(s._sharedOptions){const c=o[0],d=typeof c.getRange=="function"&&c.getRange(e);if(d){const f=u(o,e,n-d),h=u(o,e,n+d);return{lo:f.lo,hi:h.hi}}}}else{const c=u(o,e,n);if(l){const{vScale:d}=s._cachedMeta,{_parsed:f}=t,h=f.slice(0,c.lo+1).reverse().findIndex(p=>!Ke(p[d.axis]));c.lo-=Math.max(0,h);const m=f.slice(c.hi).findIndex(p=>!Ke(p[d.axis]));c.hi+=Math.max(0,m)}return c}}return{lo:0,hi:o.length-1}}function fa(t,e,n,i,s){const o=t.getSortedVisibleDatasetMetas(),a=n[e];for(let r=0,l=o.length;r{l[a]&&l[a](e[n],s)&&(o.push({element:l,datasetIndex:u,index:c}),r=r||l.inRange(e.x,e.y,s))}),i&&!r?[]:o}var $b={modes:{index(t,e,n,i){const s=ni(e,t),o=n.axis||"x",a=n.includeInvisible||!1,r=n.intersect?Ya(t,s,o,i,a):Za(t,s,o,!1,i,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach(u=>{const c=r[0].index,d=u.data[c];d&&!d.skip&&l.push({element:d,datasetIndex:u.index,index:c})}),l):[]},dataset(t,e,n,i){const s=ni(e,t),o=n.axis||"xy",a=n.includeInvisible||!1;let r=n.intersect?Ya(t,s,o,i,a):Za(t,s,o,!1,i,a);if(r.length>0){const l=r[0].datasetIndex,u=t.getDatasetMeta(l).data;r=[];for(let c=0;cn.pos===e)}function Pu(t,e){return t.filter(n=>If.indexOf(n.pos)===-1&&n.box.axis===e)}function fs(t,e){return t.sort((n,i)=>{const s=e?i:n,o=e?n:i;return s.weight===o.weight?s.index-o.index:s.weight-o.weight})}function Fb(t){const e=[];let n,i,s,o,a,r;for(n=0,i=(t||[]).length;nu.box.fullSize),!0),i=fs(ds(e,"left"),!0),s=fs(ds(e,"right")),o=fs(ds(e,"top"),!0),a=fs(ds(e,"bottom")),r=Pu(e,"x"),l=Pu(e,"y");return{fullSize:n,leftAndTop:i.concat(o),rightAndBottom:s.concat(l).concat(a).concat(r),chartArea:ds(e,"chartArea"),vertical:i.concat(s).concat(l),horizontal:o.concat(a).concat(r)}}function Tu(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function Df(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function Wb(t,e,n,i){const{pos:s,box:o}=n,a=t.maxPadding;if(!_e(s)){n.size&&(t[s]-=n.size);const d=i[n.stack]||{size:0,count:1};d.size=Math.max(d.size,n.horizontal?o.height:o.width),n.size=d.size/d.count,t[s]+=n.size}o.getPadding&&Df(a,o.getPadding());const r=Math.max(0,e.outerWidth-Tu(a,t,"left","right")),l=Math.max(0,e.outerHeight-Tu(a,t,"top","bottom")),u=r!==t.w,c=l!==t.h;return t.w=r,t.h=l,n.horizontal?{same:u,other:c}:{same:c,other:u}}function Hb(t){const e=t.maxPadding;function n(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function jb(t,e){const n=e.maxPadding;function i(s){const o={left:0,top:0,right:0,bottom:0};return s.forEach(a=>{o[a]=Math.max(e[a],n[a])}),o}return i(t?["left","right"]:["top","bottom"])}function ws(t,e,n,i){const s=[];let o,a,r,l,u,c;for(o=0,a=t.length,u=0;o{typeof p.beforeLayout=="function"&&p.beforeLayout()});const c=l.reduce((p,v)=>v.box.options&&v.box.options.display===!1?p:p+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:n,padding:s,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),f=Object.assign({},s);Df(f,Bt(i));const h=Object.assign({maxPadding:f,w:o,h:a,x:s.left,y:s.top},s),m=Bb(l.concat(u),d);ws(r.fullSize,h,d,m),ws(l,h,d,m),ws(u,h,d,m)&&ws(l,h,d,m),Hb(h),Iu(r.leftAndTop,h,d,m),h.x+=h.w,h.y+=h.h,Iu(r.rightAndBottom,h,d,m),t.chartArea={left:h.left,top:h.top,right:h.left+h.w,bottom:h.top+h.h,height:h.h,width:h.w},Ne(r.chartArea,p=>{const v=p.box;Object.assign(v,t.chartArea),v.update(h.w,h.h,{left:0,top:0,right:0,bottom:0})})}};class Of{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,s){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,s?Math.floor(n/s):i)}}isAttached(e){return!0}updateConfig(e){}}class Ub extends Of{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const Do="$chartjs",Yb={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Du=t=>t===null||t==="";function Zb(t,e){const n=t.style,i=t.getAttribute("height"),s=t.getAttribute("width");if(t[Do]={initial:{height:i,width:s,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",Du(s)){const o=vu(t,"width");o!==void 0&&(t.width=o)}if(Du(i))if(t.style.height==="")t.height=t.width/(e||2);else{const o=vu(t,"height");o!==void 0&&(t.height=o)}return t}const Vf=rb?{passive:!0}:!1;function Xb(t,e,n){t&&t.addEventListener(e,n,Vf)}function Kb(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,Vf)}function Qb(t,e){const n=Yb[t.type]||t.type,{x:i,y:s}=ni(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:s!==void 0?s:null}}function Uo(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function Gb(t,e,n){const i=t.canvas,s=new MutationObserver(o=>{let a=!1;for(const r of o)a=a||Uo(r.addedNodes,i),a=a&&!Uo(r.removedNodes,i);a&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}function Jb(t,e,n){const i=t.canvas,s=new MutationObserver(o=>{let a=!1;for(const r of o)a=a||Uo(r.removedNodes,i),a=a&&!Uo(r.addedNodes,i);a&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}const Ns=new Map;let Ou=0;function Ef(){const t=window.devicePixelRatio;t!==Ou&&(Ou=t,Ns.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function ey(t,e){Ns.size||window.addEventListener("resize",Ef),Ns.set(t,e)}function ty(t){Ns.delete(t),Ns.size||window.removeEventListener("resize",Ef)}function ny(t,e,n){const i=t.canvas,s=i&&ul(i);if(!s)return;const o=df((r,l)=>{const u=s.clientWidth;n(r,l),u{const l=r[0],u=l.contentRect.width,c=l.contentRect.height;u===0&&c===0||o(u,c)});return a.observe(s),ey(t,o),a}function Xa(t,e,n){n&&n.disconnect(),e==="resize"&&ty(t)}function iy(t,e,n){const i=t.canvas,s=df(o=>{t.ctx!==null&&n(Qb(o,t))},t);return Xb(i,e,s),s}class sy extends Of{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(Zb(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[Do])return!1;const i=n[Do].initial;["height","width"].forEach(o=>{const a=i[o];Ke(a)?n.removeAttribute(o):n.setAttribute(o,a)});const s=i.style||{};return Object.keys(s).forEach(o=>{n.style[o]=s[o]}),n.width=n.width,delete n[Do],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const s=e.$proxies||(e.$proxies={}),a={attach:Gb,detach:Jb,resize:ny}[n]||iy;s[n]=a(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),s=i[n];if(!s)return;({attach:Xa,detach:Xa,resize:Xa}[n]||Kb)(e,n,s),i[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,s){return ab(e,n,i,s)}isAttached(e){const n=e&&ul(e);return!!(n&&n.isConnected)}}function oy(t){return!ll()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?Ub:sy}class Nt{x;y;active=!1;options;$animations;tooltipPosition(e){const{x:n,y:i}=this.getProps(["x","y"],e);return{x:n,y:i}}hasValue(){return di(this.x)&&di(this.y)}getProps(e,n){const i=this.$animations;if(!n||!i)return this;const s={};return e.forEach(o=>{s[o]=i[o]&&i[o].active()?i[o]._to:this[o]}),s}}Ae(Nt,"defaults",{}),Ae(Nt,"defaultRoutes");function ay(t,e){const n=t.options.ticks,i=ry(t),s=Math.min(n.maxTicksLimit||i,i),o=n.major.enabled?uy(e):[],a=o.length,r=o[0],l=o[a-1],u=[];if(a>s)return cy(e,u,o,a/s),u;const c=ly(o,e,s);if(a>0){let d,f;const h=a>1?Math.round((l-r)/(a-1)):null;for(go(e,u,c,Ke(h)?0:r-h,r),d=0,f=a-1;ds)return l}return Math.max(s,1)}function uy(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,Vu=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,Eu=(t,e)=>Math.min(e||t,t);function Au(t,e){const n=[],i=t.length/e,s=t.length;let o=0;for(;oa+r)))return l}function my(t,e){Ne(t,n=>{const i=n.gc,s=i.length/2;let o;if(s>e){for(o=0;oi?i:n,i=s&&n>i?n:i,{min:vn(n,vn(i,n)),max:vn(i,vn(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){je(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:s,grace:o,ticks:a}=this.options,r=a.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=$p(this,o,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=r=o||i<=1||!this.isHorizontal()){this.labelRotation=s;return}const c=this._getLabelSizes(),d=c.widest.width,f=c.highest.height,h=cn(this.chart.width-d,0,this.maxWidth);r=e.offset?this.maxWidth/i:h/(i-1),d+6>r&&(r=h/(i-(e.offset?.5:1)),l=this.maxHeight-hs(e.grid)-n.padding-qu(e.title,this.chart.options.font),u=Math.sqrt(d*d+f*f),a=lf(Math.min(Math.asin(cn((c.highest.height+6)/r,-1,1)),Math.asin(cn(l/u,-1,1))-Math.asin(cn(f/u,-1,1)))),a=Math.max(s,Math.min(o,a))),this.labelRotation=a}afterCalculateLabelRotation(){je(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){je(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:s,grid:o}}=this,a=this._isVisible(),r=this.isHorizontal();if(a){const l=qu(s,n.options.font);if(r?(e.width=this.maxWidth,e.height=hs(o)+l):(e.height=this.maxHeight,e.width=hs(o)+l),i.display&&this.ticks.length){const{first:u,last:c,widest:d,highest:f}=this._getLabelSizes(),h=i.padding*2,m=kt(this.labelRotation),p=Math.cos(m),v=Math.sin(m);if(r){const b=i.mirror?0:v*d.width+p*f.height;e.height=Math.min(this.maxHeight,e.height+b+h)}else{const b=i.mirror?0:p*d.width+v*f.height;e.width=Math.min(this.maxWidth,e.width+b+h)}this._calculatePadding(u,c,v,p)}}this._handleMargins(),r?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,s){const{ticks:{align:o,padding:a},position:r}=this.options,l=this.labelRotation!==0,u=r!=="top"&&this.axis==="x";if(this.isHorizontal()){const c=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,h=0;l?u?(f=s*e.width,h=i*n.height):(f=i*e.height,h=s*n.width):o==="start"?h=n.width:o==="end"?f=e.width:o!=="inner"&&(f=e.width/2,h=n.width/2),this.paddingLeft=Math.max((f-c+a)*this.width/(this.width-c),0),this.paddingRight=Math.max((h-d+a)*this.width/(this.width-d),0)}else{let c=n.height/2,d=e.height/2;o==="start"?(c=0,d=e.height):o==="end"&&(c=n.height,d=0),this.paddingTop=c+a,this.paddingBottom=d+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){je(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:a[O]||0,height:r[O]||0});return{first:L(0),last:L(n-1),widest:L(M),highest:L(E),widths:a,heights:r}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return up(this._alignToPixels?Gn(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&er*s?r/i:l/s:l*s0}_computeGridLineItems(e){const n=this.axis,i=this.chart,s=this.options,{grid:o,position:a,border:r}=s,l=o.offset,u=this.isHorizontal(),d=this.ticks.length+(l?1:0),f=hs(o),h=[],m=r.setContext(this.getContext()),p=m.display?m.width:0,v=p/2,b=function(U){return Gn(i,U,p)};let _,y,w,x,M,E,L,O,D,R,T,j;if(a==="top")_=b(this.bottom),E=this.bottom-f,O=_-v,R=b(e.top)+v,j=e.bottom;else if(a==="bottom")_=b(this.top),R=e.top,j=b(e.bottom)-v,E=_+v,O=this.top+f;else if(a==="left")_=b(this.right),M=this.right-f,L=_-v,D=b(e.left)+v,T=e.right;else if(a==="right")_=b(this.left),D=e.left,T=b(e.right)-v,M=_+v,L=this.left+f;else if(n==="x"){if(a==="center")_=b((e.top+e.bottom)/2+.5);else if(_e(a)){const U=Object.keys(a)[0],J=a[U];_=b(this.chart.scales[U].getPixelForValue(J))}R=e.top,j=e.bottom,E=_+v,O=E+f}else if(n==="y"){if(a==="center")_=b((e.left+e.right)/2);else if(_e(a)){const U=Object.keys(a)[0],J=a[U];_=b(this.chart.scales[U].getPixelForValue(J))}M=_-v,L=M-f,D=e.left,T=e.right}const F=Ce(s.ticks.maxTicksLimit,d),Y=Math.max(1,Math.ceil(d/F));for(y=0;y0&&(z-=ce/2);break}V={left:z,top:me,width:ce+I.width,height:G+I.height,color:Y.backdropColor}}v.push({label:w,font:O,textOffset:T,options:{rotation:p,color:J,strokeColor:Z,strokeWidth:ae,textAlign:de,textBaseline:j,translation:[x,M],backdrop:V}})}return v}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-kt(this.labelRotation))return e==="top"?"left":"right";let s="center";return n.align==="start"?s="left":n.align==="end"?s="right":n.align==="inner"&&(s="inner"),s}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:s,padding:o}}=this.options,a=this._getLabelSizes(),r=e+o,l=a.widest.width;let u,c;return n==="left"?s?(c=this.right+o,i==="near"?u="left":i==="center"?(u="center",c+=l/2):(u="right",c+=l)):(c=this.right-r,i==="near"?u="right":i==="center"?(u="center",c-=l/2):(u="left",c=this.left)):n==="right"?s?(c=this.left+o,i==="near"?u="right":i==="center"?(u="center",c-=l/2):(u="left",c-=l)):(c=this.left+r,i==="near"?u="left":i==="center"?(u="center",c+=l/2):(u="right",c=this.right)):u="right",{textAlign:u,x:c}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:s,width:o,height:a}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,s,o,a),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const s=this.ticks.findIndex(o=>o.value===e);return s>=0?n.setContext(this.getContext(s)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let o,a;const r=(l,u,c)=>{!c.width||!c.color||(i.save(),i.lineWidth=c.width,i.strokeStyle=c.color,i.setLineDash(c.borderDash||[]),i.lineDashOffset=c.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(u.x,u.y),i.stroke(),i.restore())};if(n.display)for(o=0,a=s.length;o{this.draw(o)}}]:[{z:i,draw:o=>{this.drawBackground(),this.drawGrid(o),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:n,draw:o=>{this.drawLabels(o)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let o,a;for(o=0,a=n.length;o{const i=n.split("."),s=i.pop(),o=[t].concat(i).join("."),a=e[n].split("."),r=a.pop(),l=a.join(".");ut.route(o,s,l,r)})}function wy(t){return"id"in t&&"defaults"in t}class _y{constructor(){this.controllers=new vo(qi,"datasets",!0),this.elements=new vo(Nt,"elements"),this.plugins=new vo(Object,"plugins"),this.scales=new vo(Zs,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(s=>{const o=i||this._getRegistryForType(s);i||o.isForType(s)||o===this.plugins&&s.id?this._exec(e,o,s):Ne(s,a=>{const r=i||this._getRegistryForType(a);this._exec(e,r,a)})})}_exec(e,n,i){const s=el(e);je(i["before"+s],[],i),n[e](i),je(i["after"+s],[],i)}_getRegistryForType(e){for(let n=0;no.filter(r=>!a.some(l=>r.plugin.id===l.plugin.id));this._notify(s(n,i),e,"stop"),this._notify(s(i,n),e,"start")}}function ky(t){const e={},n=[],i=Object.keys(bn.plugins.items);for(let o=0;o1&&Lu(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function Ru(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function Oy(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return Ru(t,"x",n[0])||Ru(t,"y",n[0])}return{}}function Vy(t,e){const n=fi[t.type]||{scales:{}},i=e.scales||{},s=yr(t.type,e),o=Object.create(null);return Object.keys(i).forEach(a=>{const r=i[a];if(!_e(r))return console.error(`Invalid scale configuration for scale: ${a}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${a}`);const l=xr(a,r,Oy(a,t),ut.scales[r.type]),u=Iy(l,s),c=n.scales||{};o[a]=Ts(Object.create(null),[{axis:l},r,c[l],c[u]])}),t.data.datasets.forEach(a=>{const r=a.type||t.type,l=a.indexAxis||yr(r,e),c=(fi[r]||{}).scales||{};Object.keys(c).forEach(d=>{const f=Ty(d,l),h=a[f+"AxisID"]||f;o[h]=o[h]||Object.create(null),Ts(o[h],[{axis:f},i[h],c[d]])})}),Object.keys(o).forEach(a=>{const r=o[a];Ts(r,[ut.scales[r.type],ut.scale])}),o}function Af(t){const e=t.options||(t.options={});e.plugins=Ce(e.plugins,{}),e.scales=Vy(t,e)}function qf(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function Ey(t){return t=t||{},t.data=qf(t.data),Af(t),t}const $u=new Map,Lf=new Set;function po(t,e){let n=$u.get(t);return n||(n=e(),$u.set(t,n),Lf.add(n)),n}const ms=(t,e,n)=>{const i=zs(e,n);i!==void 0&&t.add(i)};class Ay{constructor(e){this._config=Ey(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=qf(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),Af(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return po(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return po(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return po(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return po(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let s=i.get(e);return(!s||n)&&(s=new Map,i.set(e,s)),s}getOptionScopes(e,n,i){const{options:s,type:o}=this,a=this._cachedScopes(e,i),r=a.get(n);if(r)return r;const l=new Set;n.forEach(c=>{e&&(l.add(e),c.forEach(d=>ms(l,e,d))),c.forEach(d=>ms(l,s,d)),c.forEach(d=>ms(l,fi[o]||{},d)),c.forEach(d=>ms(l,ut,d)),c.forEach(d=>ms(l,pr,d))});const u=Array.from(l);return u.length===0&&u.push(Object.create(null)),Lf.has(n)&&a.set(n,u),u}chartOptionScopes(){const{options:e,type:n}=this;return[e,fi[n]||{},ut.datasets[n]||{},{type:n},ut,pr]}resolveNamedOptions(e,n,i,s=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=Fu(this._resolverCache,e,s);let l=a;if(Ly(a,n)){o.$shared=!1,i=Yt(i)?i():i;const u=this.createResolver(e,i,r);l=Ui(a,i,u)}for(const u of n)o[u]=l[u];return o}createResolver(e,n,i=[""],s){const{resolver:o}=Fu(this._resolverCache,e,i);return _e(n)?Ui(o,n,void 0,s):o}}function Fu(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const s=n.join();let o=i.get(s);return o||(o={resolver:ol(e,n),subPrefixes:n.filter(r=>!r.toLowerCase().includes("hover"))},i.set(s,o)),o}const qy=t=>_e(t)&&Object.getOwnPropertyNames(t).some(e=>Yt(t[e]));function Ly(t,e){const{isScriptable:n,isIndexable:i}=vf(t);for(const s of e){const o=n(s),a=i(s),r=(a||o)&&t[s];if(o&&(Yt(r)||qy(r))||a&&Je(r))return!0}return!1}var Ry="4.5.0";const $y=["top","bottom","left","right","chartArea"];function zu(t,e){return t==="top"||t==="bottom"||$y.indexOf(t)===-1&&e==="x"}function Bu(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function Nu(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),je(n&&n.onComplete,[t],e)}function Fy(t){const e=t.chart,n=e.options.animation;je(n&&n.onProgress,[t],e)}function Rf(t){return ll()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Oo={},Wu=t=>{const e=Rf(t);return Object.values(Oo).filter(n=>n.canvas===e).pop()};function zy(t,e,n){const i=Object.keys(t);for(const s of i){const o=+s;if(o>=e){const a=t[s];delete t[s],(n>0||o>e)&&(t[o+n]=a)}}}function By(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}var Rn;let Un=(Rn=class{static register(...e){bn.add(...e),Hu()}static unregister(...e){bn.remove(...e),Hu()}constructor(e,n){const i=this.config=new Ay(n),s=Rf(e),o=Wu(s);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||oy(s)),this.platform.updateConfig(i);const r=this.platform.acquireContext(s,a.aspectRatio),l=r&&r.canvas,u=l&&l.height,c=l&&l.width;if(this.id=Kv(),this.ctx=r,this.canvas=l,this.width=c,this.height=u,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Sy,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=mp(d=>this.update(d),a.resizeDelay||0),this._dataChanges=[],Oo[this.id]=this,!r||!l){console.error("Failed to create chart: can't acquire context from the given item");return}Cn.listen(this,"complete",Nu),Cn.listen(this,"progress",Fy),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:n},width:i,height:s,_aspectRatio:o}=this;return Ke(e)?n&&o?o:s?i/s:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return bn}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():gu(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return fu(this.canvas,this.ctx),this}stop(){return Cn.stop(this),this}resize(e,n){Cn.running(this)?this._resizeBeforeDraw={width:e,height:n}:this._resize(e,n)}_resize(e,n){const i=this.options,s=this.canvas,o=i.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(s,e,n,o),r=i.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,gu(this,r,!0)&&(this.notifyPlugins("resize",{size:a}),je(i.onResize,[this,a],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};Ne(n,(i,s)=>{i.id=s})}buildOrUpdateScales(){const e=this.options,n=e.scales,i=this.scales,s=Object.keys(i).reduce((a,r)=>(a[r]=!1,a),{});let o=[];n&&(o=o.concat(Object.keys(n).map(a=>{const r=n[a],l=xr(a,r),u=l==="r",c=l==="x";return{options:r,dposition:u?"chartArea":c?"bottom":"left",dtype:u?"radialLinear":c?"category":"linear"}}))),Ne(o,a=>{const r=a.options,l=r.id,u=xr(l,r),c=Ce(r.type,a.dtype);(r.position===void 0||zu(r.position,u)!==zu(a.dposition))&&(r.position=a.dposition),s[l]=!0;let d=null;if(l in i&&i[l].type===c)d=i[l];else{const f=bn.getScale(c);d=new f({id:l,type:c,ctx:this.ctx,chart:this}),i[d.id]=d}d.init(r,e)}),Ne(s,(a,r)=>{a||delete i[r]}),Ne(i,a=>{Hn.configure(this,a,a.options),Hn.addBox(this,a)})}_updateMetasets(){const e=this._metasets,n=this.data.datasets.length,i=e.length;if(e.sort((s,o)=>s.index-o.index),i>n){for(let s=n;sn.length&&delete this._stacks,e.forEach((i,s)=>{n.filter(o=>o===i._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const e=[],n=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=n.length;i{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const n=this.config;n.update();const i=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let u=0,c=this.data.datasets.length;u{u.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(Bu("z","_idx"));const{_active:r,_lastEvent:l}=this;l?this._eventHandler(l,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){Ne(this.scales,e=>{Hn.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,n=new Set(Object.keys(this._listeners)),i=new Set(e.events);(!iu(n,i)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,n=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:o}of n){const a=i==="_removeElements"?-o:o;zy(e,s,a)}}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const n=this.data.datasets.length,i=o=>new Set(e.filter(a=>a[0]===o).map((a,r)=>r+","+a.splice(1).join(","))),s=i(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(e){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Hn.update(this,this.width,this.height,e);const n=this.chartArea,i=n.width<=0||n.height<=0;this._layers=[],Ne(this.boxes,s=>{i&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,o)=>{s._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})!==!1){for(let n=0,i=this.data.datasets.length;n=0;--n)this._drawDataset(e[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const n=this.ctx,i={meta:e,index:e.index,cancelable:!0},s=Mf(this,e);this.notifyPlugins("beforeDatasetDraw",i)!==!1&&(s&&Us(n,s),e.controller.draw(),s&&Ys(n),i.cancelable=!1,this.notifyPlugins("afterDatasetDraw",i))}isPointInArea(e){return Bs(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,n,i,s){const o=$b.modes[n];return typeof o=="function"?o(this,e,i,s):[]}getDatasetMeta(e){const n=this.data.datasets[e],i=this._metasets;let s=i.filter(o=>o&&o._dataset===n).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:e,_dataset:n,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=vi(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const n=this.data.datasets[e];if(!n)return!1;const i=this.getDatasetMeta(e);return typeof i.hidden=="boolean"?!i.hidden:!n.hidden}setDatasetVisibility(e,n){const i=this.getDatasetMeta(e);i.hidden=!n}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,n,i){const s=i?"show":"hide",o=this.getDatasetMeta(e),a=o.controller._resolveAnimations(void 0,s);Qt(n)?(o.data[n].hidden=!i,this.update()):(this.setDatasetVisibility(e,i),a.update(o,{visible:i}),this.update(r=>r.datasetIndex===e?s:void 0))}hide(e,n){this._updateVisibility(e,n,!1)}show(e,n){this._updateVisibility(e,n,!0)}_destroyDatasetMeta(e){const n=this._metasets[e];n&&n.controller&&n.controller._destroy(),delete this._metasets[e]}_stop(){let e,n;for(this.stop(),Cn.remove(this),e=0,n=this.data.datasets.length;e{n.addEventListener(this,o,a),e[o]=a},s=(o,a,r)=>{o.offsetX=a,o.offsetY=r,this._eventHandler(o)};Ne(this.options.events,o=>i(o,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,n=this.platform,i=(l,u)=>{n.addEventListener(this,l,u),e[l]=u},s=(l,u)=>{e[l]&&(n.removeEventListener(this,l,u),delete e[l])},o=(l,u)=>{this.canvas&&this.resize(l,u)};let a;const r=()=>{s("attach",r),this.attached=!0,this.resize(),i("resize",o),i("detach",a)};a=()=>{this.attached=!1,s("resize",o),this._stop(),this._resize(0,0),i("attach",r)},n.isAttached(this.canvas)?r():a()}unbindEvents(){Ne(this._listeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._listeners={},Ne(this._responsiveListeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,n,i){const s=i?"set":"remove";let o,a,r,l;for(n==="dataset"&&(o=this.getDatasetMeta(e[0].datasetIndex),o.controller["_"+s+"DatasetHoverStyle"]()),r=0,l=e.length;r{const r=this.getDatasetMeta(o);if(!r)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:r.data[a],index:a}});!$o(i,n)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,n))}notifyPlugins(e,n,i){return this._plugins.notify(this,e,n,i)}isPluginEnabled(e){return this._plugins._cache.filter(n=>n.plugin.id===e).length===1}_updateHoverStyles(e,n,i){const s=this.options.hover,o=(l,u)=>l.filter(c=>!u.some(d=>c.datasetIndex===d.datasetIndex&&c.index===d.index)),a=o(n,e),r=i?e:o(e,n);a.length&&this.updateHoverStyle(a,s.mode,!1),r.length&&s.mode&&this.updateHoverStyle(r,s.mode,!0)}_eventHandler(e,n){const i={event:e,replay:n,cancelable:!0,inChartArea:this.isPointInArea(e)},s=a=>(a.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins("beforeEvent",i,s)===!1)return;const o=this._handleEvent(e,n,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(o||i.changed)&&this.render(),this}_handleEvent(e,n,i){const{_active:s=[],options:o}=this,a=n,r=this._getActiveElements(e,s,i,a),l=np(e),u=By(e,this._lastEvent,i,l);i&&(this._lastEvent=null,je(o.onHover,[e,r,this],this),l&&je(o.onClick,[e,r,this],this));const c=!$o(r,s);return(c||n)&&(this._active=r,this._updateHoverStyles(r,s,n)),this._lastEvent=u,c}_getActiveElements(e,n,i,s){if(e.type==="mouseout")return[];if(!i)return n;const o=this.options.hover;return this.getElementsAtEventForMode(e,o.mode,o,s)}},Ae(Rn,"defaults",ut),Ae(Rn,"instances",Oo),Ae(Rn,"overrides",fi),Ae(Rn,"registry",bn),Ae(Rn,"version",Ry),Ae(Rn,"getChart",Wu),Rn);function Hu(){return Ne(Un.instances,t=>t._plugins.invalidate())}function $f(t,e,n=e){t.lineCap=Ce(n.borderCapStyle,e.borderCapStyle),t.setLineDash(Ce(n.borderDash,e.borderDash)),t.lineDashOffset=Ce(n.borderDashOffset,e.borderDashOffset),t.lineJoin=Ce(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=Ce(n.borderWidth,e.borderWidth),t.strokeStyle=Ce(n.borderColor,e.borderColor)}function Ny(t,e,n){t.lineTo(n.x,n.y)}function Wy(t){return t.stepped?Tp:t.tension||t.cubicInterpolationMode==="monotone"?Ip:Ny}function Ff(t,e,n={}){const i=t.length,{start:s=0,end:o=i-1}=n,{start:a,end:r}=e,l=Math.max(s,a),u=Math.min(o,r),c=sr&&o>r;return{count:i,start:l,loop:e.loop,ilen:u(a+(u?r-w:w))%o,y=()=>{p!==v&&(t.lineTo(c,v),t.lineTo(c,p),t.lineTo(c,b))};for(l&&(h=s[_(0)],t.moveTo(h.x,h.y)),f=0;f<=r;++f){if(h=s[_(f)],h.skip)continue;const w=h.x,x=h.y,M=w|0;M===m?(xv&&(v=x),c=(d*c+w)/++d):(y(),t.lineTo(w,x),m=M,d=0,p=v=x),b=x}y()}function wr(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?jy:Hy}function Uy(t){return t.stepped?lb:t.tension||t.cubicInterpolationMode==="monotone"?ub:ii}function Yy(t,e,n,i){let s=e._path;s||(s=e._path=new Path2D,e.path(s,n,i)&&s.closePath()),$f(t,e.options),t.stroke(s)}function Zy(t,e,n,i){const{segments:s,options:o}=e,a=wr(e);for(const r of s)$f(t,o,r.style),t.beginPath(),a(t,e,r,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const Xy=typeof Path2D=="function";function Ky(t,e,n,i){Xy&&!e.options.segment?Yy(t,e,n,i):Zy(t,e,n,i)}class On extends Nt{constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;eb(this._points,i,e,s,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=gb(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,s=e[n],o=this.points,a=Cf(this,{property:n,start:s,end:s});if(!a.length)return;const r=[],l=Uy(i);let u,c;for(u=0,c=a.length;ue!=="borderDash"&&e!=="fill"});function ju(t,e,n,i){const s=t.options,{[n]:o}=t.getProps([n],i);return Math.abs(e-o){r=ha(a,r,s);const l=s[a],u=s[r];i!==null?(o.push({x:l.x,y:i}),o.push({x:u.x,y:i})):n!==null&&(o.push({x:n,y:l.y}),o.push({x:n,y:u.y}))}),o}function ha(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function Uu(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function zf(t,e){let n=[],i=!1;return Je(t)?(i=!0,n=t):n=Gy(t,e),n.length?new On({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function Yu(t){return t&&t.fill!==!1}function Jy(t,e,n){let s=t[e].fill;const o=[e];let a;if(!n)return s;for(;s!==!1&&o.indexOf(s)===-1;){if(!Ct(s))return s;if(a=t[s],!a)return!1;if(a.visible)return s;o.push(s),s=a.fill}return!1}function e0(t,e,n){const i=s0(t);if(_e(i))return isNaN(i.value)?!1:i;let s=parseFloat(i);return Ct(s)&&Math.floor(s)===s?t0(i[0],e,s,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function t0(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function n0(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:_e(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function i0(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:_e(t)?i=t.value:i=e.getBaseValue(),i}function s0(t){const e=t.options,n=e.fill;let i=Ce(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function o0(t){const{scale:e,index:n,line:i}=t,s=[],o=i.segments,a=i.points,r=a0(e,n);r.push(zf({x:null,y:e.bottom},i));for(let l=0;l=0;--a){const r=s[a].$filler;r&&(r.line.updateControlPoints(o,r.axis),i&&r.fill&&Ka(t.ctx,r,o))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let s=i.length-1;s>=0;--s){const o=i[s].$filler;Yu(o)&&Ka(t.ctx,o,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!Yu(i)||n.drawTime!=="beforeDatasetDraw"||Ka(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const Qu=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},v0=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class Gu extends Nt{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=je(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,s)=>e.sort(i,s,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,s=Dt(i.font),o=s.size,a=this._computeTitleHeight(),{boxWidth:r,itemHeight:l}=Qu(i,o);let u,c;n.font=s.string,this.isHorizontal()?(u=this.maxWidth,c=this._fitRows(a,o,r,l)+10):(c=this.maxHeight,u=this._fitCols(a,s,r,l)+10),this.width=Math.min(u,e.maxWidth||this.maxWidth),this.height=Math.min(c,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,s){const{ctx:o,maxWidth:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],u=this.lineWidths=[0],c=s+r;let d=e;o.textAlign="left",o.textBaseline="middle";let f=-1,h=-c;return this.legendItems.forEach((m,p)=>{const v=i+n/2+o.measureText(m.text).width;(p===0||u[u.length-1]+v+2*r>a)&&(d+=c,u[u.length-(p>0?0:1)]=0,h+=c,f++),l[p]={left:0,top:h,row:f,width:v,height:s},u[u.length-1]+=v+r}),d}_fitCols(e,n,i,s){const{ctx:o,maxHeight:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],u=this.columnSizes=[],c=a-e;let d=r,f=0,h=0,m=0,p=0;return this.legendItems.forEach((v,b)=>{const{itemWidth:_,itemHeight:y}=p0(i,n,o,v,s);b>0&&h+y+2*r>c&&(d+=f+r,u.push({width:f,height:h}),m+=f+r,p++,f=h=0),l[b]={left:m,top:h,col:p,width:_,height:y},f=Math.max(f,_),h+=y+r}),d+=f,u.push({width:f,height:h}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:s},rtl:o}}=this,a=Ai(o,this.left,this.width);if(this.isHorizontal()){let r=0,l=Xt(i,this.left+s,this.right-this.lineWidths[r]);for(const u of n)r!==u.row&&(r=u.row,l=Xt(i,this.left+s,this.right-this.lineWidths[r])),u.top+=this.top+e+s,u.left=a.leftForLtr(a.x(l),u.width),l+=u.width+s}else{let r=0,l=Xt(i,this.top+e+s,this.bottom-this.columnSizes[r].height);for(const u of n)u.col!==r&&(r=u.col,l=Xt(i,this.top+e+s,this.bottom-this.columnSizes[r].height)),u.top=l,u.left+=this.left+s,u.left=a.leftForLtr(a.x(u.left),u.width),l+=u.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;Us(e,this),this._draw(),Ys(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:s}=this,{align:o,labels:a}=e,r=ut.color,l=Ai(e.rtl,this.left,this.width),u=Dt(a.font),{padding:c}=a,d=u.size,f=d/2;let h;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=u.string;const{boxWidth:m,boxHeight:p,itemHeight:v}=Qu(a,d),b=function(M,E,L){if(isNaN(m)||m<=0||isNaN(p)||p<0)return;s.save();const O=Ce(L.lineWidth,1);if(s.fillStyle=Ce(L.fillStyle,r),s.lineCap=Ce(L.lineCap,"butt"),s.lineDashOffset=Ce(L.lineDashOffset,0),s.lineJoin=Ce(L.lineJoin,"miter"),s.lineWidth=O,s.strokeStyle=Ce(L.strokeStyle,r),s.setLineDash(Ce(L.lineDash,[])),a.usePointStyle){const D={radius:p*Math.SQRT2/2,pointStyle:L.pointStyle,rotation:L.rotation,borderWidth:O},R=l.xPlus(M,m/2),T=E+f;mf(s,D,R,T,a.pointStyleWidth&&m)}else{const D=E+Math.max((d-p)/2,0),R=l.leftForLtr(M,m),T=Ei(L.borderRadius);s.beginPath(),Object.values(T).some(j=>j!==0)?Ho(s,{x:R,y:D,w:m,h:p,radius:T}):s.rect(R,D,m,p),s.fill(),O!==0&&s.stroke()}s.restore()},_=function(M,E,L){Wo(s,L.text,M,E+v/2,u,{strikethrough:L.hidden,textAlign:l.textAlign(L.textAlign)})},y=this.isHorizontal(),w=this._computeTitleHeight();y?h={x:Xt(o,this.left+c,this.right-i[0]),y:this.top+c+w,line:0}:h={x:this.left+c,y:Xt(o,this.top+w+c,this.bottom-n[0].height),line:0},wf(this.ctx,e.textDirection);const x=v+c;this.legendItems.forEach((M,E)=>{s.strokeStyle=M.fontColor,s.fillStyle=M.fontColor;const L=s.measureText(M.text).width,O=l.textAlign(M.textAlign||(M.textAlign=a.textAlign)),D=m+f+L;let R=h.x,T=h.y;l.setWidth(this.width),y?E>0&&R+D+c>this.right&&(T=h.y+=x,h.line++,R=h.x=Xt(o,this.left+c,this.right-i[h.line])):E>0&&T+x>this.bottom&&(R=h.x=R+n[h.line].width+c,h.line++,T=h.y=Xt(o,this.top+w+c,this.bottom-n[h.line].height));const j=l.x(R);if(b(j,T,M),R=gp(O,R+m+f,y?R+D:this.right,e.rtl),_(l.x(R),T,M),y)h.x+=D+c;else if(typeof M.text!="string"){const F=u.lineHeight;h.y+=Wf(M,F)+c}else h.y+=x}),_f(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=Dt(n.font),s=Bt(n.padding);if(!n.display)return;const o=Ai(e.rtl,this.left,this.width),a=this.ctx,r=n.position,l=i.size/2,u=s.top+l;let c,d=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),c=this.top+u,d=Xt(e.align,d,this.right-f);else{const m=this.columnSizes.reduce((p,v)=>Math.max(p,v.height),0);c=u+Xt(e.align,this.top,this.bottom-m-e.labels.padding-this._computeTitleHeight())}const h=Xt(r,d,d+f);a.textAlign=o.textAlign(ff(r)),a.textBaseline="middle",a.strokeStyle=n.color,a.fillStyle=n.color,a.font=i.string,Wo(a,n.text,h,c,i)}_computeTitleHeight(){const e=this.options.title,n=Dt(e.font),i=Bt(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,s,o;if(Di(e,this.left,this.right)&&Di(n,this.top,this.bottom)){for(o=this.legendHitBoxes,i=0;io.length>a.length?o:a)),e+n.size/2+i.measureText(s).width}function y0(t,e,n){let i=t;return typeof e.text!="string"&&(i=Wf(e,n)),i}function Wf(t,e){const n=t.text?t.text.length:0;return e*n}function x0(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var Hf={id:"legend",_element:Gu,start(t,e,n){const i=t.legend=new Gu({ctx:t.ctx,options:n,chart:t});Hn.configure(t,i,n),Hn.addBox(t,i)},stop(t){Hn.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;Hn.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,s=n.chart;s.isDatasetVisible(i)?(s.hide(i),e.hidden=!0):(s.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:s,color:o,useBorderRadius:a,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map(l=>{const u=l.controller.getStyle(n?0:void 0),c=Bt(u.borderWidth);return{text:e[l.index].label,fillStyle:u.backgroundColor,fontColor:o,hidden:!l.visible,lineCap:u.borderCapStyle,lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:(c.width+c.height)/4,strokeStyle:u.borderColor,pointStyle:i||u.pointStyle,rotation:u.rotation,textAlign:s||u.textAlign,borderRadius:a&&(r||u.borderRadius),datasetIndex:l.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};const _s={average(t){if(!t.length)return!1;let e,n,i=new Set,s=0,o=0;for(e=0,n=t.length;er+l)/i.size,y:s/o}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,s=Number.POSITIVE_INFINITY,o,a,r;for(o=0,a=t.length;o-1?t.split(` +`):t}function w0(t,e){const{element:n,datasetIndex:i,index:s}=e,o=t.getDatasetMeta(i).controller,{label:a,value:r}=o.getLabelAndValue(s);return{chart:t,label:a,parsed:o.getParsed(s),raw:t.data.datasets[i].data[s],formattedValue:r,dataset:o.getDataset(),dataIndex:s,datasetIndex:i,element:n}}function Ju(t,e){const n=t.chart.ctx,{body:i,footer:s,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=Dt(e.bodyFont),u=Dt(e.titleFont),c=Dt(e.footerFont),d=o.length,f=s.length,h=i.length,m=Bt(e.padding);let p=m.height,v=0,b=i.reduce((w,x)=>w+x.before.length+x.lines.length+x.after.length,0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(p+=d*u.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){const w=e.displayColors?Math.max(r,l.lineHeight):l.lineHeight;p+=h*w+(b-h)*l.lineHeight+(b-1)*e.bodySpacing}f&&(p+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const y=function(w){v=Math.max(v,n.measureText(w).width+_)};return n.save(),n.font=u.string,Ne(t.title,y),n.font=l.string,Ne(t.beforeBody.concat(t.afterBody),y),_=e.displayColors?a+2+e.boxPadding:0,Ne(i,w=>{Ne(w.before,y),Ne(w.lines,y),Ne(w.after,y)}),_=0,n.font=c.string,Ne(t.footer,y),n.restore(),v+=m.width,{width:v,height:p}}function _0(t,e){const{y:n,height:i}=e;return nt.height-i/2?"bottom":"center"}function S0(t,e,n,i){const{x:s,width:o}=i,a=n.caretSize+n.caretPadding;if(t==="left"&&s+o+a>e.width||t==="right"&&s-o-a<0)return!0}function k0(t,e,n,i){const{x:s,width:o}=n,{width:a,chartArea:{left:r,right:l}}=t;let u="center";return i==="center"?u=s<=(r+l)/2?"left":"right":s<=o/2?u="left":s>=a-o/2&&(u="right"),S0(u,t,e,n)&&(u="center"),u}function ec(t,e,n){const i=n.yAlign||e.yAlign||_0(t,n);return{xAlign:n.xAlign||e.xAlign||k0(t,e,n,i),yAlign:i}}function C0(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function M0(t,e,n){let{y:i,height:s}=t;return e==="top"?i+=n:e==="bottom"?i-=s+n:i-=s/2,i}function tc(t,e,n,i){const{caretSize:s,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=n,u=s+o,{topLeft:c,topRight:d,bottomLeft:f,bottomRight:h}=Ei(a);let m=C0(e,r);const p=M0(e,l,u);return l==="center"?r==="left"?m+=u:r==="right"&&(m-=u):r==="left"?m-=Math.max(c,f)+s:r==="right"&&(m+=Math.max(d,h)+s),{x:cn(m,0,i.width-e.width),y:cn(p,0,i.height-e.height)}}function bo(t,e,n){const i=Bt(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function nc(t){return pn([],Mn(t))}function P0(t,e,n){return vi(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function ic(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const jf={beforeTitle:Sn,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex"u"?jf[e].call(n,i):s}class Sr extends Nt{constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&n.options.animation&&i.animations,o=new cl(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=P0(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,s=jt(i,"beforeTitle",this,e),o=jt(i,"title",this,e),a=jt(i,"afterTitle",this,e);let r=[];return r=pn(r,Mn(s)),r=pn(r,Mn(o)),r=pn(r,Mn(a)),r}getBeforeBody(e,n){return nc(jt(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,s=[];return Ne(e,o=>{const a={before:[],lines:[],after:[]},r=ic(i,o);pn(a.before,Mn(jt(r,"beforeLabel",this,o))),pn(a.lines,jt(r,"label",this,o)),pn(a.after,Mn(jt(r,"afterLabel",this,o))),s.push(a)}),s}getAfterBody(e,n){return nc(jt(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,s=jt(i,"beforeFooter",this,e),o=jt(i,"footer",this,e),a=jt(i,"afterFooter",this,e);let r=[];return r=pn(r,Mn(s)),r=pn(r,Mn(o)),r=pn(r,Mn(a)),r}_createItems(e){const n=this._active,i=this.chart.data,s=[],o=[],a=[];let r=[],l,u;for(l=0,u=n.length;le.filter(c,d,f,i))),e.itemSort&&(r=r.sort((c,d)=>e.itemSort(c,d,i))),Ne(r,c=>{const d=ic(e.callbacks,c);s.push(jt(d,"labelColor",this,c)),o.push(jt(d,"labelPointStyle",this,c)),a.push(jt(d,"labelTextColor",this,c))}),this.labelColors=s,this.labelPointStyles=o,this.labelTextColors=a,this.dataPoints=r,r}update(e,n){const i=this.options.setContext(this.getContext()),s=this._active;let o,a=[];if(!s.length)this.opacity!==0&&(o={opacity:0});else{const r=_s[i.position].call(this,s,this._eventPosition);a=this._createItems(i),this.title=this.getTitle(a,i),this.beforeBody=this.getBeforeBody(a,i),this.body=this.getBody(a,i),this.afterBody=this.getAfterBody(a,i),this.footer=this.getFooter(a,i);const l=this._size=Ju(this,i),u=Object.assign({},r,l),c=ec(this.chart,i,u),d=tc(i,u,c,this.chart);this.xAlign=c.xAlign,this.yAlign=c.yAlign,o={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:r.x,caretY:r.y}}this._tooltipItems=a,this.$context=void 0,o&&this._resolveAnimations().update(this,o),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,s){const o=this.getCaretPosition(e,i,s);n.lineTo(o.x1,o.y1),n.lineTo(o.x2,o.y2),n.lineTo(o.x3,o.y3)}getCaretPosition(e,n,i){const{xAlign:s,yAlign:o}=this,{caretSize:a,cornerRadius:r}=i,{topLeft:l,topRight:u,bottomLeft:c,bottomRight:d}=Ei(r),{x:f,y:h}=e,{width:m,height:p}=n;let v,b,_,y,w,x;return o==="center"?(w=h+p/2,s==="left"?(v=f,b=v-a,y=w+a,x=w-a):(v=f+m,b=v+a,y=w-a,x=w+a),_=v):(s==="left"?b=f+Math.max(l,c)+a:s==="right"?b=f+m-Math.max(u,d)-a:b=this.caretX,o==="top"?(y=h,w=y-a,v=b-a,_=b+a):(y=h+p,w=y+a,v=b+a,_=b-a),x=y),{x1:v,x2:b,x3:_,y1:y,y2:w,y3:x}}drawTitle(e,n,i){const s=this.title,o=s.length;let a,r,l;if(o){const u=Ai(i.rtl,this.x,this.width);for(e.x=bo(this,i.titleAlign,i),n.textAlign=u.textAlign(i.titleAlign),n.textBaseline="middle",a=Dt(i.titleFont),r=i.titleSpacing,n.fillStyle=i.titleColor,n.font=a.string,l=0;l_!==0)?(e.beginPath(),e.fillStyle=o.multiKeyBackground,Ho(e,{x:p,y:m,w:u,h:l,radius:b}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),Ho(e,{x:v,y:m+1,w:u-2,h:l-2,radius:b}),e.fill()):(e.fillStyle=o.multiKeyBackground,e.fillRect(p,m,u,l),e.strokeRect(p,m,u,l),e.fillStyle=a.backgroundColor,e.fillRect(v,m+1,u-2,l-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:s}=this,{bodySpacing:o,bodyAlign:a,displayColors:r,boxHeight:l,boxWidth:u,boxPadding:c}=i,d=Dt(i.bodyFont);let f=d.lineHeight,h=0;const m=Ai(i.rtl,this.x,this.width),p=function(L){n.fillText(L,m.x(e.x+h),e.y+f/2),e.y+=f+o},v=m.textAlign(a);let b,_,y,w,x,M,E;for(n.textAlign=a,n.textBaseline="middle",n.font=d.string,e.x=bo(this,v,i),n.fillStyle=i.bodyColor,Ne(this.beforeBody,p),h=r&&v!=="right"?a==="center"?u/2+c:u+2+c:0,w=0,M=s.length;w0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,s=i&&i.x,o=i&&i.y;if(s||o){const a=_s[e.position].call(this,this._active,this._eventPosition);if(!a)return;const r=this._size=Ju(this,e),l=Object.assign({},a,this._size),u=ec(n,e,l),c=tc(e,l,u,n);(s._to!==c.x||o._to!==c.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=r.width,this.height=r.height,this.caretX=a.x,this.caretY=a.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},o={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const a=Bt(n.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&r&&(e.save(),e.globalAlpha=i,this.drawBackground(o,e,s,n),wf(e,n.textDirection),o.y+=a.top,this.drawTitle(o,e,n),this.drawBody(o,e,n),this.drawFooter(o,e,n),_f(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,s=e.map(({datasetIndex:r,index:l})=>{const u=this.chart.getDatasetMeta(r);if(!u)throw new Error("Cannot find a dataset at index "+r);return{datasetIndex:r,element:u.data[l],index:l}}),o=!$o(i,s),a=this._positionChanged(s,n);(o||a)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,o=this._active||[],a=this._getActiveElements(e,o,n,i),r=this._positionChanged(a,e),l=n||!$o(a,o)||r;return l&&(this._active=a,(s.enabled||s.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,i,s){const o=this.options;if(e.type==="mouseout")return[];if(!s)return n.filter(r=>this.chart.data.datasets[r.datasetIndex]&&this.chart.getDatasetMeta(r.datasetIndex).controller.getParsed(r.index)!==void 0);const a=this.chart.getElementsAtEventForMode(e,o.mode,o,i);return o.reverse&&a.reverse(),a}_positionChanged(e,n){const{caretX:i,caretY:s,options:o}=this,a=_s[o.position].call(this,e,n);return a!==!1&&(i!==a.x||s!==a.y)}}Ae(Sr,"positioners",_s);var T0={id:"tooltip",_element:Sr,positioners:_s,afterInit(t,e,n){n&&(t.tooltip=new Sr({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:jf},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};function I0(t,e){const n=[],{bounds:s,step:o,min:a,max:r,precision:l,count:u,maxTicks:c,maxDigits:d,includeBounds:f}=t,h=o||1,m=c-1,{min:p,max:v}=e,b=!Ke(a),_=!Ke(r),y=!Ke(u),w=(v-p)/(d+1);let x=su((v-p)/m/h)*h,M,E,L,O;if(x<1e-14&&!b&&!_)return[{value:p},{value:v}];O=Math.ceil(v/x)-Math.floor(p/x),O>m&&(x=su(O*x/m/h)*h),Ke(l)||(M=Math.pow(10,l),x=Math.ceil(x*M)/M),s==="ticks"?(E=Math.floor(p/x)*x,L=Math.ceil(v/x)*x):(E=p,L=v),b&&_&&o&&ap((r-a)/o,x/1e3)?(O=Math.round(Math.min((r-a)/x,c)),x=(r-a)/O,E=a,L=r):y?(E=b?a:E,L=_?r:L,O=u-1,x=(L-E)/O):(O=(L-E)/x,Is(O,Math.round(O),x/1e3)?O=Math.round(O):O=Math.ceil(O));const D=Math.max(ou(x),ou(E));M=Math.pow(10,Ke(l)?D:l),E=Math.round(E*M)/M,L=Math.round(L*M)/M;let R=0;for(b&&(f&&E!==a?(n.push({value:a}),Er)break;n.push({value:T})}return _&&f&&L!==r?n.length&&Is(n[n.length-1].value,r,sc(r,w,t))?n[n.length-1].value=r:n.push({value:r}):(!_||L===r)&&n.push({value:L}),n}function sc(t,e,{horizontal:n,minRotation:i}){const s=kt(i),o=(n?Math.sin(s):Math.cos(s))||.001,a=.75*e*(""+t).length;return Math.min(e/o,a)}class D0 extends Zs{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return Ke(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:s,max:o}=this;const a=l=>s=n?s:l,r=l=>o=i?o:l;if(e){const l=Hi(s),u=Hi(o);l<0&&u<0?r(0):l>0&&u>0&&a(0)}if(s===o){let l=o===0?1:Math.abs(o*.05);r(o+l),e||a(s-l)}this.min=s,this.max=o}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,s;return i?(s=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},o=this._range||this,a=I0(s,o);return e.bounds==="ticks"&&rp(a,this,"value"),e.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const s=(i-n)/Math.max(e.length-1,1)/2;n-=s,i+=s}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return sl(e,this.chart.options.locale,this.options.ticks.format)}}class Yo extends D0{determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=Ct(e)?e:0,this.max=Ct(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=kt(this.options.ticks.minRotation),s=(e?Math.sin(i):Math.cos(i))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,o.lineHeight/s))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}Ae(Yo,"id","linear"),Ae(Yo,"defaults",{ticks:{callback:hf.formatters.numeric}});const ma={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Ut=Object.keys(ma);function oc(t,e){return t-e}function ac(t,e){if(Ke(e))return null;const n=t._adapter,{parser:i,round:s,isoWeekday:o}=t._parseOpts;let a=e;return typeof i=="function"&&(a=i(a)),Ct(a)||(a=typeof i=="string"?n.parse(a,i):n.parse(a)),a===null?null:(s&&(a=s==="week"&&(di(o)||o===!0)?n.startOf(a,"isoWeek",o):n.startOf(a,s)),+a)}function rc(t,e,n,i){const s=Ut.length;for(let o=Ut.indexOf(t);o=Ut.indexOf(n);o--){const a=Ut[o];if(ma[a].common&&t._adapter.diff(s,i,a)>=e-1)return a}return Ut[n?Ut.indexOf(n):0]}function V0(t){for(let e=Ut.indexOf(t)+1,n=Ut.length;e=e?n[i]:n[s];t[o]=!0}}function E0(t,e,n,i){const s=t._adapter,o=+s.startOf(e[0].value,i),a=e[e.length-1].value;let r,l;for(r=o;r<=a;r=+s.add(r,1,i))l=n[r],l>=0&&(e[l].major=!0);return e}function uc(t,e,n){const i=[],s={},o=e.length;let a,r;for(a=0;a+e.value))}initOffsets(e=[]){let n=0,i=0,s,o;this.options.offset&&e.length&&(s=this.getDecimalForValue(e[0]),e.length===1?n=1-s:n=(this.getDecimalForValue(e[1])-s)/2,o=this.getDecimalForValue(e[e.length-1]),e.length===1?i=o:i=(o-this.getDecimalForValue(e[e.length-2]))/2);const a=e.length<3?.5:.25;n=cn(n,0,a),i=cn(i,0,a),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,s=this.options,o=s.time,a=o.unit||rc(o.minUnit,n,i,this._getLabelCapacity(n)),r=Ce(s.ticks.stepSize,1),l=a==="week"?o.isoWeekday:!1,u=di(l)||l===!0,c={};let d=n,f,h;if(u&&(d=+e.startOf(d,"isoWeek",l)),d=+e.startOf(d,u?"day":a),e.diff(i,n,a)>1e5*r)throw new Error(n+" and "+i+" are too far apart with stepSize of "+r+" "+a);const m=s.ticks.source==="data"&&this.getDataTimestamps();for(f=d,h=0;f+p)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const s=this.options.time.displayFormats,o=this._unit,a=n||s[o];return this._adapter.format(e,a)}_tickFormatFunction(e,n,i,s){const o=this.options,a=o.ticks.callback;if(a)return je(a,[e,n,i],this);const r=o.time.displayFormats,l=this._unit,u=this._majorUnit,c=l&&r[l],d=u&&r[u],f=i[n],h=u&&d&&f&&f.major;return this._adapter.format(e,s||(h?d:c))}generateTickLabels(e){let n,i,s;for(n=0,i=e.length;n0?r:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,i=s.length;n=t[i].pos&&e<=t[s].pos&&({lo:i,hi:s}=oi(t,"pos",e)),{pos:o,time:r}=t[i],{pos:a,time:l}=t[s]):(e>=t[i].time&&e<=t[s].time&&({lo:i,hi:s}=oi(t,"time",e)),{time:o,pos:r}=t[i],{time:a,pos:l}=t[s]);const u=a-o;return u?r+(l-r)*(e-o)/u:r}class cc extends Zi{constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=yo(n,this.min),this._tableRange=yo(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,s=[],o=[];let a,r,l,u,c;for(a=0,r=e.length;a=n&&u<=i&&s.push(u);if(s.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(a=0,r=s.length;as-o)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(yo(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return yo(this._table,i*this._tableRange+this._minPos,!0)}}Ae(cc,"id","timeseries"),Ae(cc,"defaults",Zi.defaults);const Uf={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},A0={ariaLabel:{type:String},ariaDescribedby:{type:String}},q0={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...Uf,...A0},L0=ug[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function Ci(t){return Ed(t)?Tn(t):t}function R0(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Ed(e)?new Proxy(t,{}):t}function $0(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function Yf(t,e){t.labels=e}function Zf(t,e,n){const i=[];t.datasets=e.map(s=>{const o=t.datasets.find(a=>a[n]===s[n]);return!o||!s.data||i.includes(o)?{...s}:(i.push(o),Object.assign(o,s),o)})}function F0(t,e){const n={labels:[],datasets:[]};return Yf(n,t.labels),Zf(n,t.datasets,e),n}const z0=ye({props:q0,setup(t,e){let{expose:n,slots:i}=e;const s=B(null),o=Vd(null);n({chart:o});const a=()=>{if(!s.value)return;const{type:u,data:c,options:d,plugins:f,datasetIdKey:h}=t,m=F0(c,h),p=R0(m,c);o.value=new Un(s.value,{type:u,data:p,options:{...d},plugins:f})},r=()=>{const u=Tn(o.value);u&&(t.destroyDelay>0?setTimeout(()=>{u.destroy(),o.value=null},t.destroyDelay):(u.destroy(),o.value=null))},l=u=>{u.update(t.updateMode)};return hn(a),cg(r),he([()=>t.options,()=>t.data],(u,c)=>{let[d,f]=u,[h,m]=c;const p=Tn(o.value);if(!p)return;let v=!1;if(d){const b=Ci(d),_=Ci(h);b&&b!==_&&($0(p,b),v=!0)}if(f){const b=Ci(f.labels),_=Ci(m.labels),y=Ci(f.datasets),w=Ci(m.datasets);b!==_&&(Yf(p.config.data,b),v=!0),y&&y!==w&&(Zf(p.config.data,y,t.datasetIdKey),v=!0)}v&&bt(()=>{l(p)})},{deep:!0}),()=>S("canvas",{role:"img",ariaLabel:t.ariaLabel,ariaDescribedby:t.ariaDescribedby,ref:s},[S("p",{},[i.default?i.default():""])])}});function B0(t,e){return Un.register(e),ye({props:Uf,setup(n,i){let{expose:s}=i;const o=Vd(null),a=r=>{o.value=r?.chart};return s({chart:o}),()=>S(z0,L0({ref:a},{type:t,...n}))}})}const Xf=B0("line",Li),fl=dg("localData",()=>{const t=gi(),e=B(!t.platform.is.mobile),n=()=>{e.value=!e.value},i=B([]),s=l=>{i.value.includes(l)||i.value.push(l)},o=l=>{i.value=i.value.filter(u=>u!==l)};return{hiddenDatasets:i,isDatasetHidden:l=>i.value.includes(l),toggleDataset:l=>{i.value.includes(l)?o(l):s(l)},hideDataset:s,showDataset:o,legendVisible:e,toggleLegendVisibility:n}}),ui=[];let Xi;function N0(t){Xi=t.keyCode===27}function W0(){Xi===!0&&(Xi=!1)}function H0(t){Xi===!0&&(Xi=!1,aa(t,27)===!0&&ui[ui.length-1](t))}function Kf(t){window[t]("keydown",N0),window[t]("blur",W0),window[t]("keyup",H0),Xi=!1}function Qf(t){zn.is.desktop===!0&&(ui.push(t),ui.length===1&&Kf("addEventListener"))}function Zo(t){const e=ui.indexOf(t);e!==-1&&(ui.splice(e,1),ui.length===0&&Kf("removeEventListener"))}const ci=[];function Gf(t){ci[ci.length-1](t)}function Jf(t){zn.is.desktop===!0&&(ci.push(t),ci.length===1&&document.body.addEventListener("focusin",Gf))}function kr(t){const e=ci.indexOf(t);e!==-1&&(ci.splice(e,1),ci.length===0&&document.body.removeEventListener("focusin",Gf))}const eh=Be({name:"QMenu",inheritAttrs:!1,props:{...Og,...Bd,...mn,...Kr,persistent:Boolean,autoClose:Boolean,separateClosePopup:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,fit:Boolean,cover:Boolean,square:Boolean,anchor:{type:String,validator:Ul},self:{type:String,validator:Ul},offset:{type:Array,validator:Dg},scrollTarget:zd,touchPosition:Boolean,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null}},emits:[...Fd,"click","escapeKey"],setup(t,{slots:e,emit:n,attrs:i}){let s=null,o,a,r;const l=Ue(),{proxy:u}=l,{$q:c}=u,d=B(null),f=B(!1),h=g(()=>t.persistent!==!0&&t.noRouteDismiss!==!0),m=gn(t,c),{registerTick:p,removeTick:v}=Ps(),{registerTimeout:b}=Ls(),{transitionProps:_,transitionStyle:y}=Nd(t),{localScrollTarget:w,changeScrollEvent:x,unconfigureScrollTarget:M}=Vg(t,G),{anchorEl:E,canShow:L}=Eg({showing:f}),{hide:O}=Wd({showing:f,canShow:L,handleShow:de,handleHide:V,hideOnRouteChange:h,processOnMount:!0}),{showPortal:D,hidePortal:R,renderPortal:T}=Hd(l,d,Me,"menu"),j={anchorEl:E,innerRef:d,onClickOutside(Q){if(t.persistent!==!0&&f.value===!0)return O(Q),(Q.type==="touchstart"||Q.target.classList.contains("q-dialog__backdrop"))&&At(Q),!0}},F=g(()=>Yl(t.anchor||(t.cover===!0?"center middle":"bottom start"),c.lang.rtl)),Y=g(()=>t.cover===!0?F.value:Yl(t.self||"top start",c.lang.rtl)),U=g(()=>(t.square===!0?" q-menu--square":"")+(m.value===!0?" q-menu--dark q-dark":"")),J=g(()=>t.autoClose===!0?{onClick:ce}:{}),Z=g(()=>f.value===!0&&t.persistent!==!0);he(Z,Q=>{Q===!0?(Qf(z),Ag(j)):(Zo(z),Zl(j))});function ae(){ca(()=>{let Q=d.value;Q&&Q.contains(document.activeElement)!==!0&&(Q=Q.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||Q.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||Q.querySelector("[autofocus], [data-autofocus]")||Q,Q.focus({preventScroll:!0}))})}function de(Q){if(s=t.noRefocus===!1?document.activeElement:null,Jf(me),D(),G(),o=void 0,Q!==void 0&&(t.touchPosition||t.contextMenu)){const Le=Ro(Q);if(Le.left!==void 0){const{top:tt,left:Ot}=E.value.getBoundingClientRect();o={left:Le.left-Ot,top:Le.top-tt}}}a===void 0&&(a=he(()=>c.screen.width+"|"+c.screen.height+"|"+t.self+"|"+t.anchor+"|"+c.lang.rtl,ee)),t.noFocus!==!0&&document.activeElement.blur(),p(()=>{ee(),t.noFocus!==!0&&ae()}),b(()=>{c.platform.is.ios===!0&&(r=t.autoClose,d.value.click()),ee(),D(!0),n("show",Q)},t.transitionDuration)}function V(Q){v(),R(),I(!0),s!==null&&(Q===void 0||Q.qClickOutside!==!0)&&(((Q?.type.indexOf("key")===0?s.closest('[tabindex]:not([tabindex^="-"])'):void 0)||s).focus(),s=null),b(()=>{R(!0),n("hide",Q)},t.transitionDuration)}function I(Q){o=void 0,a!==void 0&&(a(),a=void 0),(Q===!0||f.value===!0)&&(kr(me),M(),Zl(j),Zo(z)),Q!==!0&&(s=null)}function G(){(E.value!==null||t.scrollTarget!==void 0)&&(w.value=jd(E.value,t.scrollTarget),x(w.value,ee))}function ce(Q){r!==!0?(qg(u,Q),n("click",Q)):r=!1}function me(Q){Z.value===!0&&t.noFocus!==!0&&Ad(d.value,Q.target)!==!0&&ae()}function z(Q){t.noEscDismiss!==!0&&(n("escapeKey"),O(Q))}function ee(){Lg({targetEl:d.value,offset:t.offset,anchorEl:E.value,anchorOrigin:F.value,selfOrigin:Y.value,absoluteOffset:o,fit:t.fit,cover:t.cover,maxHeight:t.maxHeight,maxWidth:t.maxWidth})}function Me(){return S(As,_.value,()=>f.value===!0?S("div",{role:"menu",...i,ref:d,tabindex:-1,class:["q-menu q-position-engine scroll"+U.value,i.class],style:[i.style,y.value],...J.value},et(e.default)):null)}return Rt(I),Object.assign(u,{focus:ae,updatePosition:ee}),T}});function j0(t){return t??null}function dc(t,e){return t??(e===!0?`f_${mr()}`:null)}function th({getValue:t,required:e=!0}={}){if(fg.value===!0){const n=t!==void 0?B(j0(t())):B(null);return e===!0&&n.value===null&&hn(()=>{n.value=`f_${mr()}`}),t!==void 0&&he(t,i=>{n.value=dc(i,e)}),n}return t!==void 0?g(()=>dc(t(),e)):B(`f_${mr()}`)}const U0=Object.keys(qd);function Y0(t){return U0.reduce((e,n)=>{const i=t[n];return i!==void 0&&(e[n]=i),e},{})}const Xo=Be({name:"QBtnDropdown",props:{...qd,...Kr,modelValue:Boolean,split:Boolean,dropdownIcon:String,contentClass:[Array,String,Object],contentStyle:[Array,String,Object],cover:Boolean,persistent:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,autoClose:Boolean,noRefocus:Boolean,noFocus:Boolean,menuAnchor:{type:String,default:"bottom end"},menuSelf:{type:String,default:"top end"},menuOffset:Array,disableMainBtn:Boolean,disableDropdown:Boolean,noIconAnimation:Boolean,toggleAriaLabel:String},emits:["update:modelValue","click","beforeShow","show","beforeHide","hide"],setup(t,{slots:e,emit:n}){const{proxy:i}=Ue(),s=B(t.modelValue),o=B(null),a=th(),r=g(()=>{const w={"aria-expanded":s.value===!0?"true":"false","aria-haspopup":"true","aria-controls":a.value,"aria-label":t.toggleAriaLabel||i.$q.lang.label[s.value===!0?"collapse":"expand"](t.label)};return(t.disable===!0||t.split===!1&&t.disableMainBtn===!0||t.disableDropdown===!0)&&(w["aria-disabled"]="true"),w}),l=g(()=>"q-btn-dropdown__arrow"+(s.value===!0&&t.noIconAnimation===!1?" rotate-180":"")+(t.split===!1?" q-btn-dropdown__arrow-container":"")),u=g(()=>hg(t)),c=g(()=>Y0(t));he(()=>t.modelValue,w=>{o.value?.[w?"show":"hide"]()}),he(()=>t.split,y);function d(w){s.value=!0,n("beforeShow",w)}function f(w){n("show",w),n("update:modelValue",!0)}function h(w){s.value=!1,n("beforeHide",w)}function m(w){n("hide",w),n("update:modelValue",!1)}function p(w){n("click",w)}function v(w){In(w),y(),n("click",w)}function b(w){o.value?.toggle(w)}function _(w){o.value?.show(w)}function y(w){o.value?.hide(w)}return Object.assign(i,{show:_,hide:y,toggle:b}),hn(()=>{t.modelValue===!0&&_()}),()=>{const w=[S(we,{class:l.value,name:t.dropdownIcon||i.$q.iconSet.arrow.dropdown})];return t.disableDropdown!==!0&&w.push(S(eh,{ref:o,id:a.value,class:t.contentClass,style:t.contentStyle,cover:t.cover,fit:!0,persistent:t.persistent,noEscDismiss:t.noEscDismiss,noRouteDismiss:t.noRouteDismiss,autoClose:t.autoClose,noFocus:t.noFocus,noRefocus:t.noRefocus,anchor:t.menuAnchor,self:t.menuSelf,offset:t.menuOffset,separateClosePopup:!0,transitionShow:t.transitionShow,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,onBeforeShow:d,onShow:f,onBeforeHide:h,onHide:m},e.default)),t.split===!1?S(ke,{class:"q-btn-dropdown q-btn-dropdown--simple",...c.value,...r.value,disable:t.disable===!0||t.disableMainBtn===!0,noWrap:!0,round:!1,onClick:p},{default:()=>et(e.label,[]).concat(w),loading:e.loading}):S(xn,{class:"q-btn-dropdown q-btn-dropdown--split no-wrap q-btn-item",rounded:t.rounded,square:t.square,...u.value,glossy:t.glossy,stretch:t.stretch},()=>[S(ke,{class:"q-btn-dropdown--current",...c.value,disable:t.disable===!0||t.disableMainBtn===!0,noWrap:!0,round:!1,onClick:v},{default:e.label,loading:e.loading}),S(ke,{class:"q-btn-dropdown__arrow-container q-anchor--skip",...r.value,...u.value,disable:t.disable===!0||t.disableDropdown===!0,rounded:t.rounded,color:t.color,textColor:t.textColor,dense:t.dense,size:t.size,padding:t.padding,ripple:t.ripple},()=>w)])}}}),Z0={key:0,width:"20",height:"3"},X0=["stroke"],K0={key:1,width:"20",height:"3"},Q0=["stroke"],G0=ye({__name:"HistoryChartLegendCategory",props:{label:{},items:{},toggleDataset:{type:Function},getItemColor:{type:Function},getItemLineType:{type:Function},menuAnchor:{},menuSelf:{},menuFormat:{}},setup(t){return(e,n)=>(P(),X(Xo,{flat:"","no-caps":"",dense:"",color:"primary",label:e.label,class:Re(e.menuFormat),"menu-anchor":e.menuAnchor,"menu-self":e.menuSelf},{default:A(()=>[C(Bi,{dense:"",class:"q-pa-none",style:{"max-height":"200px","overflow-y":"auto"}},{default:A(()=>[(P(!0),K(Oe,null,Xe(e.items,(i,s)=>(P(),X(Ni,{key:i.text||s,clickable:"",dense:"",class:Re(["q-py-none",{"legend-item-hidden":i.hidden}]),onClick:o=>i.datasetIndex!==void 0&&e.toggleDataset(i.text,i.datasetIndex)},{default:A(()=>[C(Xn,{avatar:"",class:"q-pr-none"},{default:A(()=>[e.getItemLineType(i)==="dashed"?(P(),K("svg",Z0,[q("line",{x1:"0",y1:"1.5",x2:"20",y2:"1.5",stroke:e.getItemColor(i),"stroke-width":"2","stroke-dasharray":"8,2"},null,8,X0)])):(P(),K("svg",K0,[q("line",{x1:"0",y1:"1.5",x2:"30",y2:"1.5",stroke:e.getItemColor(i),"stroke-width":"2"},null,8,Q0)]))]),_:2},1024),C(Xn,null,{default:A(()=>[C(Wi,{class:"text-caption"},{default:A(()=>[Ve(oe(i.text),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})]),_:1},8,["label","class","menu-anchor","menu-self"]))}}),Ga=ht(G0,[["__scopeId","data-v-32f86429"]]),J0={class:"row justify-center items-center"},fc=ye({__name:"HistoryChartLegendCategoriesGroup",props:{categorizedLegendItems:{},toggleDataset:{type:Function},getItemColor:{type:Function},getItemLineType:{type:Function}},setup(t){return(e,n)=>(P(),K("div",J0,[C(Ga,{label:"Komponenten",items:e.categorizedLegendItems.component,toggleDataset:e.toggleDataset,getItemColor:e.getItemColor,getItemLineType:e.getItemLineType,menuAnchor:"bottom right",menuSelf:"top right"},null,8,["items","toggleDataset","getItemColor","getItemLineType"]),C(Ga,{label:"Ladepunkte",items:e.categorizedLegendItems.chargepoint,toggleDataset:e.toggleDataset,getItemColor:e.getItemColor,getItemLineType:e.getItemLineType,menuAnchor:"bottom middle",menuSelf:"top middle",menuFormat:"q-mx-lg"},null,8,["items","toggleDataset","getItemColor","getItemLineType"]),C(Ga,{label:"Fahrzeuge",items:e.categorizedLegendItems.vehicle,toggleDataset:e.toggleDataset,getItemColor:e.getItemColor,getItemLineType:e.getItemLineType,menuAnchor:"bottom left",menuSelf:"top left"},null,8,["items","toggleDataset","getItemColor","getItemLineType"])]))}}),ex={class:"row wrap q-pa-none items-center justify-center"},tx={key:0,width:"20",height:"3"},nx=["stroke"],ix={key:1,width:"20",height:"3"},sx=["stroke"],ox=ye({__name:"HistoryChartLegendStandard",props:{items:{},toggleDataset:{type:Function},getItemColor:{type:Function},getItemLineType:{type:Function}},setup(t){return(e,n)=>(P(),X(Bi,{class:"q-pa-none"},{default:A(()=>[q("div",ex,[(P(!0),K(Oe,null,Xe(e.items,(i,s)=>(P(),X(Ni,{key:i.text||s,clickable:"",dense:"",class:Re(["q-py-none",{"legend-item-hidden":i.hidden}]),onClick:o=>i.datasetIndex!==void 0&&e.toggleDataset(i.text,i.datasetIndex)},{default:A(()=>[C(Xn,{avatar:"",class:"q-pr-none"},{default:A(()=>[e.getItemLineType(i)==="dashed"?(P(),K("svg",tx,[q("line",{x1:"0",y1:"1.5",x2:"20",y2:"1.5",stroke:e.getItemColor(i),"stroke-width":"2","stroke-dasharray":"8,2"},null,8,nx)])):(P(),K("svg",ix,[q("line",{x1:"0",y1:"1.5",x2:"30",y2:"1.5",stroke:e.getItemColor(i),"stroke-width":"2"},null,8,sx)]))]),_:2},1024),C(Xn,null,{default:A(()=>[C(Wi,{class:"text-caption"},{default:A(()=>[Ve(oe(i.text),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))])]),_:1}))}}),ax=ht(ox,[["__scopeId","data-v-2d9f3a37"]]),rx=ye({__name:"HistoryChartLegend",props:{chart:{}},setup(t){const e=Fe(),n=gi(),i=t,s=fl(),o=B([]),a=g(()=>o.value.length>20),r=g(()=>e.batteryConfigured),l=()=>{if(!i.chart)return;let h=i.chart.options.plugins?.legend?.labels?.generateLabels?.(i.chart)||[];r.value||(h=h.filter(m=>m.text!=="Speicher ges."&&m.text!=="Speicher SoC")),h.forEach(m=>{m.text&&s.isDatasetHidden(m.text)&&(m.hidden=!0);const p=i.chart?.data.datasets[m.datasetIndex];m.category=p.category}),o.value=h},u=g(()=>{const h={chargepoint:[],vehicle:[],battery:[],component:[]};for(const m of o.value){const p=m.category;p&&h[p]?h[p].push(m):h.component.push(m)}return Object.keys(h).forEach(m=>{h[m].sort((p,v)=>(p.text||"").localeCompare(v.text||"",void 0,{numeric:!0}))}),h}),c=h=>!i.chart||h.datasetIndex===void 0?"#ccc":i.chart.data.datasets[h.datasetIndex].borderColor||"#ccc",d=h=>{if(!i.chart||h.datasetIndex===void 0)return;const p=i.chart.data.datasets[h.datasetIndex].borderDash;return Array.isArray(p)&&p.length>0?"dashed":"solid"},f=(h,m)=>{!i.chart||!h||m===void 0||(s.toggleDataset(h),s.isDatasetHidden(h)?i.chart.hide(m):i.chart.show(m),l(),i.chart.update())};return he(()=>i.chart,h=>{h&&(h.data.datasets.forEach((m,p)=>{typeof m.label=="string"&&s.isDatasetHidden(m.label)&&h.hide(p)}),h.update(),l())},{immediate:!0}),he(()=>e.vehicleList,async()=>{await bt(),l()}),(h,m)=>Te(n).screen.lt.md?(P(),X(fc,{key:0,categorizedLegendItems:u.value,toggleDataset:f,getItemColor:c,getItemLineType:d},null,8,["categorizedLegendItems"])):h.chart&&!Te(n).screen.lt.sm&&!a.value?(P(),X(ax,{key:1,items:o.value,toggleDataset:f,getItemColor:c,getItemLineType:d},null,8,["items"])):(P(),X(fc,{key:2,categorizedLegendItems:u.value,toggleDataset:f,getItemColor:c,getItemLineType:d},null,8,["categorizedLegendItems"]))}});class pi extends Error{}class lx extends pi{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class ux extends pi{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class cx extends pi{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class Oi extends pi{}class nh extends pi{constructor(e){super(`Invalid unit ${e}`)}}class Et extends pi{}class Ln extends pi{constructor(){super("Zone is an abstract class")}}const ne="numeric",fn="short",Kt="long",Ko={year:ne,month:ne,day:ne},ih={year:ne,month:fn,day:ne},dx={year:ne,month:fn,day:ne,weekday:fn},sh={year:ne,month:Kt,day:ne},oh={year:ne,month:Kt,day:ne,weekday:Kt},ah={hour:ne,minute:ne},rh={hour:ne,minute:ne,second:ne},lh={hour:ne,minute:ne,second:ne,timeZoneName:fn},uh={hour:ne,minute:ne,second:ne,timeZoneName:Kt},ch={hour:ne,minute:ne,hourCycle:"h23"},dh={hour:ne,minute:ne,second:ne,hourCycle:"h23"},fh={hour:ne,minute:ne,second:ne,hourCycle:"h23",timeZoneName:fn},hh={hour:ne,minute:ne,second:ne,hourCycle:"h23",timeZoneName:Kt},mh={year:ne,month:ne,day:ne,hour:ne,minute:ne},gh={year:ne,month:ne,day:ne,hour:ne,minute:ne,second:ne},vh={year:ne,month:fn,day:ne,hour:ne,minute:ne},ph={year:ne,month:fn,day:ne,hour:ne,minute:ne,second:ne},fx={year:ne,month:fn,day:ne,weekday:fn,hour:ne,minute:ne},bh={year:ne,month:Kt,day:ne,hour:ne,minute:ne,timeZoneName:fn},yh={year:ne,month:Kt,day:ne,hour:ne,minute:ne,second:ne,timeZoneName:fn},xh={year:ne,month:Kt,day:ne,weekday:Kt,hour:ne,minute:ne,timeZoneName:Kt},wh={year:ne,month:Kt,day:ne,weekday:Kt,hour:ne,minute:ne,second:ne,timeZoneName:Kt};class Xs{get type(){throw new Ln}get name(){throw new Ln}get ianaName(){return this.name}get isUniversal(){throw new Ln}offsetName(e,n){throw new Ln}formatOffset(e,n){throw new Ln}offset(e){throw new Ln}equals(e){throw new Ln}get isValid(){throw new Ln}}let Ja=null;class ga extends Xs{static get instance(){return Ja===null&&(Ja=new ga),Ja}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:n,locale:i}){return Vh(e,n,i)}formatOffset(e,n){return Es(this.offset(e),n)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}const Cr=new Map;function hx(t){let e=Cr.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),Cr.set(t,e)),e}const mx={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function gx(t,e){const n=t.format(e).replace(/\u200E/g,""),i=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,s,o,a,r,l,u,c]=i;return[a,s,o,r,l,u,c]}function vx(t,e){const n=t.formatToParts(e),i=[];for(let s=0;s=0?m:1e3+m,(f-h)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let hc={};function px(t,e={}){const n=JSON.stringify([t,e]);let i=hc[n];return i||(i=new Intl.ListFormat(t,e),hc[n]=i),i}const Mr=new Map;function Pr(t,e={}){const n=JSON.stringify([t,e]);let i=Mr.get(n);return i===void 0&&(i=new Intl.DateTimeFormat(t,e),Mr.set(n,i)),i}const Tr=new Map;function bx(t,e={}){const n=JSON.stringify([t,e]);let i=Tr.get(n);return i===void 0&&(i=new Intl.NumberFormat(t,e),Tr.set(n,i)),i}const Ir=new Map;function yx(t,e={}){const{base:n,...i}=e,s=JSON.stringify([t,i]);let o=Ir.get(s);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),Ir.set(s,o)),o}let Ss=null;function xx(){return Ss||(Ss=new Intl.DateTimeFormat().resolvedOptions().locale,Ss)}const Dr=new Map;function _h(t){let e=Dr.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Dr.set(t,e)),e}const Or=new Map;function wx(t){let e=Or.get(t);if(!e){const n=new Intl.Locale(t);e="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in e||(e={...Sh,...e}),Or.set(t,e)}return e}function _x(t){const e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));const n=t.indexOf("-u-");if(n===-1)return[t];{let i,s;try{i=Pr(t).resolvedOptions(),s=t}catch{const l=t.substring(0,n);i=Pr(l).resolvedOptions(),s=l}const{numberingSystem:o,calendar:a}=i;return[s,o,a]}}function Sx(t,e,n){return(n||e)&&(t.includes("-u-")||(t+="-u"),n&&(t+=`-ca-${n}`),e&&(t+=`-nu-${e}`)),t}function kx(t){const e=[];for(let n=1;n<=12;n++){const i=fe.utc(2009,n,1);e.push(t(i))}return e}function Cx(t){const e=[];for(let n=1;n<=7;n++){const i=fe.utc(2016,11,13+n);e.push(t(i))}return e}function xo(t,e,n,i){const s=t.listingMode();return s==="error"?null:s==="en"?n(e):i(e)}function Mx(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||_h(t.locale).numberingSystem==="latn"}class Px{constructor(e,n,i){this.padTo=i.padTo||0,this.floor=i.floor||!1;const{padTo:s,floor:o,...a}=i;if(!n||Object.keys(a).length>0){const r={useGrouping:!1,...i};i.padTo>0&&(r.minimumIntegerDigits=i.padTo),this.inf=bx(e,r)}}format(e){if(this.inf){const n=this.floor?Math.floor(e):e;return this.inf.format(n)}else{const n=this.floor?Math.floor(e):pl(e,3);return pt(n,this.padTo)}}}class Tx{constructor(e,n,i){this.opts=i,this.originalZone=void 0;let s;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){const a=-1*(e.offset/60),r=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&En.create(r).valid?(s=r,this.dt=e):(s="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,s=e.zone.name):(s="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const o={...this.opts};o.timeZone=o.timeZone||s,this.dtf=Pr(n,o)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(n=>{if(n.type==="timeZoneName"){const i=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:i}}else return n}):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class Ix{constructor(e,n,i){this.opts={style:"long",...i},!n&&Dh()&&(this.rtf=yx(e,i))}format(e,n){return this.rtf?this.rtf.format(e,n):Qx(n,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,n){return this.rtf?this.rtf.formatToParts(e,n):[]}}const Sh={firstDay:1,minimalDays:4,weekend:[6,7]};class ze{static fromOpts(e){return ze.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,n,i,s,o=!1){const a=e||rt.defaultLocale,r=a||(o?"en-US":xx()),l=n||rt.defaultNumberingSystem,u=i||rt.defaultOutputCalendar,c=Er(s)||rt.defaultWeekSettings;return new ze(r,l,u,c,a)}static resetCache(){Ss=null,Mr.clear(),Tr.clear(),Ir.clear(),Dr.clear(),Or.clear()}static fromObject({locale:e,numberingSystem:n,outputCalendar:i,weekSettings:s}={}){return ze.create(e,n,i,s)}constructor(e,n,i,s,o){const[a,r,l]=_x(e);this.locale=a,this.numberingSystem=n||r||null,this.outputCalendar=i||l||null,this.weekSettings=s,this.intl=Sx(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Mx(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&n?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:ze.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,Er(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,n=!1){return xo(this,e,qh,()=>{const i=this.intl==="ja"||this.intl.startsWith("ja-");n&=!i;const s=n?{month:e,day:"numeric"}:{month:e},o=n?"format":"standalone";if(!this.monthsCache[o][e]){const a=i?r=>this.dtFormatter(r,s).format():r=>this.extract(r,s,"month");this.monthsCache[o][e]=kx(a)}return this.monthsCache[o][e]})}weekdays(e,n=!1){return xo(this,e,$h,()=>{const i=n?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=n?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=Cx(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(){return xo(this,void 0,()=>Fh,()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[fe.utc(2016,11,13,9),fe.utc(2016,11,13,19)].map(n=>this.extract(n,e,"dayperiod"))}return this.meridiemCache})}eras(e){return xo(this,e,zh,()=>{const n={era:e};return this.eraCache[e]||(this.eraCache[e]=[fe.utc(-40,1,1),fe.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,n,i){const s=this.dtFormatter(e,n),o=s.formatToParts(),a=o.find(r=>r.type.toLowerCase()===i);return a?a.value:null}numberFormatter(e={}){return new Px(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,n={}){return new Tx(e,this.intl,n)}relFormatter(e={}){return new Ix(this.intl,this.isEnglish(),e)}listFormatter(e={}){return px(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||_h(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Oh()?wx(this.locale):Sh}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let tr=null;class zt extends Xs{static get utcInstance(){return tr===null&&(tr=new zt(0)),tr}static instance(e){return e===0?zt.utcInstance:new zt(e)}static parseSpecifier(e){if(e){const n=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new zt(ba(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Es(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Es(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,n){return Es(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class Dx extends Xs{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Nn(t,e){if(be(t)||t===null)return e;if(t instanceof Xs)return t;if(Lx(t)){const n=t.toLowerCase();return n==="default"?e:n==="local"||n==="system"?ga.instance:n==="utc"||n==="gmt"?zt.utcInstance:zt.parseSpecifier(n)||En.create(t)}else return Yn(t)?zt.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Dx(t)}const hl={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},mc={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Ox=hl.hanidec.replace(/[\[|\]]/g,"").split("");function Vx(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let n=0;n=o&&i<=a&&(e+=i-o)}}return parseInt(e,10)}else return e}const Vr=new Map;function Ex(){Vr.clear()}function an({numberingSystem:t},e=""){const n=t||"latn";let i=Vr.get(n);i===void 0&&(i=new Map,Vr.set(n,i));let s=i.get(e);return s===void 0&&(s=new RegExp(`${hl[n]}${e}`),i.set(e,s)),s}let gc=()=>Date.now(),vc="system",pc=null,bc=null,yc=null,xc=60,wc,_c=null;class rt{static get now(){return gc}static set now(e){gc=e}static set defaultZone(e){vc=e}static get defaultZone(){return Nn(vc,ga.instance)}static get defaultLocale(){return pc}static set defaultLocale(e){pc=e}static get defaultNumberingSystem(){return bc}static set defaultNumberingSystem(e){bc=e}static get defaultOutputCalendar(){return yc}static set defaultOutputCalendar(e){yc=e}static get defaultWeekSettings(){return _c}static set defaultWeekSettings(e){_c=Er(e)}static get twoDigitCutoffYear(){return xc}static set twoDigitCutoffYear(e){xc=e%100}static get throwOnInvalid(){return wc}static set throwOnInvalid(e){wc=e}static resetCaches(){ze.resetCache(),En.resetCache(),fe.resetCache(),Ex()}}class dn{constructor(e,n){this.reason=e,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const kh=[0,31,59,90,120,151,181,212,243,273,304,334],Ch=[0,31,60,91,121,152,182,213,244,274,305,335];function tn(t,e){return new dn("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function ml(t,e,n){const i=new Date(Date.UTC(t,e-1,n));t<100&&t>=0&&i.setUTCFullYear(i.getUTCFullYear()-1900);const s=i.getUTCDay();return s===0?7:s}function Mh(t,e,n){return n+(Ks(t)?Ch:kh)[e-1]}function Ph(t,e){const n=Ks(t)?Ch:kh,i=n.findIndex(o=>oWs(i,e,n)?(u=i+1,l=1):u=i,{weekYear:u,weekNumber:l,weekday:r,...ya(t)}}function Sc(t,e=4,n=1){const{weekYear:i,weekNumber:s,weekday:o}=t,a=gl(ml(i,1,e),n),r=Ri(i);let l=s*7+o-a-7+e,u;l<1?(u=i-1,l+=Ri(u)):l>r?(u=i+1,l-=Ri(i)):u=i;const{month:c,day:d}=Ph(u,l);return{year:u,month:c,day:d,...ya(t)}}function nr(t){const{year:e,month:n,day:i}=t,s=Mh(e,n,i);return{year:e,ordinal:s,...ya(t)}}function kc(t){const{year:e,ordinal:n}=t,{month:i,day:s}=Ph(e,n);return{year:e,month:i,day:s,...ya(t)}}function Cc(t,e){if(!be(t.localWeekday)||!be(t.localWeekNumber)||!be(t.localWeekYear)){if(!be(t.weekday)||!be(t.weekNumber)||!be(t.weekYear))throw new Oi("Cannot mix locale-based week fields with ISO-based week fields");return be(t.localWeekday)||(t.weekday=t.localWeekday),be(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),be(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function Ax(t,e=4,n=1){const i=va(t.weekYear),s=nn(t.weekNumber,1,Ws(t.weekYear,e,n)),o=nn(t.weekday,1,7);return i?s?o?!1:tn("weekday",t.weekday):tn("week",t.weekNumber):tn("weekYear",t.weekYear)}function qx(t){const e=va(t.year),n=nn(t.ordinal,1,Ri(t.year));return e?n?!1:tn("ordinal",t.ordinal):tn("year",t.year)}function Th(t){const e=va(t.year),n=nn(t.month,1,12),i=nn(t.day,1,Go(t.year,t.month));return e?n?i?!1:tn("day",t.day):tn("month",t.month):tn("year",t.year)}function Ih(t){const{hour:e,minute:n,second:i,millisecond:s}=t,o=nn(e,0,23)||e===24&&n===0&&i===0&&s===0,a=nn(n,0,59),r=nn(i,0,59),l=nn(s,0,999);return o?a?r?l?!1:tn("millisecond",s):tn("second",i):tn("minute",n):tn("hour",e)}function be(t){return typeof t>"u"}function Yn(t){return typeof t=="number"}function va(t){return typeof t=="number"&&t%1===0}function Lx(t){return typeof t=="string"}function Rx(t){return Object.prototype.toString.call(t)==="[object Date]"}function Dh(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Oh(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function $x(t){return Array.isArray(t)?t:[t]}function Mc(t,e,n){if(t.length!==0)return t.reduce((i,s)=>{const o=[e(s),s];return i&&n(i[0],o[0])===i[0]?i:o},null)[1]}function Fx(t,e){return e.reduce((n,i)=>(n[i]=t[i],n),{})}function Ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Er(t){if(t==null)return null;if(typeof t!="object")throw new Et("Week settings must be an object");if(!nn(t.firstDay,1,7)||!nn(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!nn(e,1,7)))throw new Et("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function nn(t,e,n){return va(t)&&t>=e&&t<=n}function zx(t,e){return t-e*Math.floor(t/e)}function pt(t,e=2){const n=t<0;let i;return n?i="-"+(""+-t).padStart(e,"0"):i=(""+t).padStart(e,"0"),i}function Fn(t){if(!(be(t)||t===null||t===""))return parseInt(t,10)}function ei(t){if(!(be(t)||t===null||t===""))return parseFloat(t)}function vl(t){if(!(be(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function pl(t,e,n="round"){const i=10**e;switch(n){case"expand":return t>0?Math.ceil(t*i)/i:Math.floor(t*i)/i;case"trunc":return Math.trunc(t*i)/i;case"round":return Math.round(t*i)/i;case"floor":return Math.floor(t*i)/i;case"ceil":return Math.ceil(t*i)/i;default:throw new RangeError(`Value rounding ${n} is out of range`)}}function Ks(t){return t%4===0&&(t%100!==0||t%400===0)}function Ri(t){return Ks(t)?366:365}function Go(t,e){const n=zx(e-1,12)+1,i=t+(e-n)/12;return n===2?Ks(i)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function pa(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}function Pc(t,e,n){return-gl(ml(t,1,e),n)+e-1}function Ws(t,e=4,n=1){const i=Pc(t,e,n),s=Pc(t+1,e,n);return(Ri(t)-i+s)/7}function Ar(t){return t>99?t:t>rt.twoDigitCutoffYear?1900+t:2e3+t}function Vh(t,e,n,i=null){const s=new Date(t),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};i&&(o.timeZone=i);const a={timeZoneName:e,...o},r=new Intl.DateTimeFormat(n,a).formatToParts(s).find(l=>l.type.toLowerCase()==="timezonename");return r?r.value:null}function ba(t,e){let n=parseInt(t,10);Number.isNaN(n)&&(n=0);const i=parseInt(e,10)||0,s=n<0||Object.is(n,-0)?-i:i;return n*60+s}function Eh(t){const e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new Et(`Invalid unit value ${t}`);return e}function Jo(t,e){const n={};for(const i in t)if(Ki(t,i)){const s=t[i];if(s==null)continue;n[e(i)]=Eh(s)}return n}function Es(t,e){const n=Math.trunc(Math.abs(t/60)),i=Math.trunc(Math.abs(t%60)),s=t>=0?"+":"-";switch(e){case"short":return`${s}${pt(n,2)}:${pt(i,2)}`;case"narrow":return`${s}${n}${i>0?`:${i}`:""}`;case"techie":return`${s}${pt(n,2)}${pt(i,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function ya(t){return Fx(t,["hour","minute","second","millisecond"])}const Bx=["January","February","March","April","May","June","July","August","September","October","November","December"],Ah=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Nx=["J","F","M","A","M","J","J","A","S","O","N","D"];function qh(t){switch(t){case"narrow":return[...Nx];case"short":return[...Ah];case"long":return[...Bx];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const Lh=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Rh=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Wx=["M","T","W","T","F","S","S"];function $h(t){switch(t){case"narrow":return[...Wx];case"short":return[...Rh];case"long":return[...Lh];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const Fh=["AM","PM"],Hx=["Before Christ","Anno Domini"],jx=["BC","AD"],Ux=["B","A"];function zh(t){switch(t){case"narrow":return[...Ux];case"short":return[...jx];case"long":return[...Hx];default:return null}}function Yx(t){return Fh[t.hour<12?0:1]}function Zx(t,e){return $h(e)[t.weekday-1]}function Xx(t,e){return qh(e)[t.month-1]}function Kx(t,e){return zh(e)[t.year<0?0:1]}function Qx(t,e,n="always",i=!1){const s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(t)===-1;if(n==="auto"&&o){const d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${s[t][0]}`;case-1:return d?"yesterday":`last ${s[t][0]}`;case 0:return d?"today":`this ${s[t][0]}`}}const a=Object.is(e,-0)||e<0,r=Math.abs(e),l=r===1,u=s[t],c=i?l?u[1]:u[2]||u[1]:l?s[t][0]:t;return a?`${r} ${c} ago`:`in ${r} ${c}`}function Tc(t,e){let n="";for(const i of t)i.literal?n+=i.val:n+=e(i.val);return n}const Gx={D:Ko,DD:ih,DDD:sh,DDDD:oh,t:ah,tt:rh,ttt:lh,tttt:uh,T:ch,TT:dh,TTT:fh,TTTT:hh,f:mh,ff:vh,fff:bh,ffff:xh,F:gh,FF:ph,FFF:yh,FFFF:wh};class qt{static create(e,n={}){return new qt(e,n)}static parseFormat(e){let n=null,i="",s=!1;const o=[];for(let a=0;a0||s)&&o.push({literal:s||/^\s+$/.test(i),val:i===""?"'":i}),n=null,i="",s=!s):s||r===n?i+=r:(i.length>0&&o.push({literal:/^\s+$/.test(i),val:i}),i=r,n=r)}return i.length>0&&o.push({literal:s||/^\s+$/.test(i),val:i}),o}static macroTokenToFormatOpts(e){return Gx[e]}constructor(e,n){this.opts=n,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...n}).format()}dtFormatter(e,n={}){return this.loc.dtFormatter(e,{...this.opts,...n})}formatDateTime(e,n){return this.dtFormatter(e,n).format()}formatDateTimeParts(e,n){return this.dtFormatter(e,n).formatToParts()}formatInterval(e,n){return this.dtFormatter(e.start,n).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,n){return this.dtFormatter(e,n).resolvedOptions()}num(e,n=0,i=void 0){if(this.opts.forceSimple)return pt(e,n);const s={...this.opts};return n>0&&(s.padTo=n),i&&(s.signDisplay=i),this.loc.numberFormatter(s).format(e)}formatDateTimeFromString(e,n){const i=this.loc.listingMode()==="en",s=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=(h,m)=>this.loc.extract(e,h,m),a=h=>e.isOffsetFixed&&e.offset===0&&h.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,h.format):"",r=()=>i?Yx(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(h,m)=>i?Xx(e,h):o(m?{month:h}:{month:h,day:"numeric"},"month"),u=(h,m)=>i?Zx(e,h):o(m?{weekday:h}:{weekday:h,month:"long",day:"numeric"},"weekday"),c=h=>{const m=qt.macroTokenToFormatOpts(h);return m?this.formatWithSystemDefault(e,m):h},d=h=>i?Kx(e,h):o({era:h},"era"),f=h=>{switch(h){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return r();case"d":return s?o({day:"numeric"},"day"):this.num(e.day);case"dd":return s?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return u("short",!0);case"cccc":return u("long",!0);case"ccccc":return u("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return u("short",!1);case"EEEE":return u("long",!1);case"EEEEE":return u("narrow",!1);case"L":return s?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return s?o({month:"numeric"},"month"):this.num(e.month);case"MM":return s?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return s?o({year:"numeric"},"year"):this.num(e.year);case"yy":return s?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return c(h)}};return Tc(qt.parseFormat(n),f)}formatDurationFromString(e,n){const i=this.opts.signMode==="negativeLargestOnly"?-1:1,s=c=>{switch(c[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},o=(c,d)=>f=>{const h=s(f);if(h){const m=d.isNegativeDuration&&h!==d.largestUnit?i:1;let p;return this.opts.signMode==="negativeLargestOnly"&&h!==d.largestUnit?p="never":this.opts.signMode==="all"?p="always":p="auto",this.num(c.get(h)*m,f.length,p)}else return f},a=qt.parseFormat(n),r=a.reduce((c,{literal:d,val:f})=>d?c:c.concat(f),[]),l=e.shiftTo(...r.map(s).filter(c=>c)),u={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return Tc(a,o(l,u))}}const Bh=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Gi(...t){const e=t.reduce((n,i)=>n+i.source,"");return RegExp(`^${e}$`)}function Ji(...t){return e=>t.reduce(([n,i,s],o)=>{const[a,r,l]=o(e,s);return[{...n,...a},r||i,l]},[{},null,1]).slice(0,2)}function es(t,...e){if(t==null)return[null,null];for(const[n,i]of e){const s=n.exec(t);if(s)return i(s)}return[null,null]}function Nh(...t){return(e,n)=>{const i={};let s;for(s=0;sh!==void 0&&(m||h&&c)?-h:h;return[{years:f(ei(n)),months:f(ei(i)),weeks:f(ei(s)),days:f(ei(o)),hours:f(ei(a)),minutes:f(ei(r)),seconds:f(ei(l),l==="-0"),milliseconds:f(vl(u),d)}]}const dw={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function xl(t,e,n,i,s,o,a){const r={year:e.length===2?Ar(Fn(e)):Fn(e),month:Ah.indexOf(n)+1,day:Fn(i),hour:Fn(s),minute:Fn(o)};return a&&(r.second=Fn(a)),t&&(r.weekday=t.length>3?Lh.indexOf(t)+1:Rh.indexOf(t)+1),r}const fw=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function hw(t){const[,e,n,i,s,o,a,r,l,u,c,d]=t,f=xl(e,s,i,n,o,a,r);let h;return l?h=dw[l]:u?h=0:h=ba(c,d),[f,new zt(h)]}function mw(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const gw=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,vw=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,pw=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Ic(t){const[,e,n,i,s,o,a,r]=t;return[xl(e,s,i,n,o,a,r),zt.utcInstance]}function bw(t){const[,e,n,i,s,o,a,r]=t;return[xl(e,r,n,i,s,o,a),zt.utcInstance]}const yw=Gi(ew,yl),xw=Gi(tw,yl),ww=Gi(nw,yl),_w=Gi(Hh),Uh=Ji(rw,ts,Qs,Gs),Sw=Ji(iw,ts,Qs,Gs),kw=Ji(sw,ts,Qs,Gs),Cw=Ji(ts,Qs,Gs);function Mw(t){return es(t,[yw,Uh],[xw,Sw],[ww,kw],[_w,Cw])}function Pw(t){return es(mw(t),[fw,hw])}function Tw(t){return es(t,[gw,Ic],[vw,Ic],[pw,bw])}function Iw(t){return es(t,[uw,cw])}const Dw=Ji(ts);function Ow(t){return es(t,[lw,Dw])}const Vw=Gi(ow,aw),Ew=Gi(jh),Aw=Ji(ts,Qs,Gs);function qw(t){return es(t,[Vw,Uh],[Ew,Aw])}const Dc="Invalid Duration",Yh={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Lw={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...Yh},Jt=146097/400,Mi=146097/4800,Rw={years:{quarters:4,months:12,weeks:Jt/7,days:Jt,hours:Jt*24,minutes:Jt*24*60,seconds:Jt*24*60*60,milliseconds:Jt*24*60*60*1e3},quarters:{months:3,weeks:Jt/28,days:Jt/4,hours:Jt*24/4,minutes:Jt*24*60/4,seconds:Jt*24*60*60/4,milliseconds:Jt*24*60*60*1e3/4},months:{weeks:Mi/7,days:Mi,hours:Mi*24,minutes:Mi*24*60,seconds:Mi*24*60*60,milliseconds:Mi*24*60*60*1e3},...Yh},ai=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],$w=ai.slice(0).reverse();function kn(t,e,n=!1){const i={values:n?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new qe(i)}function Zh(t,e){let n=e.milliseconds??0;for(const i of $w.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}function Oc(t,e){const n=Zh(t,e)<0?-1:1;ai.reduceRight((i,s)=>{if(be(e[s]))return i;if(i){const o=e[i]*n,a=t[s][i],r=Math.floor(o/a);e[s]+=r*n,e[i]-=r*a*n}return s},null),ai.reduce((i,s)=>{if(be(e[s]))return i;if(i){const o=e[i]%1;e[i]-=o,e[s]+=o*t[i][s]}return s},null)}function Vc(t){const e={};for(const[n,i]of Object.entries(t))i!==0&&(e[n]=i);return e}class qe{constructor(e){const n=e.conversionAccuracy==="longterm"||!1;let i=n?Rw:Lw;e.matrix&&(i=e.matrix),this.values=e.values,this.loc=e.loc||ze.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=i,this.isLuxonDuration=!0}static fromMillis(e,n){return qe.fromObject({milliseconds:e},n)}static fromObject(e,n={}){if(e==null||typeof e!="object")throw new Et(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new qe({values:Jo(e,qe.normalizeUnit),loc:ze.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(e){if(Yn(e))return qe.fromMillis(e);if(qe.isDuration(e))return e;if(typeof e=="object")return qe.fromObject(e);throw new Et(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,n){const[i]=Iw(e);return i?qe.fromObject(i,n):qe.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,n){const[i]=Ow(e);return i?qe.fromObject(i,n):qe.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,n=null){if(!e)throw new Et("need to specify a reason the Duration is invalid");const i=e instanceof dn?e:new dn(e,n);if(rt.throwOnInvalid)throw new cx(i);return new qe({invalid:i})}static normalizeUnit(e){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!n)throw new nh(e);return n}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,n={}){const i={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?qt.create(this.loc,i).formatDurationFromString(this,e):Dc}toHuman(e={}){if(!this.isValid)return Dc;const n=e.showZeros!==!1,i=ai.map(s=>{const o=this.values[s];return be(o)||o===0&&!n?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:s.slice(0,-1)}).format(o)}).filter(s=>s);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(i)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=pl(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const n=this.toMillis();return n<0||n>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},fe.fromMillis(n,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Zh(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const n=qe.fromDurationLike(e),i={};for(const s of ai)(Ki(n.values,s)||Ki(this.values,s))&&(i[s]=n.get(s)+this.get(s));return kn(this,{values:i},!0)}minus(e){if(!this.isValid)return this;const n=qe.fromDurationLike(e);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;const n={};for(const i of Object.keys(this.values))n[i]=Eh(e(this.values[i],i));return kn(this,{values:n},!0)}get(e){return this[qe.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const n={...this.values,...Jo(e,qe.normalizeUnit)};return kn(this,{values:n})}reconfigure({locale:e,numberingSystem:n,conversionAccuracy:i,matrix:s}={}){const a={loc:this.loc.clone({locale:e,numberingSystem:n}),matrix:s,conversionAccuracy:i};return kn(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return Oc(this.matrix,e),kn(this,{values:e},!0)}rescale(){if(!this.isValid)return this;const e=Vc(this.normalize().shiftToAll().toObject());return kn(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>qe.normalizeUnit(a));const n={},i={},s=this.toObject();let o;for(const a of ai)if(e.indexOf(a)>=0){o=a;let r=0;for(const u in i)r+=this.matrix[u][a]*i[u],i[u]=0;Yn(s[a])&&(r+=s[a]);const l=Math.trunc(r);n[a]=l,i[a]=(r*1e3-l*1e3)/1e3}else Yn(s[a])&&(i[a]=s[a]);for(const a in i)i[a]!==0&&(n[o]+=a===o?i[a]:i[a]/this.matrix[o][a]);return Oc(this.matrix,n),kn(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const n of Object.keys(this.values))e[n]=this.values[n]===0?0:-this.values[n];return kn(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;const e=Vc(this.values);return kn(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function n(i,s){return i===void 0||i===0?s===void 0||s===0:i===s}for(const i of ai)if(!n(this.values[i],e.values[i]))return!1;return!0}}const Pi="Invalid Interval";function Fw(t,e){return!t||!t.isValid?at.invalid("missing or invalid start"):!e||!e.isValid?at.invalid("missing or invalid end"):ee:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:n}={}){return this.isValid?at.fromDateTimes(e||this.s,n||this.e):this}splitAt(...e){if(!this.isValid)return[];const n=e.map(gs).filter(a=>this.contains(a)).sort((a,r)=>a.toMillis()-r.toMillis()),i=[];let{s}=this,o=0;for(;s+this.e?this.e:a;i.push(at.fromDateTimes(s,r)),s=r,o+=1}return i}splitBy(e){const n=qe.fromDurationLike(e);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:i}=this,s=1,o;const a=[];for(;il*s));o=+r>+this.e?this.e:r,a.push(at.fromDateTimes(i,o)),i=o,s+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const n=this.s>e.s?this.s:e.s,i=this.e=i?null:at.fromDateTimes(n,i)}union(e){if(!this.isValid)return this;const n=this.se.e?this.e:e.e;return at.fromDateTimes(n,i)}static merge(e){const[n,i]=e.sort((s,o)=>s.s-o.s).reduce(([s,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[s,o.union(a)]:[s.concat([o]),a]:[s,a],[[],null]);return i&&n.push(i),n}static xor(e){let n=null,i=0;const s=[],o=e.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...o),r=a.sort((l,u)=>l.time-u.time);for(const l of r)i+=l.type==="s"?1:-1,i===1?n=l.time:(n&&+n!=+l.time&&s.push(at.fromDateTimes(n,l.time)),n=null);return at.merge(s)}difference(...e){return at.xor([this].concat(e)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Pi}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=Ko,n={}){return this.isValid?qt.create(this.s.loc.clone(n),e).formatInterval(this):Pi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Pi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Pi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Pi}toFormat(e,{separator:n=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${n}${this.e.toFormat(e)}`:Pi}toDuration(e,n){return this.isValid?this.e.diff(this.s,e,n):qe.invalid(this.invalidReason)}mapEndpoints(e){return at.fromDateTimes(e(this.s),e(this.e))}}class wo{static hasDST(e=rt.defaultZone){const n=fe.now().setZone(e).set({month:12});return!e.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(e){return En.isValidZone(e)}static normalizeZone(e){return Nn(e,rt.defaultZone)}static getStartOfWeek({locale:e=null,locObj:n=null}={}){return(n||ze.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:n=null}={}){return(n||ze.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:n=null}={}){return(n||ze.create(e)).getWeekendDays().slice()}static months(e="long",{locale:n=null,numberingSystem:i=null,locObj:s=null,outputCalendar:o="gregory"}={}){return(s||ze.create(n,i,o)).months(e)}static monthsFormat(e="long",{locale:n=null,numberingSystem:i=null,locObj:s=null,outputCalendar:o="gregory"}={}){return(s||ze.create(n,i,o)).months(e,!0)}static weekdays(e="long",{locale:n=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ze.create(n,i,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:n=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ze.create(n,i,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ze.create(e).meridiems()}static eras(e="short",{locale:n=null}={}){return ze.create(n,null,"gregory").eras(e)}static features(){return{relative:Dh(),localeWeek:Oh()}}}function Ec(t,e){const n=s=>s.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),i=n(e)-n(t);return Math.floor(qe.fromMillis(i).as("days"))}function zw(t,e,n){const i=[["years",(l,u)=>u.year-l.year],["quarters",(l,u)=>u.quarter-l.quarter+(u.year-l.year)*4],["months",(l,u)=>u.month-l.month+(u.year-l.year)*12],["weeks",(l,u)=>{const c=Ec(l,u);return(c-c%7)/7}],["days",Ec]],s={},o=t;let a,r;for(const[l,u]of i)n.indexOf(l)>=0&&(a=l,s[l]=u(t,e),r=o.plus(s),r>e?(s[l]--,t=o.plus(s),t>e&&(r=t,s[l]--,t=o.plus(s))):t=r);return[t,s,r,a]}function Bw(t,e,n,i){let[s,o,a,r]=zw(t,e,n);const l=e-s,u=n.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);u.length===0&&(a0?qe.fromMillis(l,i).shiftTo(...u).plus(c):c}const Nw="missing Intl.DateTimeFormat.formatToParts support";function $e(t,e=n=>n){return{regex:t,deser:([n])=>e(Vx(n))}}const Ww=" ",Xh=`[ ${Ww}]`,Kh=new RegExp(Xh,"g");function Hw(t){return t.replace(/\./g,"\\.?").replace(Kh,Xh)}function Ac(t){return t.replace(/\./g,"").replace(Kh," ").toLowerCase()}function rn(t,e){return t===null?null:{regex:RegExp(t.map(Hw).join("|")),deser:([n])=>t.findIndex(i=>Ac(n)===Ac(i))+e}}function qc(t,e){return{regex:t,deser:([,n,i])=>ba(n,i),groups:e}}function _o(t){return{regex:t,deser:([e])=>e}}function jw(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Uw(t,e){const n=an(e),i=an(e,"{2}"),s=an(e,"{3}"),o=an(e,"{4}"),a=an(e,"{6}"),r=an(e,"{1,2}"),l=an(e,"{1,3}"),u=an(e,"{1,6}"),c=an(e,"{1,9}"),d=an(e,"{2,4}"),f=an(e,"{4,6}"),h=v=>({regex:RegExp(jw(v.val)),deser:([b])=>b,literal:!0}),p=(v=>{if(t.literal)return h(v);switch(v.val){case"G":return rn(e.eras("short"),0);case"GG":return rn(e.eras("long"),0);case"y":return $e(u);case"yy":return $e(d,Ar);case"yyyy":return $e(o);case"yyyyy":return $e(f);case"yyyyyy":return $e(a);case"M":return $e(r);case"MM":return $e(i);case"MMM":return rn(e.months("short",!0),1);case"MMMM":return rn(e.months("long",!0),1);case"L":return $e(r);case"LL":return $e(i);case"LLL":return rn(e.months("short",!1),1);case"LLLL":return rn(e.months("long",!1),1);case"d":return $e(r);case"dd":return $e(i);case"o":return $e(l);case"ooo":return $e(s);case"HH":return $e(i);case"H":return $e(r);case"hh":return $e(i);case"h":return $e(r);case"mm":return $e(i);case"m":return $e(r);case"q":return $e(r);case"qq":return $e(i);case"s":return $e(r);case"ss":return $e(i);case"S":return $e(l);case"SSS":return $e(s);case"u":return _o(c);case"uu":return _o(r);case"uuu":return $e(n);case"a":return rn(e.meridiems(),0);case"kkkk":return $e(o);case"kk":return $e(d,Ar);case"W":return $e(r);case"WW":return $e(i);case"E":case"c":return $e(n);case"EEE":return rn(e.weekdays("short",!1),1);case"EEEE":return rn(e.weekdays("long",!1),1);case"ccc":return rn(e.weekdays("short",!0),1);case"cccc":return rn(e.weekdays("long",!0),1);case"Z":case"ZZ":return qc(new RegExp(`([+-]${r.source})(?::(${i.source}))?`),2);case"ZZZ":return qc(new RegExp(`([+-]${r.source})(${i.source})?`),2);case"z":return _o(/[a-z_+-/]{1,256}?/i);case" ":return _o(/[^\S\n\r]/);default:return h(v)}})(t)||{invalidReason:Nw};return p.token=t,p}const Yw={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function Zw(t,e,n){const{type:i,value:s}=t;if(i==="literal"){const l=/^\s+$/.test(s);return{literal:!l,val:l?" ":s}}const o=e[i];let a=i;i==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=n.hour12?"hour12":"hour24");let r=Yw[a];if(typeof r=="object"&&(r=r[o]),r)return{literal:!1,val:r}}function Xw(t){return[`^${t.map(n=>n.regex).reduce((n,i)=>`${n}(${i.source})`,"")}$`,t]}function Kw(t,e,n){const i=t.match(e);if(i){const s={};let o=1;for(const a in n)if(Ki(n,a)){const r=n[a],l=r.groups?r.groups+1:1;!r.literal&&r.token&&(s[r.token.val[0]]=r.deser(i.slice(o,o+l))),o+=l}return[i,s]}else return[i,{}]}function Qw(t){const e=o=>{switch(o){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,i;return be(t.z)||(n=En.create(t.z)),be(t.Z)||(n||(n=new zt(t.Z)),i=t.Z),be(t.q)||(t.M=(t.q-1)*3+1),be(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),be(t.u)||(t.S=vl(t.u)),[Object.keys(t).reduce((o,a)=>{const r=e(a);return r&&(o[r]=t[a]),o},{}),n,i]}let ir=null;function Gw(){return ir||(ir=fe.fromMillis(1555555555555)),ir}function Jw(t,e){if(t.literal)return t;const n=qt.macroTokenToFormatOpts(t.val),i=em(n,e);return i==null||i.includes(void 0)?t:i}function Qh(t,e){return Array.prototype.concat(...t.map(n=>Jw(n,e)))}class Gh{constructor(e,n){if(this.locale=e,this.format=n,this.tokens=Qh(qt.parseFormat(n),e),this.units=this.tokens.map(i=>Uw(i,e)),this.disqualifyingUnit=this.units.find(i=>i.invalidReason),!this.disqualifyingUnit){const[i,s]=Xw(this.units);this.regex=RegExp(i,"i"),this.handlers=s}}explainFromTokens(e){if(this.isValid){const[n,i]=Kw(e,this.regex,this.handlers),[s,o,a]=i?Qw(i):[null,null,void 0];if(Ki(i,"a")&&Ki(i,"H"))throw new Oi("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:n,matches:i,result:s,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Jh(t,e,n){return new Gh(t,n).explainFromTokens(e)}function e_(t,e,n){const{result:i,zone:s,specificOffset:o,invalidReason:a}=Jh(t,e,n);return[i,s,o,a]}function em(t,e){if(!t)return null;const i=qt.create(e,t).dtFormatter(Gw()),s=i.formatToParts(),o=i.resolvedOptions();return s.map(a=>Zw(a,t,o))}const sr="Invalid DateTime",Lc=864e13;function ks(t){return new dn("unsupported zone",`the zone "${t.name}" is not supported`)}function or(t){return t.weekData===null&&(t.weekData=Qo(t.c)),t.weekData}function ar(t){return t.localWeekData===null&&(t.localWeekData=Qo(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function ti(t,e){const n={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new fe({...n,...e,old:n})}function tm(t,e,n){let i=t-e*60*1e3;const s=n.offset(i);if(e===s)return[i,e];i-=(s-e)*60*1e3;const o=n.offset(i);return s===o?[i,s]:[t-Math.min(s,o)*60*1e3,Math.max(s,o)]}function So(t,e){t+=e*60*1e3;const n=new Date(t);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function Vo(t,e,n){return tm(pa(t),e,n)}function Rc(t,e){const n=t.o,i=t.c.year+Math.trunc(e.years),s=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:i,month:s,day:Math.min(t.c.day,Go(i,s))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=qe.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),r=pa(o);let[l,u]=tm(r,n,t.zone);return a!==0&&(l+=a,u=t.zone.offset(l)),{ts:l,o:u}}function Ti(t,e,n,i,s,o){const{setZone:a,zone:r}=n;if(t&&Object.keys(t).length!==0||e){const l=e||r,u=fe.fromObject(t,{...n,zone:l,specificOffset:o});return a?u:u.setZone(r)}else return fe.invalid(new dn("unparsable",`the input "${s}" can't be parsed as ${i}`))}function ko(t,e,n=!0){return t.isValid?qt.create(ze.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(t,e):null}function rr(t,e,n){const i=t.c.year>9999||t.c.year<0;let s="";if(i&&t.c.year>=0&&(s+="+"),s+=pt(t.c.year,i?6:4),n==="year")return s;if(e){if(s+="-",s+=pt(t.c.month),n==="month")return s;s+="-"}else if(s+=pt(t.c.month),n==="month")return s;return s+=pt(t.c.day),s}function $c(t,e,n,i,s,o,a){let r=!n||t.c.millisecond!==0||t.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=pt(t.c.hour),a==="hour")break;if(e){if(l+=":",l+=pt(t.c.minute),a==="minute")break;r&&(l+=":",l+=pt(t.c.second))}else{if(l+=pt(t.c.minute),a==="minute")break;r&&(l+=pt(t.c.second))}if(a==="second")break;r&&(!i||t.c.millisecond!==0)&&(l+=".",l+=pt(t.c.millisecond,3))}return s&&(t.isOffsetFixed&&t.offset===0&&!o?l+="Z":t.o<0?(l+="-",l+=pt(Math.trunc(-t.o/60)),l+=":",l+=pt(Math.trunc(-t.o%60))):(l+="+",l+=pt(Math.trunc(t.o/60)),l+=":",l+=pt(Math.trunc(t.o%60)))),o&&(l+="["+t.zone.ianaName+"]"),l}const nm={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},t_={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},n_={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Eo=["year","month","day","hour","minute","second","millisecond"],i_=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],s_=["year","ordinal","hour","minute","second","millisecond"];function Ao(t){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new nh(t);return e}function Fc(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Ao(t)}}function o_(t){if(Cs===void 0&&(Cs=rt.now()),t.type!=="iana")return t.offset(Cs);const e=t.name;let n=qr.get(e);return n===void 0&&(n=t.offset(Cs),qr.set(e,n)),n}function zc(t,e){const n=Nn(e.zone,rt.defaultZone);if(!n.isValid)return fe.invalid(ks(n));const i=ze.fromObject(e);let s,o;if(be(t.year))s=rt.now();else{for(const l of Eo)be(t[l])&&(t[l]=nm[l]);const a=Th(t)||Ih(t);if(a)return fe.invalid(a);const r=o_(n);[s,o]=Vo(t,r,n)}return new fe({ts:s,zone:n,loc:i,o})}function Bc(t,e,n){const i=be(n.round)?!0:n.round,s=be(n.rounding)?"trunc":n.rounding,o=(r,l)=>(r=pl(r,i||n.calendary?0:2,n.calendary?"round":s),e.loc.clone(n).relFormatter(n).format(r,l)),a=r=>n.calendary?e.hasSame(t,r)?0:e.startOf(r).diff(t.startOf(r),r).get(r):e.diff(t,r).get(r);if(n.unit)return o(a(n.unit),n.unit);for(const r of n.units){const l=a(r);if(Math.abs(l)>=1)return o(l,r)}return o(t>e?-0:0,n.units[n.units.length-1])}function Nc(t){let e={},n;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],n=Array.from(t).slice(0,t.length-1)):n=Array.from(t),[e,n]}let Cs;const qr=new Map;class fe{constructor(e){const n=e.zone||rt.defaultZone;let i=e.invalid||(Number.isNaN(e.ts)?new dn("invalid input"):null)||(n.isValid?null:ks(n));this.ts=be(e.ts)?rt.now():e.ts;let s=null,o=null;if(!i)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(n))[s,o]=[e.old.c,e.old.o];else{const r=Yn(e.o)&&!e.old?e.o:n.offset(this.ts);s=So(this.ts,r),i=Number.isNaN(s.year)?new dn("invalid input"):null,s=i?null:s,o=i?null:r}this._zone=n,this.loc=e.loc||ze.create(),this.invalid=i,this.weekData=null,this.localWeekData=null,this.c=s,this.o=o,this.isLuxonDateTime=!0}static now(){return new fe({})}static local(){const[e,n]=Nc(arguments),[i,s,o,a,r,l,u]=n;return zc({year:i,month:s,day:o,hour:a,minute:r,second:l,millisecond:u},e)}static utc(){const[e,n]=Nc(arguments),[i,s,o,a,r,l,u]=n;return e.zone=zt.utcInstance,zc({year:i,month:s,day:o,hour:a,minute:r,second:l,millisecond:u},e)}static fromJSDate(e,n={}){const i=Rx(e)?e.valueOf():NaN;if(Number.isNaN(i))return fe.invalid("invalid input");const s=Nn(n.zone,rt.defaultZone);return s.isValid?new fe({ts:i,zone:s,loc:ze.fromObject(n)}):fe.invalid(ks(s))}static fromMillis(e,n={}){if(Yn(e))return e<-Lc||e>Lc?fe.invalid("Timestamp out of range"):new fe({ts:e,zone:Nn(n.zone,rt.defaultZone),loc:ze.fromObject(n)});throw new Et(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,n={}){if(Yn(e))return new fe({ts:e*1e3,zone:Nn(n.zone,rt.defaultZone),loc:ze.fromObject(n)});throw new Et("fromSeconds requires a numerical input")}static fromObject(e,n={}){e=e||{};const i=Nn(n.zone,rt.defaultZone);if(!i.isValid)return fe.invalid(ks(i));const s=ze.fromObject(n),o=Jo(e,Fc),{minDaysInFirstWeek:a,startOfWeek:r}=Cc(o,s),l=rt.now(),u=be(n.specificOffset)?i.offset(l):n.specificOffset,c=!be(o.ordinal),d=!be(o.year),f=!be(o.month)||!be(o.day),h=d||f,m=o.weekYear||o.weekNumber;if((h||c)&&m)throw new Oi("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(f&&c)throw new Oi("Can't mix ordinal dates with month/day");const p=m||o.weekday&&!h;let v,b,_=So(l,u);p?(v=i_,b=t_,_=Qo(_,a,r)):c?(v=s_,b=n_,_=nr(_)):(v=Eo,b=nm);let y=!1;for(const D of v){const R=o[D];be(R)?y?o[D]=b[D]:o[D]=_[D]:y=!0}const w=p?Ax(o,a,r):c?qx(o):Th(o),x=w||Ih(o);if(x)return fe.invalid(x);const M=p?Sc(o,a,r):c?kc(o):o,[E,L]=Vo(M,u,i),O=new fe({ts:E,zone:i,o:L,loc:s});return o.weekday&&h&&e.weekday!==O.weekday?fe.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${O.toISO()}`):O.isValid?O:fe.invalid(O.invalid)}static fromISO(e,n={}){const[i,s]=Mw(e);return Ti(i,s,n,"ISO 8601",e)}static fromRFC2822(e,n={}){const[i,s]=Pw(e);return Ti(i,s,n,"RFC 2822",e)}static fromHTTP(e,n={}){const[i,s]=Tw(e);return Ti(i,s,n,"HTTP",n)}static fromFormat(e,n,i={}){if(be(e)||be(n))throw new Et("fromFormat requires an input string and a format");const{locale:s=null,numberingSystem:o=null}=i,a=ze.fromOpts({locale:s,numberingSystem:o,defaultToEN:!0}),[r,l,u,c]=e_(a,e,n);return c?fe.invalid(c):Ti(r,l,i,`format ${n}`,e,u)}static fromString(e,n,i={}){return fe.fromFormat(e,n,i)}static fromSQL(e,n={}){const[i,s]=qw(e);return Ti(i,s,n,"SQL",e)}static invalid(e,n=null){if(!e)throw new Et("need to specify a reason the DateTime is invalid");const i=e instanceof dn?e:new dn(e,n);if(rt.throwOnInvalid)throw new lx(i);return new fe({invalid:i})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,n={}){const i=em(e,ze.fromObject(n));return i?i.map(s=>s?s.val:null).join(""):null}static expandFormat(e,n={}){return Qh(qt.parseFormat(e),ze.fromObject(n)).map(s=>s.val).join("")}static resetCache(){Cs=void 0,qr.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?or(this).weekYear:NaN}get weekNumber(){return this.isValid?or(this).weekNumber:NaN}get weekday(){return this.isValid?or(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?ar(this).weekday:NaN}get localWeekNumber(){return this.isValid?ar(this).weekNumber:NaN}get localWeekYear(){return this.isValid?ar(this).weekYear:NaN}get ordinal(){return this.isValid?nr(this.c).ordinal:NaN}get monthShort(){return this.isValid?wo.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?wo.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?wo.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?wo.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,n=6e4,i=pa(this.c),s=this.zone.offset(i-e),o=this.zone.offset(i+e),a=this.zone.offset(i-s*n),r=this.zone.offset(i-o*n);if(a===r)return[this];const l=i-a*n,u=i-r*n,c=So(l,a),d=So(u,r);return c.hour===d.hour&&c.minute===d.minute&&c.second===d.second&&c.millisecond===d.millisecond?[ti(this,{ts:l}),ti(this,{ts:u})]:[this]}get isInLeapYear(){return Ks(this.year)}get daysInMonth(){return Go(this.year,this.month)}get daysInYear(){return this.isValid?Ri(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ws(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Ws(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:n,numberingSystem:i,calendar:s}=qt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:n,numberingSystem:i,outputCalendar:s}}toUTC(e=0,n={}){return this.setZone(zt.instance(e),n)}toLocal(){return this.setZone(rt.defaultZone)}setZone(e,{keepLocalTime:n=!1,keepCalendarTime:i=!1}={}){if(e=Nn(e,rt.defaultZone),e.equals(this.zone))return this;if(e.isValid){let s=this.ts;if(n||i){const o=e.offset(this.ts),a=this.toObject();[s]=Vo(a,o,e)}return ti(this,{ts:s,zone:e})}else return fe.invalid(ks(e))}reconfigure({locale:e,numberingSystem:n,outputCalendar:i}={}){const s=this.loc.clone({locale:e,numberingSystem:n,outputCalendar:i});return ti(this,{loc:s})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const n=Jo(e,Fc),{minDaysInFirstWeek:i,startOfWeek:s}=Cc(n,this.loc),o=!be(n.weekYear)||!be(n.weekNumber)||!be(n.weekday),a=!be(n.ordinal),r=!be(n.year),l=!be(n.month)||!be(n.day),u=r||l,c=n.weekYear||n.weekNumber;if((u||a)&&c)throw new Oi("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new Oi("Can't mix ordinal dates with month/day");let d;o?d=Sc({...Qo(this.c,i,s),...n},i,s):be(n.ordinal)?(d={...this.toObject(),...n},be(n.day)&&(d.day=Math.min(Go(d.year,d.month),d.day))):d=kc({...nr(this.c),...n});const[f,h]=Vo(d,this.o,this.zone);return ti(this,{ts:f,o:h})}plus(e){if(!this.isValid)return this;const n=qe.fromDurationLike(e);return ti(this,Rc(this,n))}minus(e){if(!this.isValid)return this;const n=qe.fromDurationLike(e).negate();return ti(this,Rc(this,n))}startOf(e,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;const i={},s=qe.normalizeUnit(e);switch(s){case"years":i.month=1;case"quarters":case"months":i.day=1;case"weeks":case"days":i.hour=0;case"hours":i.minute=0;case"minutes":i.second=0;case"seconds":i.millisecond=0;break}if(s==="weeks")if(n){const o=this.loc.getStartOfWeek(),{weekday:a}=this;a=3&&(l+="T"),l+=$c(this,r,n,i,s,o,a),l}toISODate({format:e="extended",precision:n="day"}={}){return this.isValid?rr(this,e==="extended",Ao(n)):null}toISOWeekDate(){return ko(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:n=!1,includeOffset:i=!0,includePrefix:s=!1,extendedZone:o=!1,format:a="extended",precision:r="milliseconds"}={}){return this.isValid?(r=Ao(r),(s&&Eo.indexOf(r)>=3?"T":"")+$c(this,a==="extended",n,e,i,o,r)):null}toRFC2822(){return ko(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ko(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?rr(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:n=!1,includeOffsetSpace:i=!0}={}){let s="HH:mm:ss.SSS";return(n||e)&&(i&&(s+=" "),n?s+="z":e&&(s+="ZZ")),ko(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():sr}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const n={...this.c};return e.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,n="milliseconds",i={}){if(!this.isValid||!e.isValid)return qe.invalid("created by diffing an invalid DateTime");const s={locale:this.locale,numberingSystem:this.numberingSystem,...i},o=$x(n).map(qe.normalizeUnit),a=e.valueOf()>this.valueOf(),r=a?this:e,l=a?e:this,u=Bw(r,l,o,s);return a?u.negate():u}diffNow(e="milliseconds",n={}){return this.diff(fe.now(),e,n)}until(e){return this.isValid?at.fromDateTimes(this,e):this}hasSame(e,n,i){if(!this.isValid)return!1;const s=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(n,i)<=s&&s<=o.endOf(n,i)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const n=e.base||fe.fromObject({},{zone:this.zone}),i=e.padding?thisn.valueOf(),Math.min)}static max(...e){if(!e.every(fe.isDateTime))throw new Et("max requires all arguments be DateTimes");return Mc(e,n=>n.valueOf(),Math.max)}static fromFormatExplain(e,n,i={}){const{locale:s=null,numberingSystem:o=null}=i,a=ze.fromOpts({locale:s,numberingSystem:o,defaultToEN:!0});return Jh(a,e,n)}static fromStringExplain(e,n,i={}){return fe.fromFormatExplain(e,n,i)}static buildFormatParser(e,n={}){const{locale:i=null,numberingSystem:s=null}=n,o=ze.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return new Gh(o,e)}static fromFormatParser(e,n,i={}){if(be(e)||be(n))throw new Et("fromFormatParser requires an input string and a format parser");const{locale:s=null,numberingSystem:o=null}=i,a=ze.fromOpts({locale:s,numberingSystem:o,defaultToEN:!0});if(!a.equals(n.locale))throw new Et(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${n.locale}`);const{result:r,zone:l,specificOffset:u,invalidReason:c}=n.explainFromTokens(e);return c?fe.invalid(c):Ti(r,l,i,`format ${n.format}`,e,u)}static get DATE_SHORT(){return Ko}static get DATE_MED(){return ih}static get DATE_MED_WITH_WEEKDAY(){return dx}static get DATE_FULL(){return sh}static get DATE_HUGE(){return oh}static get TIME_SIMPLE(){return ah}static get TIME_WITH_SECONDS(){return rh}static get TIME_WITH_SHORT_OFFSET(){return lh}static get TIME_WITH_LONG_OFFSET(){return uh}static get TIME_24_SIMPLE(){return ch}static get TIME_24_WITH_SECONDS(){return dh}static get TIME_24_WITH_SHORT_OFFSET(){return fh}static get TIME_24_WITH_LONG_OFFSET(){return hh}static get DATETIME_SHORT(){return mh}static get DATETIME_SHORT_WITH_SECONDS(){return gh}static get DATETIME_MED(){return vh}static get DATETIME_MED_WITH_SECONDS(){return ph}static get DATETIME_MED_WITH_WEEKDAY(){return fx}static get DATETIME_FULL(){return bh}static get DATETIME_FULL_WITH_SECONDS(){return yh}static get DATETIME_HUGE(){return xh}static get DATETIME_HUGE_WITH_SECONDS(){return wh}}function gs(t){if(fe.isDateTime(t))return t;if(t&&t.valueOf&&Yn(t.valueOf()))return fe.fromJSDate(t);if(t&&typeof t=="object")return fe.fromObject(t);throw new Et(`Unknown datetime argument: ${t}, of type ${typeof t}`)}/*! + * chartjs-adapter-luxon v1.3.1 + * https://www.chartjs.org + * (c) 2023 chartjs-adapter-luxon Contributors + * Released under the MIT license + */const a_={datetime:fe.DATETIME_MED_WITH_SECONDS,millisecond:"h:mm:ss.SSS a",second:fe.TIME_WITH_SECONDS,minute:fe.TIME_SIMPLE,hour:{hour:"numeric"},day:{day:"numeric",month:"short"},week:"DD",month:{month:"short",year:"numeric"},quarter:"'Q'q - yyyy",year:{year:"numeric"}};Tf._date.override({_id:"luxon",_create:function(t){return fe.fromMillis(t,this.options)},init(t){this.options.locale||(this.options.locale=t.locale)},formats:function(){return a_},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=fe.fromFormat(t,e,n):t=fe.fromISO(t,n):t instanceof Date?t=fe.fromJSDate(t,n):i==="object"&&!(t instanceof fe)&&(t=fe.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 r_={class:"chart-container"},l_={class:"chart-wrapper"},u_=ye({__name:"HistoryChart",props:{showLegend:{type:Boolean}},setup(t){Un.register(Hf,Li,On,Vs,Yo,Zi,T0,Nf);const e=g(()=>o.showLegend),n=Fe(),i=fl(),s=gi(),o=t,a=B(null),r=g(()=>a.value?.chart??null),l=x=>{x.data.datasets.forEach((M,E)=>{typeof M.label=="string"&&i.isDatasetHidden(M.label)&&x.hide(E)}),x.update()};he(()=>a.value?.chart,x=>{x&&l(x)},{immediate:!0});const u=g(()=>{const x=n.chartData,M=Math.floor(Date.now()/1e3);return x.filter(E=>E.timestamp>M-p.value)}),c=g(()=>n.chargePointIds),d=g(()=>n.chargePointName),f=g(()=>{const x=n.getGridId;return x!==void 0?n.getComponentName(x):"Zähler"}),h=g(()=>f.value),m=g(()=>n.vehicleList),p=g(()=>n.themeConfiguration?.history_chart_range||3600),v=g(()=>c.value.map(x=>({label:`${d.value(x)}`,category:"chargepoint",unit:"kW",borderColor:"#4766b5",backgroundColor:"rgba(71, 102, 181, 0.2)",data:u.value.map(M=>({x:M.timestamp*1e3,y:M[`cp${x}-power`]||0})),borderWidth:2,pointRadius:0,pointHoverRadius:4,pointHitRadius:5,fill:!0,yAxisID:"y"}))),b=g(()=>m.value.map(x=>{const M=`ev${x.id}-soc`;if(u.value.some(E=>M in E))return{label:`${x.name} SoC`,category:"vehicle",unit:"%",borderColor:"#9F8AFF",borderWidth:2,borderDash:[10,5],pointRadius:0,pointHoverRadius:4,pointHitRadius:5,data:u.value.map(E=>({x:E.timestamp*1e3,y:Number(E[M]??0)})),fill:!1,yAxisID:"y2"}}).filter(x=>x!==void 0)),_=g(()=>{const x=u.value.length?u.value[0].timestamp:Math.floor(Date.now()/1e3)-p.value,M=u.value.length?u.value[u.value.length-1].timestamp:Math.floor(Date.now()/1e3),E=M-x;let L=300;E<=1800?L=60:E<=3600&&(L=120);const O=[];let D=x-x%L;D({labels:_.value,datasets:[{label:f.value,category:"component",unit:"kW",borderColor:"#a33c42",backgroundColor:"rgba(239,182,188, 0.2)",data:u.value.map(x=>({x:x.timestamp*1e3,y:x.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(x=>({x:x.timestamp*1e3,y:x["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(x=>({x:x.timestamp*1e3,y:x["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(x=>({x:x.timestamp*1e3,y:x["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(x=>({x:x.timestamp*1e3,y:x["bat-all-soc"]})),fill:!1,yAxisID:"y2"},...v.value,...b.value]})),w=g(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,plugins:{legend:{display:!1},tooltip:{mode:"index",intersect:!1,callbacks:{label:x=>`${x.dataset.label}: ${x.formattedValue} ${x.dataset.unit}`}}},scales:{x:{type:"time",time:{unit:"minute",displayFormats:{minute:"HH:mm"}},ticks:{maxTicksLimit:40,source:"labels"},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(x,M)=>(P(),K("div",r_,[q("div",l_,[(P(),X(Te(Xf),{key:h.value,data:y.value,options:w.value,ref_key:"chartRef",ref:a},null,8,["data","options"]))]),e.value?(P(),X(rx,{key:0,chart:r.value,class:"legend-wrapper q-mt-sm"},null,8,["chart"])):ue("",!0)]))}}),c_=ht(u_,[["__scopeId","data-v-c893cfc4"]]),d_=ye({name:"ChartCarousel",__name:"ChartCarousel",setup(t){const e=gi(),n=fl(),i=B(0),s=()=>{n.toggleLegendVisibility()},o=g(()=>n.legendVisible),a=B(!1),r=[{name:"EnergyFlowChart",component:Pv},{name:"HistoryChart",component:c_}],l=B(r[0].name);return he(()=>a.value,(u,c)=>{!u&&c&&l.value==="HistoryChart"&&i.value++}),(u,c)=>(P(),X(ef,{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&&Te(e).screen.gt.xs,class:"full-width full-height bg-transparent carousel-height"},{control:A(()=>[C(nv,{position:"bottom-right"},{default:A(()=>[l.value==="HistoryChart"?(P(),X(ke,{key:0,size:"sm",class:"q-mr-sm legend-button-text",label:"Legend ein/aus",onClick:s})):ue("",!0),C(ke,{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(()=>[(P(),K(Oe,null,Xe(r,d=>C(Kd,{key:`${d.name}-${d.name==="HistoryChart"?i.value:0}`,name:d.name},{default:A(()=>[(P(),X(mg(d.component),{"show-legend":o.value},null,8,["show-legend"]))]),_:2},1032,["name"])),64))]),_:1},8,["modelValue","fullscreen","navigation","arrows"]))}}),f_=ht(d_,[["__scopeId","data-v-85eaf875"]]),_t=Be({name:"QTd",props:{props:Object,autoWidth:Boolean,noHover:Boolean},setup(t,{slots:e}){const n=Ue(),i=g(()=>"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},et(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)},et(e.default))}}});let Co=0;const h_={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"},Wc={standard:["scale","scale"],top:["slide-down","slide-up"],bottom:["slide-up","slide-down"],right:["slide-left","slide-right"],left:["slide-right","slide-left"]},ns=Be({name:"QDialog",inheritAttrs:!1,props:{...Bd,...Kr,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:[...Fd,"shake","click","escapeKey"],setup(t,{slots:e,emit:n,attrs:i}){const s=Ue(),o=B(null),a=B(!1),r=B(!1);let l=null,u=null,c,d;const f=g(()=>t.persistent!==!0&&t.noRouteDismiss!==!0&&t.seamless!==!0),{preventBodyScroll:h}=$g(),{registerTimeout:m}=Ls(),{registerTick:p,removeTick:v}=Ps(),{transitionProps:b,transitionStyle:_}=Nd(t,()=>Wc[t.position][0],()=>Wc[t.position][1]),y=g(()=>_.value+(t.backdropFilter!==void 0?`;backdrop-filter:${t.backdropFilter};-webkit-backdrop-filter:${t.backdropFilter}`:"")),{showPortal:w,hidePortal:x,portalIsAccessible:M,renderPortal:E}=Hd(s,o,me,"dialog"),{hide:L}=Wd({showing:a,hideOnRouteChange:f,handleShow:Y,handleHide:U,processOnMount:!0}),{addToHistory:O,removeFromHistory:D}=Rg(a,L,f),R=g(()=>`q-dialog__inner flex no-pointer-events q-dialog__inner--${t.maximized===!0?"maximized":"minimized"} q-dialog__inner--${t.position} ${h_[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=g(()=>a.value===!0&&t.seamless!==!0),j=g(()=>t.autoClose===!0?{onClick:I}:{}),F=g(()=>[`q-dialog fullscreen no-pointer-events q-dialog--${T.value===!0?"modal":"seamless"}`,i.class]);he(()=>t.maximized,z=>{a.value===!0&&V(z)}),he(T,z=>{h(z),z===!0?(Jf(ce),Qf(ae)):(kr(ce),Zo(ae))});function Y(z){O(),u=t.noRefocus===!1&&document.activeElement!==null?document.activeElement:null,V(t.maximized),w(),r.value=!0,t.noFocus!==!0?(document.activeElement?.blur(),p(J)):v(),m(()=>{if(s.proxy.$q.platform.is.ios===!0){if(t.seamless!==!0&&document.activeElement){const{top:ee,bottom:Me}=document.activeElement.getBoundingClientRect(),{innerHeight:Q}=window,Le=window.visualViewport!==void 0?window.visualViewport.height:Q;ee>0&&Me>Le/2&&(document.scrollingElement.scrollTop=Math.min(document.scrollingElement.scrollHeight-Le,Me>=Q?1/0:Math.ceil(document.scrollingElement.scrollTop+Me-Le/2))),document.activeElement.scrollIntoView()}d=!0,o.value.click(),d=!1}w(!0),r.value=!1,n("show",z)},t.transitionDuration)}function U(z){v(),D(),de(!0),r.value=!0,x(),u!==null&&(((z?.type.indexOf("key")===0?u.closest('[tabindex]:not([tabindex^="-"])'):void 0)||u).focus(),u=null),m(()=>{x(!0),r.value=!1,n("hide",z)},t.transitionDuration)}function J(z){ca(()=>{let ee=o.value;if(ee!==null){if(z!==void 0){const Me=ee.querySelector(z);if(Me!==null){Me.focus({preventScroll:!0});return}}ee.contains(document.activeElement)!==!0&&(ee=ee.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||ee.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||ee.querySelector("[autofocus], [data-autofocus]")||ee,ee.focus({preventScroll:!0}))}})}function Z(z){z&&typeof z.focus=="function"?z.focus({preventScroll:!0}):J(),n("shake");const ee=o.value;ee!==null&&(ee.classList.remove("q-animate--scale"),ee.classList.add("q-animate--scale"),l!==null&&clearTimeout(l),l=setTimeout(()=>{l=null,o.value!==null&&(ee.classList.remove("q-animate--scale"),J())},170))}function ae(){t.seamless!==!0&&(t.persistent===!0||t.noEscDismiss===!0?t.maximized!==!0&&t.noShake!==!0&&Z():(n("escapeKey"),L()))}function de(z){l!==null&&(clearTimeout(l),l=null),(z===!0||a.value===!0)&&(V(!1),t.seamless!==!0&&(h(!1),kr(ce),Zo(ae))),z!==!0&&(u=null)}function V(z){z===!0?c!==!0&&(Co<1&&document.body.classList.add("q-body--dialog"),Co++,c=!0):c===!0&&(Co<2&&document.body.classList.remove("q-body--dialog"),Co--,c=!1)}function I(z){d!==!0&&(L(z),n("click",z))}function G(z){t.persistent!==!0&&t.noBackdropDismiss!==!0?L(z):t.noShake!==!0&&Z()}function ce(z){t.allowFocusOutside!==!0&&M.value===!0&&Ad(o.value,z.target)!==!0&&J('[tabindex]:not([tabindex="-1"])')}Object.assign(s.proxy,{focus:J,shake:Z,__updateRefocusTarget(z){u=z||null}}),Rt(de);function me(){return S("div",{role:"dialog","aria-modal":T.value===!0?"true":"false",...i,class:F.value},[S(As,{name:"q-transition--fade",appear:!0},()=>T.value===!0?S("div",{class:"q-dialog__backdrop fixed-full",style:y.value,"aria-hidden":"true",tabindex:-1,onClick:G}):null),S(As,b.value,()=>a.value===!0?S("div",{ref:o,class:R.value,style:_.value,tabindex:-1,...j.value},et(e.default)):null)])}return E}}),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"}]}),m_=ye({__name:"BaseCarousel",props:{items:{}},setup(t){const e=t,n=B(null),i=B(null),s=B(0),o=B(100),a=B(0),r=B(0),l=B(!1);function u(){bt(()=>{if(i.value&&(o.value=i.value[0].clientWidth||300),l.value=zi.gt.xs&&d.value.length>1,n.value?.$el){a.value=n.value.$el.clientWidth||0;const h=n.value.$el.querySelector(".q-carousel__slide");if(h){const m=window.getComputedStyle(h);r.value=parseFloat(m.paddingLeft||"0")+parseFloat(m.paddingRight||"0")}else console.warn("Could not find .q-carousel__slide element")}})}hn(()=>{u(),window.addEventListener("resize",u,{passive:!0})}),Rt(()=>{window.removeEventListener("resize",u)}),he(()=>e.items,u);const c=g(()=>{if(!o.value||!a.value)return 1;const h=Math.max(1,Math.floor((a.value-2-(l.value?r.value:50))/o.value));return e.items.length>h&&e.items.length<=h+1&&e.items.length-h===1&&e.items.length*o.value{const h=c.value,m=[];for(let p=0;p{s.value>h.length-1&&(s.value=Math.max(0,h.length-1)),u()}),(h,m)=>(P(),X(ef,{ref_key:"carouselRef",ref:n,modelValue:s.value,"onUpdate:modelValue":[m[0]||(m[0]=p=>s.value=p),f],swipeable:"",animated:!0,"control-color":"primary",infinite:"",padding:"",navigation:d.value.length>1,arrows:l.value,class:"carousel-height","transition-next":"slide-left","transition-prev":"slide-right",onMousedown:m[1]||(m[1]=ln(()=>{},["prevent"]))},{default:A(()=>[(P(!0),K(Oe,null,Xe(d.value,(p,v)=>(P(),X(Kd,{key:v,name:v,class:"row no-wrap justify-center carousel-slide"},{default:A(()=>[(P(!0),K(Oe,null,Xe(p,b=>(P(),K("div",{key:b,class:"item-container",ref_for:!0,ref_key:"itemRef",ref:i},[Vi(h.$slots,"item",{item:b},void 0,!0)]))),128))]),_:2},1032,["name"]))),128))]),_:3},8,["modelValue","navigation","arrows"]))}}),_l=ht(m_,[["__scopeId","data-v-43f1f50c"]]),Hc=/^on[A-Z]/;function g_(){const{attrs:t,vnode:e}=Ue(),n={listeners:B({}),attributes:B({})};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 Ld(i),i(),n}function v_({validate:t,resetValidation:e,requiresQForm:n}){const i=Lo(gg,!1);if(i!==!1){const{props:s,proxy:o}=Ue();Object.assign(o,{validate:t,resetValidation:e}),he(()=>s.disable,a=>{a===!0?(typeof e=="function"&&e(),i.unbindComponent(o)):i.bindComponent(o)}),hn(()=>{s.disable!==!0&&i.bindComponent(o)}),Rt(()=>{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})$/,Mo=/^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])\)$/,Po=/^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)\)$/,lr={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=>Mo.test(t),rgbaColor:t=>Po.test(t),rgbOrRgbaColor:t=>Mo.test(t)||Po.test(t),hexOrRgbColor:t=>jc.test(t)||Mo.test(t),hexaOrRgbaColor:t=>Uc.test(t)||Po.test(t),anyColor:t=>Yc.test(t)||Mo.test(t)||Po.test(t)},p_=[!0,!1,"ondemand"],b_={modelValue:{},error:{type:Boolean,default:null},errorMessage:String,noErrorIcon:Boolean,rules:Array,reactiveRules:Boolean,lazyRules:{type:[Boolean,String],default:!1,validator:t=>p_.includes(t)}};function y_(t,e){const{props:n,proxy:i}=Ue(),s=B(!1),o=B(null),a=B(!1);v_({validate:p,resetValidation:m});let r=0,l;const u=g(()=>n.rules!==void 0&&n.rules!==null&&n.rules.length!==0),c=g(()=>n.disable!==!0&&u.value===!0&&e.value===!1),d=g(()=>n.error===!0||s.value===!0),f=g(()=>typeof n.errorMessage=="string"&&n.errorMessage.length!==0?n.errorMessage:o.value);he(()=>n.modelValue,()=>{a.value=!0,c.value===!0&&n.lazyRules===!1&&v()});function h(){n.lazyRules!=="ondemand"&&c.value===!0&&a.value===!0&&v()}he(()=>n.reactiveRules,b=>{b===!0?l===void 0&&(l=he(()=>n.rules,h,{immediate:!0,deep:!0})):l!==void 0&&(l(),l=void 0)},{immediate:!0}),he(()=>n.lazyRules,h),he(t,b=>{b===!0?a.value=!0:c.value===!0&&n.lazyRules!=="ondemand"&&v()});function m(){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 _=++r,y=e.value!==!0?()=>{a.value=!0}:()=>{},w=(M,E)=>{M===!0&&y(),s.value=M,o.value=E||null,e.value=!1},x=[];for(let M=0;M{if(M===void 0||Array.isArray(M)===!1||M.length===0)return _===r&&w(!1),!0;const E=M.find(L=>L===!1||typeof L=="string");return _===r&&w(E!==void 0,E),E===void 0},M=>(_===r&&(console.error(M),w(!0)),!1)))}const v=Rd(p,0);return Rt(()=>{l?.(),v.cancel()}),Object.assign(i,{resetValidation:m,validate:p}),si(i,"hasError",()=>d.value),{isDirtyModel:a,hasRules:u,hasError:d,errorMessage:f,validate:p,resetValidation:m}}function Hs(t){return t!=null&&(""+t).length!==0}const x_={...mn,...b_,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},xa={...x_,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=th({required:t,getValue:()=>i.for});return{requiredForAttr:t,changeEvent:n,tag:e===!0?g(()=>i.tag):{value:"label"},isDark:o,editable:g(()=>i.disable!==!0&&i.readonly!==!0),innerLoading:B(!1),focused:B(!1),hasPopupOpen:!1,splitAttrs:g_(),targetUid:a,rootRef:B(null),targetRef:B(null),controlRef:B(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=g(()=>Hs(e.modelValue))),t.emitValue===void 0&&(t.emitValue=Z=>{n("update:modelValue",Z)}),t.controlEvents===void 0&&(t.controlEvents={onFocusin:O,onFocusout:D}),Object.assign(t,{clearValue:R,onControlFocusin:O,onControlFocusout:D,focus:E}),t.computedCounter===void 0&&(t.computedCounter=g(()=>{if(e.counter!==!1){const Z=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 Z+(ae!==void 0?" / "+ae:"")}}));const{isDirtyModel:l,hasRules:u,hasError:c,errorMessage:d,resetValidation:f}=y_(t.focused,t.innerLoading),h=t.floatingLabel!==void 0?g(()=>e.stackLabel===!0||t.focused.value===!0||t.floatingLabel.value===!0):g(()=>e.stackLabel===!0||t.focused.value===!0||t.hasValue.value===!0),m=g(()=>e.bottomSlots===!0||e.hint!==void 0||u.value===!0||e.counter===!0||e.error!==null),p=g(()=>e.filled===!0?"filled":e.outlined===!0?"outlined":e.borderless===!0?"borderless":e.standout?"standout":"standard"),v=g(()=>`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":"")+(_.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&&m.value===!0?" q-field--with-bottom":"")+(e.disable===!0?" q-field--disabled":e.readonly===!0?" q-field--readonly":"")),b=g(()=>"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}`:"")),_=g(()=>e.labelSlot===!0||e.label!==void 0),y=g(()=>"q-field__label no-pointer-events absolute ellipsis"+(e.labelColor!==void 0&&c.value!==!0?` text-${e.labelColor}`:"")),w=g(()=>({id:t.targetUid.value,editable:t.editable.value,focused:t.focused.value,floatingLabel:h.value,modelValue:e.modelValue,emitValue:t.emitValue})),x=g(()=>{const Z={};return t.targetUid.value&&(Z.for=t.targetUid.value),e.disable===!0&&(Z["aria-disabled"]="true"),Z});function M(){const Z=document.activeElement;let ae=t.targetRef?.value;ae&&(Z===null||Z.id!==t.targetUid.value)&&(ae.hasAttribute("tabindex")===!0||(ae=ae.querySelector("[tabindex]")),ae!==Z&&ae?.focus({preventScroll:!0}))}function E(){ca(M)}function L(){Fg(M);const Z=document.activeElement;Z!==null&&t.rootRef.value.contains(Z)&&Z.blur()}function O(Z){r!==null&&(clearTimeout(r),r=null),t.editable.value===!0&&t.focused.value===!1&&(t.focused.value=!0,n("focus",Z))}function D(Z,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",Z)),ae?.())})}function R(Z){At(Z),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),bt(()=>{const ae=l.value;f(),l.value=ae})}function T(Z){[13,32].includes(Z.keyCode)&&R(Z)}function j(){const Z=[];return i.prepend!==void 0&&Z.push(S("div",{class:"q-field__prepend q-field__marginal row no-wrap items-center",key:"prepend",onClick:Bn},i.prepend())),Z.push(S("div",{class:"q-field__control-container col relative-position row no-wrap q-anchor--skip"},F())),c.value===!0&&e.noErrorIcon===!1&&Z.push(U("error",[S(we,{name:a.iconSet.field.error,color:"negative"})])),e.loading===!0||t.innerLoading.value===!0?Z.push(U("inner-loading-append",i.loading!==void 0?i.loading():[S(vg,{color:e.color})])):e.clearable===!0&&t.hasValue.value===!0&&t.editable.value===!0&&Z.push(U("inner-clearable-append",[S(we,{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:R})])),i.append!==void 0&&Z.push(S("div",{class:"q-field__append q-field__marginal row no-wrap items-center",key:"append",onClick:Bn},i.append())),t.getInnerAppend!==void 0&&Z.push(U("inner-append",t.getInnerAppend())),t.getControlChild!==void 0&&Z.push(t.getControlChild()),Z}function F(){const Z=[];return e.prefix!==void 0&&e.prefix!==null&&Z.push(S("div",{class:"q-field__prefix no-pointer-events row items-center"},e.prefix)),t.getShadowControl!==void 0&&t.hasShadow.value===!0&&Z.push(t.getShadowControl()),t.getControl!==void 0?Z.push(t.getControl()):i.rawControl!==void 0?Z.push(i.rawControl()):i.control!==void 0&&Z.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(w.value))),_.value===!0&&Z.push(S("div",{class:y.value},et(i.label,e.label))),e.suffix!==void 0&&e.suffix!==null&&Z.push(S("div",{class:"q-field__suffix no-pointer-events row items-center"},e.suffix)),Z.concat(et(i.default))}function Y(){let Z,ae;c.value===!0?d.value!==null?(Z=[S("div",{role:"alert"},d.value)],ae=`q--slot-error-${d.value}`):(Z=et(i.error),ae="q--slot-error"):(e.hideHint!==!0||t.focused.value===!0)&&(e.hint!==void 0?(Z=[S("div",e.hint)],ae=`q--slot-hint-${e.hint}`):(Z=et(i.hint),ae="q--slot-hint"));const de=e.counter===!0||i.counter!==void 0;if(e.hideBottomSpace===!0&&de===!1&&Z===void 0)return;const V=S("div",{key:ae,class:"q-field__messages col"},Z);return S("div",{class:"q-field__bottom row items-start q-field__bottom--"+(e.hideBottomSpace!==!0?"animated":"stale"),onClick:Bn},[e.hideBottomSpace===!0?V:S(As,{name:"q-transition--field-message"},()=>V),de===!0?S("div",{class:"q-field__counter"},i.counter!==void 0?i.counter():t.computedCounter.value):null])}function U(Z,ae){return ae===null?null:S("div",{key:Z,class:"q-field__append q-field__marginal row no-wrap items-center q-anchor--skip"},ae)}let J=!1;return ra(()=>{J=!0}),la(()=>{J===!0&&e.autofocus===!0&&o.focus()}),e.autofocus===!0&&hn(()=>{o.focus()}),Rt(()=>{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:Bn},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},j()),m.value===!0?Y():null]),i.after!==void 0?S("div",{class:"q-field__after q-field__marginal row no-wrap items-center",onClick:Bn},i.after()):null])}}const Zc={date:"####/##/##",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"},ea={"#":{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()}},im=Object.keys(ea);im.forEach(t=>{ea[t].regex=new RegExp(ea[t].pattern)});const w_=new RegExp("\\\\([^.*+?^${}()|([\\]])|([.*+?^${}()|[\\]])|(["+im.join("")+"])|(.)","g"),Xc=/[.*+?^${}()|[\]\\]/g,vt="",__={mask:String,reverseFillMask:Boolean,fillMask:[Boolean,String],unmaskedValue:Boolean};function S_(t,e,n,i){let s,o,a,r,l,u;const c=B(null),d=B(h());function f(){return t.autogrow===!0||["textarea","text","search","url","tel","password"].includes(t.type)}he(()=>t.type+t.autogrow,p),he(()=>t.mask,O=>{if(O!==void 0)v(d.value,!0);else{const D=E(d.value);p(),t.modelValue!==D&&e("update:modelValue",D)}}),he(()=>t.fillMask+t.reverseFillMask,()=>{c.value===!0&&v(d.value,!0)}),he(()=>t.unmaskedValue,()=>{c.value===!0&&v(d.value)});function h(){if(p(),c.value===!0){const O=x(E(t.modelValue));return t.fillMask!==!1?L(O):O}return t.modelValue}function m(O){if(O0;j--)D+=vt;R=R.slice(0,T)+D+R.slice(T)}return R}function p(){if(c.value=t.mask!==void 0&&t.mask.length!==0&&f(),c.value===!1){r=void 0,s="",o="";return}const O=Zc[t.mask]===void 0?t.mask:Zc[t.mask],D=typeof t.fillMask=="string"&&t.fillMask.length!==0?t.fillMask.slice(0,1):"_",R=D.replace(Xc,"\\$&"),T=[],j=[],F=[];let Y=t.reverseFillMask===!0,U="",J="";O.replace(w_,(V,I,G,ce,me)=>{if(ce!==void 0){const z=ea[ce];F.push(z),J=z.negate,Y===!0&&(j.push("(?:"+J+"+)?("+z.pattern+"+)?(?:"+J+"+)?("+z.pattern+"+)?"),Y=!1),j.push("(?:"+J+"+)?("+z.pattern+")?")}else if(G!==void 0)U="\\"+(G==="\\"?"":G),F.push(G),T.push("([^"+U+"]+)?"+U+"?");else{const z=I!==void 0?I:me;U=z==="\\"?"\\\\\\\\":z.replace(Xc,"\\\\$&"),F.push(z),T.push("([^"+U+"]+)?"+U+"?")}});const Z=new RegExp("^"+T.join("")+"("+(U===""?".":"[^"+U+"]")+"+)?"+(U===""?"":"["+U+"]*")+"$"),ae=j.length-1,de=j.map((V,I)=>I===0&&t.reverseFillMask===!0?new RegExp("^"+R+"*"+V):I===ae?new RegExp("^"+V+"("+(J===""?".":J)+"+)?"+(t.reverseFillMask===!0?"$":R+"*")):new RegExp("^"+V));a=F,r=V=>{const I=Z.exec(t.reverseFillMask===!0?V:V.slice(0,F.length+1));I!==null&&(V=I.slice(1).join(""));const G=[],ce=de.length;for(let me=0,z=V;metypeof V=="string"?V:vt).join(""),o=s.split(vt).join(D)}function v(O,D,R){const T=i.value,j=T.selectionEnd,F=T.value.length-j,Y=E(O);D===!0&&p();const U=x(Y),J=t.fillMask!==!1?L(U):U,Z=d.value!==J;T.value!==J&&(T.value=J),Z===!0&&(d.value=J),document.activeElement===T&&bt(()=>{if(J===o){const de=t.reverseFillMask===!0?o.length:0;T.setSelectionRange(de,de,"forward");return}if(R==="insertFromPaste"&&t.reverseFillMask!==!0){const de=T.selectionEnd;let V=j-1;for(let I=l;I<=V&&IU.length?1:0:Math.max(0,J.length-(J===o?0:Math.min(U.length,F)+1))+1:j;T.setSelectionRange(de,de,"forward");return}if(t.reverseFillMask===!0)if(Z===!0){const de=Math.max(0,J.length-(J===o?0:Math.min(U.length,F+1)));de===1&&j===1?T.setSelectionRange(de,de,"forward"):_.rightReverse(T,de)}else{const de=J.length-F;T.setSelectionRange(de,de,"backward")}else if(Z===!0){const de=Math.max(0,s.indexOf(vt),Math.min(U.length,j)-1);_.right(T,de)}else{const de=j-1;_.right(T,de)}});const ae=t.unmaskedValue===!0?E(J):J;String(t.modelValue)!==ae&&(t.modelValue!==null||ae!=="")&&n(ae,!0)}function b(O,D,R){const T=x(E(O.value));D=Math.max(0,s.indexOf(vt),Math.min(T.length,D)),l=D,O.setSelectionRange(D,R,"forward")}const _={left(O,D){const R=s.slice(D-1).indexOf(vt)===-1;let T=Math.max(0,D-1);for(;T>=0;T--)if(s[T]===vt){D=T,R===!0&&D++;break}if(T<0&&s[D]!==void 0&&s[D]!==vt)return _.right(O,0);D>=0&&O.setSelectionRange(D,D,"backward")},right(O,D){const R=O.value.length;let T=Math.min(R,D+1);for(;T<=R;T++)if(s[T]===vt){D=T;break}else s[T-1]===vt&&(D=T);if(T>R&&s[D-1]!==void 0&&s[D-1]!==vt)return _.left(O,R);O.setSelectionRange(D,D,"forward")},leftReverse(O,D){const R=m(O.value.length);let T=Math.max(0,D-1);for(;T>=0;T--)if(R[T-1]===vt){D=T;break}else if(R[T]===vt&&(D=T,T===0))break;if(T<0&&R[D]!==void 0&&R[D]!==vt)return _.rightReverse(O,0);D>=0&&O.setSelectionRange(D,D,"backward")},rightReverse(O,D){const R=O.value.length,T=m(R),j=T.slice(0,D+1).indexOf(vt)===-1;let F=Math.min(R,D+1);for(;F<=R;F++)if(T[F-1]===vt){D=F,D>0&&j===!0&&D--;break}if(F>R&&T[D-1]!==void 0&&T[D-1]!==vt)return _.leftReverse(O,R);O.setSelectionRange(D,D,"forward")}};function y(O){e("click",O),u=void 0}function w(O){if(e("keydown",O),jr(O)===!0||O.altKey===!0)return;const D=i.value,R=D.selectionStart,T=D.selectionEnd;if(O.shiftKey||(u=void 0),O.keyCode===37||O.keyCode===39){O.shiftKey&&u===void 0&&(u=D.selectionDirection==="forward"?R:T);const j=_[(O.keyCode===39?"right":"left")+(t.reverseFillMask===!0?"Reverse":"")];if(O.preventDefault(),j(D,u===R?T:R),O.shiftKey){const F=D.selectionStart;D.setSelectionRange(Math.min(u,F),Math.max(u,F),"forward")}}else O.keyCode===8&&t.reverseFillMask!==!0&&R===T?(_.left(D,R),D.setSelectionRange(D.selectionStart,T,"backward")):O.keyCode===46&&t.reverseFillMask===!0&&R===T&&(_.rightReverse(D,T),D.setSelectionRange(R,D.selectionEnd,"forward"))}function x(O){if(O==null||O==="")return"";if(t.reverseFillMask===!0)return M(O);const D=a;let R=0,T="";for(let j=0;j=0&&T!==-1;F--){const Y=D[F];let U=O[T];if(typeof Y=="string")j=Y+j;else if(U!==void 0&&Y.regex.test(U))do j=(Y.transform!==void 0?Y.transform(U):U)+j,T--,U=O[T];while(R===F&&U!==void 0&&Y.regex.test(U));else return j}return j}function E(O){return typeof O!="string"||r===void 0?typeof O=="number"?r(""+O):O:r(O)}function L(O){return o.length-O.length<=0?O:t.reverseFillMask===!0&&O.length!==0?o.slice(0,-O.length)+O:O+o.slice(O.length)}return{innerValue:d,hasMask:c,moveCursorForPaste:b,updateMaskValue:v,onMaskedKeydown:w,onMaskedClick:y}}const wa={name:String};function k_(t){return g(()=>({type:"hidden",name:t.name,value:t.modelValue}))}function sm(t={}){return(e,n,i)=>{e[n](S("input",{class:"hidden"+(i||""),...t.value}))}}function om(t){return g(()=>t.name||t.for)}function C_(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 g(()=>{if(t.type==="file")return n()})}const M_=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/,P_=/[\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,T_=/[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/,I_=/[a-z0-9_ -]$/i;function am(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"&&(zn.is.firefox===!0?I_.test(n.data)===!1:M_.test(n.data)===!0||P_.test(n.data)===!0||T_.test(n.data)===!0)===!0&&(n.target.qComposing=!0)}}const rm=Be({name:"QInput",inheritAttrs:!1,props:{...xa,...__,...wa,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=B(null),f=om(t),{innerValue:h,hasMask:m,moveCursorForPaste:p,updateMaskValue:v,onMaskedKeydown:b,onMaskedClick:_}=S_(t,e,U,d),y=C_(t),w=g(()=>Hs(h.value)),x=am(F),M=kl({changeEvent:!0}),E=g(()=>t.type==="textarea"||t.autogrow===!0),L=g(()=>E.value===!0||["text","search","url","tel","password"].includes(t.type)),O=g(()=>{const I={...M.splitAttrs.listeners.value,onInput:F,onPaste:j,onChange:Z,onBlur:ae,onFocus:In};return I.onCompositionstart=I.onCompositionupdate=I.onCompositionend=x,m.value===!0&&(I.onKeydown=b,I.onClick=_),t.autogrow===!0&&(I.onAnimationend=Y),I}),D=g(()=>{const I={tabindex:0,"data-autofocus":t.autofocus===!0||void 0,rows:t.type==="textarea"?6:void 0,"aria-label":t.label,name:f.value,...M.splitAttrs.attributes.value,id:M.targetUid.value,maxlength:t.maxlength,disabled:t.disable===!0,readonly:t.readonly===!0};return E.value===!1&&(I.type=t.type),t.autogrow===!0&&(I.rows=1),I});he(()=>t.type,()=>{d.value&&(d.value.value=t.modelValue)}),he(()=>t.modelValue,I=>{if(m.value===!0){if(l===!0&&(l=!1,String(I)===a))return;v(I)}else h.value!==I&&(h.value=I,t.type==="number"&&o.hasOwnProperty("value")===!0&&(r===!0?r=!1:delete o.value));t.autogrow===!0&&bt(J)}),he(()=>t.autogrow,I=>{I===!0?bt(J):d.value!==null&&n.rows>0&&(d.value.style.height="auto")}),he(()=>t.dense,()=>{t.autogrow===!0&&bt(J)});function R(){ca(()=>{const I=document.activeElement;d.value!==null&&d.value!==I&&(I===null||I.id!==M.targetUid.value)&&d.value.focus({preventScroll:!0})})}function T(){d.value?.select()}function j(I){if(m.value===!0&&t.reverseFillMask!==!0){const G=I.target;p(G,G.selectionStart,G.selectionEnd)}e("paste",I)}function F(I){if(!I||!I.target)return;if(t.type==="file"){e("update:modelValue",I.target.files);return}const G=I.target.value;if(I.target.qComposing===!0){o.value=G;return}if(m.value===!0)v(G,!1,I.inputType);else if(U(G),L.value===!0&&I.target===document.activeElement){const{selectionStart:ce,selectionEnd:me}=I.target;ce!==void 0&&me!==void 0&&bt(()=>{I.target===document.activeElement&&G.indexOf(I.target.value)===0&&I.target.setSelectionRange(ce,me)})}t.autogrow===!0&&J()}function Y(I){e("animationend",I),J()}function U(I,G){c=()=>{u=null,t.type!=="number"&&o.hasOwnProperty("value")===!0&&delete o.value,t.modelValue!==I&&a!==I&&(a=I,G===!0&&(l=!0),e("update:modelValue",I),bt(()=>{a===I&&(a=NaN)})),c=void 0},t.type==="number"&&(r=!0,o.value=I),t.debounce!==void 0?(u!==null&&clearTimeout(u),o.value=I,u=setTimeout(c,t.debounce)):c()}function J(){requestAnimationFrame(()=>{const I=d.value;if(I!==null){const G=I.parentNode.style,{scrollTop:ce}=I,{overflowY:me,maxHeight:z}=s.platform.is.firefox===!0?{}:window.getComputedStyle(I),ee=me!==void 0&&me!=="scroll";ee===!0&&(I.style.overflowY="hidden"),G.marginBottom=I.scrollHeight-1+"px",I.style.height="1px",I.style.height=I.scrollHeight+"px",ee===!0&&(I.style.overflowY=parseInt(z,10){d.value!==null&&(d.value.value=h.value!==void 0?h.value:"")})}function de(){return o.hasOwnProperty("value")===!0?o.value:h.value!==void 0?h.value:""}Rt(()=>{ae()}),hn(()=>{t.autogrow===!0&&J()}),Object.assign(M,{innerValue:h,fieldClass:g(()=>`q-${E.value===!0?"textarea":"input"}`+(t.autogrow===!0?" q-textarea--autogrow":"")),hasShadow:g(()=>t.type!=="file"&&typeof t.shadowText=="string"&&t.shadowText.length!==0),inputRef:d,emitValue:U,hasValue:w,floatingLabel:g(()=>w.value===!0&&(t.type!=="number"||isNaN(h.value)===!1)||Hs(t.displayValue)),getControl:()=>S(E.value===!0?"textarea":"input",{ref:d,class:["q-field__native q-placeholder",t.inputClass],style:t.inputStyle,...D.value,...O.value,...t.type!=="file"?{value:de()}:y.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"},de()),S("span",t.shadowText)])});const V=Cl(M);return Object.assign(i,{focus:R,select:T,getNativeElement:()=>d.value}),si(i,"nativeEl",()=>d.value),V}}),Lr=Be({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},et(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=pg(e.default,[]),r[c](S(we,{class:a.__iconClass,name:s.iconSet.table.arrowUp}))}else r=et(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)}}}),ur=Be({name:"QTr",props:{props:Object,noHover:Boolean},setup(t,{slots:e}){const n=g(()=>"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},et(e.default))}}),D_=["horizontal","vertical","cell","none"],O_=Be({name:"QMarkupTable",props:{...mn,dense:Boolean,flat:Boolean,bordered:Boolean,square:Boolean,wrapCells:Boolean,separator:{type:String,default:"horizontal",validator:t=>D_.includes(t)}},setup(t,{slots:e}){const n=Ue(),i=gn(t,n.proxy.$q),s=g(()=>`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"},et(e.default))])}});function lm(t,e){return S("div",t,[S("table",{class:"q-table"},e)])}const un=1e3,V_=["start","center","end","start-force","center-force","end-force"],um=Array.prototype.filter,E_=window.getComputedStyle(document.body).overflowAnchor===void 0?Dd: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||[];um.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 Fi(t,e){return t+e}function cr(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=(Rs===!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=(Rs===!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=(Rs===!0?t.scrollWidth-t.offsetWidth:0)-e),t.scrollLeft=e):t.scrollTop=e}function vs(t,e,n,i){if(n>=i)return 0;const s=e.length,o=Math.floor(n/un),a=Math.floor((i-1)/un)+1;let r=t.slice(o,a).reduce(Fi,0);return n%un!==0&&(r-=e.slice(o*un,n).reduce(Fi,0)),i%un!==0&&i!==s&&(r-=e.slice(i,a*un).reduce(Fi,0)),r}const cm={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]},dm=Object.keys(cm),Rr={virtualScrollHorizontal:Boolean,onVirtualScroll:Function,...cm};function fm({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 m=B(0),p=B(0),v=B({}),b=B(null),_=B(null),y=B(null),w=B({from:0,to:0}),x=g(()=>o.tableColspan!==void 0?o.tableColspan:100);i===void 0&&(i=g(()=>o.virtualScrollItemSize));const M=g(()=>i.value+";"+o.virtualScrollHorizontal),E=g(()=>M.value+";"+o.virtualScrollSliceRatioBefore+";"+o.virtualScrollSliceRatioAfter);he(E,()=>{U()}),he(M,L);function L(){Y(c,!0)}function O(V){Y(V===void 0?c:V)}function D(V,I){const G=e();if(G==null||G.nodeType===8)return;const ce=cr(G,n(),b.value,_.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd);d!==ce.scrollViewSize&&U(ce.scrollViewSize),T(G,ce,Math.min(t.value-1,Math.max(0,parseInt(V,10)||0)),0,V_.indexOf(I)!==-1?I:c!==-1&&V>c?"end":"start")}function R(){const V=e();if(V==null||V.nodeType===8)return;const I=cr(V,n(),b.value,_.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd),G=t.value-1,ce=I.scrollMaxSize-I.offsetStart-I.offsetEnd-p.value;if(u===I.scrollStart)return;if(I.scrollMaxSize<=0){T(V,I,0,0);return}d!==I.scrollViewSize&&U(I.scrollViewSize),j(w.value.from);const me=Math.floor(I.scrollMaxSize-Math.max(I.scrollViewSize,I.offsetEnd)-Math.min(h[G],I.scrollViewSize/2));if(me>0&&Math.ceil(I.scrollStart)>=me){T(V,I,G,I.scrollMaxSize-I.offsetEnd-f.reduce(Fi,0));return}let z=0,ee=I.scrollStart-I.offsetStart,Me=ee;if(ee<=ce&&ee+I.scrollViewSize>=m.value)ee-=m.value,z=w.value.from,Me=ee;else for(let Q=0;ee>=f[Q]&&z0&&z-I.scrollViewSize?(z++,Me=ee):Me=h[z]+ee;T(V,I,z,Me)}function T(V,I,G,ce,me){const z=typeof me=="string"&&me.indexOf("-force")!==-1,ee=z===!0?me.replace("-force",""):me,Me=ee!==void 0?ee:"start";let Q=Math.max(0,G-v.value[Me]),Le=Q+v.value.total;Le>t.value&&(Le=t.value,Q=Math.max(0,Le-v.value.total)),u=I.scrollStart;const tt=Q!==w.value.from||Le!==w.value.to;if(tt===!1&&ee===void 0){Z(G);return}const{activeElement:Ot}=document,ct=y.value;tt===!0&&ct!==null&&ct!==Ot&&ct.contains(Ot)===!0&&(ct.addEventListener("focusout",F),setTimeout(()=>{ct?.removeEventListener("focusout",F)})),E_(ct,G-Q);const yt=ee!==void 0?h.slice(Q,G).reduce(Fi,0):0;if(tt===!0){const mt=Le>=w.value.from&&Q<=w.value.to?w.value.to:Le;w.value={from:Q,to:mt},m.value=vs(f,h,0,Q),p.value=vs(f,h,Le,t.value),requestAnimationFrame(()=>{w.value.to!==Le&&u===I.scrollStart&&(w.value={from:w.value.from,to:Le},p.value=vs(f,h,Le,t.value))})}requestAnimationFrame(()=>{if(u!==I.scrollStart)return;tt===!0&&j(Q);const mt=h.slice(Q,G).reduce(Fi,0),xt=mt+I.offsetStart+m.value,gt=xt+h[G];let Mt=xt+ce;if(ee!==void 0){const Wt=mt-yt,Vt=I.scrollStart+Wt;Mt=z!==!0&&VtQ.classList&&Q.classList.contains("q-virtual-scroll--skip")===!1),ce=G.length,me=o.virtualScrollHorizontal===!0?Q=>Q.getBoundingClientRect().width:Q=>Q.offsetHeight;let z=V,ee,Me;for(let Q=0;Q=ce;z--)h[z]=G;const me=Math.floor((t.value-1)/un);f=[];for(let z=0;z<=me;z++){let ee=0;const Me=Math.min((z+1)*un,t.value);for(let Q=z*un;Q=0?(j(w.value.from),bt(()=>{D(V)})):ae()}function U(V){if(V===void 0&&typeof window<"u"){const ee=e();ee!=null&&ee.nodeType!==8&&(V=cr(ee,n(),b.value,_.value,o.virtualScrollHorizontal,l.lang.rtl,o.virtualScrollStickySizeStart,o.virtualScrollStickySizeEnd).scrollViewSize)}d=V;const I=parseFloat(o.virtualScrollSliceRatioBefore)||0,G=parseFloat(o.virtualScrollSliceRatioAfter)||0,ce=1+I+G,me=V===void 0||V<=0?1:Math.ceil(V/i.value),z=Math.max(1,me,Math.ceil((o.virtualScrollSliceSize>0?o.virtualScrollSliceSize:10)/ce));v.value={total:Math.ceil(z*ce),start:Math.ceil(z*I),center:Math.ceil(z*(.5+I)),end:Math.ceil(z*(1+I)),view:me}}function J(V,I){const G=o.virtualScrollHorizontal===!0?"width":"height",ce={["--q-virtual-scroll-item-"+G]:i.value+"px"};return[V==="tbody"?S(V,{class:"q-virtual-scroll__padding",key:"before",ref:b},[S("tr",[S("td",{style:{[G]:`${m.value}px`,...ce},colspan:x.value})])]):S(V,{class:"q-virtual-scroll__padding",key:"before",ref:b,style:{[G]:`${m.value}px`,...ce}}),S(V,{class:"q-virtual-scroll__content",key:"content",ref:y,tabindex:-1},I.flat()),V==="tbody"?S(V,{class:"q-virtual-scroll__padding",key:"after",ref:_},[S("tr",[S("td",{style:{[G]:`${p.value}px`,...ce},colspan:x.value})])]):S(V,{class:"q-virtual-scroll__padding",key:"after",ref:_,style:{[G]:`${p.value}px`,...ce}})]}function Z(V){c!==V&&(o.onVirtualScroll!==void 0&&a("virtualScroll",{index:V,from:w.value.from,to:w.value.to-1,direction:V{U()});let de=!1;return ra(()=>{de=!0}),la(()=>{if(de!==!0)return;const V=e();u!==void 0&&V!==void 0&&V!==null&&V.nodeType!==8?Kc(V,u,o.virtualScrollHorizontal,l.lang.rtl):D(c)}),Rt(()=>{ae.cancel()}),Object.assign(r,{scrollTo:D,reset:L,refresh:O}),{virtualScrollSliceRange:w,virtualScrollSliceSizeComputed:v,setVirtualScrollSize:U,onVirtualScrollEvt:ae,localResetVirtualScroll:Y,padVirtualScroll:J,scrollTo:D,reset:L,refresh:O}}const A_={list:Bi,table:O_},q_=["list","table","__qtable"],L_=Be({name:"QVirtualScroll",props:{...Rr,type:{type:String,default:"list",validator:t=>q_.includes(t)},items:{type:Array,default:()=>[]},itemsFn:Function,itemsSize:Number,scrollTarget:zd},setup(t,{slots:e,attrs:n}){let i;const s=B(null),o=g(()=>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}=fm({virtualScrollLength:o,getVirtualScrollTarget:m,getVirtualScrollEl:h}),c=g(()=>{if(o.value===0)return[];const _=(y,w)=>({index:a.value.from+w,item:y});return t.itemsFn===void 0?t.items.slice(a.value.from,a.value.to).map(_):t.itemsFn(a.value.from,a.value.to-a.value.from).map(_)}),d=g(()=>"q-virtual-scroll q-virtual-scroll"+(t.virtualScrollHorizontal===!0?"--horizontal":"--vertical")+(t.scrollTarget!==void 0?"":" scroll")),f=g(()=>t.scrollTarget!==void 0?{}:{tabindex:0});he(o,()=>{r()}),he(()=>t.scrollTarget,()=>{v(),p()});function h(){return s.value.$el||s.value}function m(){return i}function p(){i=jd(h(),t.scrollTarget),i.addEventListener("scroll",u,zl.passive)}function v(){i!==void 0&&(i.removeEventListener("scroll",u,zl.passive),i=void 0)}function b(){let _=l(t.type==="list"?"div":"tbody",c.value.map(e.default));return e.before!==void 0&&(_=e.before().concat(_)),mi(e.after,_)}return Ur(()=>{r()}),hn(()=>{p()}),la(()=>{p()}),ra(()=>{v()}),Rt(()=>{v()}),()=>{if(e.default===void 0){console.error("QVirtualScroll: default scoped slot is required for rendering");return}return t.type==="__qtable"?lm({ref:s,class:"q-table__middle "+d.value},b()):S(A_[t.type],{...n,ref:s,class:[n.class,d.value],...f.value},b)}}}),hm=Be({name:"QField",inheritAttrs:!1,props:{...xa,tag:{type:String,default:"label"}},emits:Sl,setup(){return Cl(kl({tagProp:!0}))}}),R_={xs:8,sm:10,md:14,lg:20,xl:24},ta=Be({name:"QChip",props:{...mn,...Yr,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=Zr(t,R_),a=g(()=>t.selected===!0||t.icon!==void 0),r=g(()=>t.selected===!0?t.iconSelected||i.iconSet.chip.selected:t.icon),l=g(()=>t.iconRemove||i.iconSet.chip.remove),u=g(()=>t.disable===!1&&(t.clickable===!0||t.selected!==null)),c=g(()=>{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=g(()=>{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 m(v){(v.keyCode===void 0||v.keyCode===13)&&(At(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(we,{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"},bg(e.default,b))),t.iconRight&&v.push(S(we,{class:"q-chip__icon q-chip__icon--right",name:t.iconRight})),t.removable===!0&&v.push(S(we,{class:"q-chip__icon q-chip__icon--remove cursor-pointer",name:l.value,...d.value.remove,onClick:m,onKeyup:m})),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}),ua("div",v,p(),"ripple",t.ripple!==!1&&t.disable!==!0,()=>[[Td,t.ripple]])}}}),Qc=t=>["add","add-unique","toggle"].includes(t),$_=".*+?^${}()|[]\\",F_=Object.keys(xa);function dr(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 z_=Be({name:"QSelect",inheritAttrs:!1,props:{...Rr,...wa,...xa,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:Rr.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=B(!1),a=B(!1),r=B(-1),l=B(""),u=B(!1),c=B(!1);let d=null,f=null,h,m,p,v=null,b,_,y,w;const x=B(null),M=B(null),E=B(null),L=B(null),O=B(null),D=om(t),R=am($),T=g(()=>Array.isArray(t.options)?t.options.length:0),j=g(()=>t.virtualScrollItemSize===void 0?t.optionsDense===!0?24:48:t.virtualScrollItemSize),{virtualScrollSliceRange:F,virtualScrollSliceSizeComputed:Y,localResetVirtualScroll:U,padVirtualScroll:J,onVirtualScrollEvt:Z,scrollTo:ae,setVirtualScrollSize:de}=fm({virtualScrollLength:T,getVirtualScrollTarget:Da,getVirtualScrollEl:qn,virtualScrollItemSizeComputed:j}),V=kl(),I=g(()=>{const k=t.mapOptions===!0&&t.multiple!==!0,re=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 le=t.mapOptions===!0&&h!==void 0?h:[],Ie=re.map(Ze=>H(Ze,le));return t.modelValue===null&&k===!0?Ie.filter(Ze=>Ze!==null):Ie}return re}),G=g(()=>{const k={};return F_.forEach(re=>{const le=t[re];le!==void 0&&(k[re]=le)}),k}),ce=g(()=>t.optionsDark===null?V.isDark.value:t.optionsDark),me=g(()=>Hs(I.value)),z=g(()=>{let k="q-field__input q-placeholder col";return t.hideSelected===!0||I.value.length===0?[k,t.inputClass]:(k+=" q-field__input--padding",t.inputClass===void 0?k:[k,t.inputClass])}),ee=g(()=>(t.virtualScrollHorizontal===!0?"q-virtual-scroll--horizontal":"")+(t.popupContentClass?" "+t.popupContentClass:"")),Me=g(()=>T.value===0),Q=g(()=>I.value.map(k=>N.value(k)).join(", ")),Le=g(()=>t.displayValue!==void 0?t.displayValue:Q.value),tt=g(()=>t.optionsHtml===!0?()=>!0:k=>k?.html===!0),Ot=g(()=>t.displayValueHtml===!0||t.displayValue===void 0&&(t.optionsHtml===!0||I.value.some(tt.value))),ct=g(()=>V.focused.value===!0?t.tabindex:-1),yt=g(()=>{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":`${V.targetUid.value}_lb`};return r.value>=0&&(k["aria-activedescendant"]=`${V.targetUid.value}_${r.value}`),k}),mt=g(()=>({id:`${V.targetUid.value}_lb`,role:"listbox","aria-multiselectable":t.multiple===!0?"true":"false"})),xt=g(()=>I.value.map((k,re)=>({index:re,opt:k,html:tt.value(k),selected:!0,removeAtIndex:De,toggleOption:nt,tabindex:ct.value}))),gt=g(()=>{if(T.value===0)return[];const{from:k,to:re}=F.value;return t.options.slice(k,re).map((le,Ie)=>{const Ze=W.value(le)===!0,Ye=ge(le)===!0,Pt=k+Ie,ft={clickable:!0,active:Ye,activeClass:Vt.value,manualFocus:!0,focused:!1,disable:Ze,tabindex:-1,dense:t.optionsDense,dark:ce.value,role:"option","aria-selected":Ye===!0?"true":"false",id:`${V.targetUid.value}_${Pt}`,onClick:()=>{nt(le)}};return Ze!==!0&&(r.value===Pt&&(ft.focused=!0),s.platform.is.desktop===!0&&(ft.onMousemove=()=>{o.value===!0&&wt(Pt)})),{index:Pt,opt:le,html:tt.value(le),label:N.value(le),selected:ft.active,focused:ft.focused,toggleOption:nt,setOptionIndex:wt,itemProps:ft}})}),Mt=g(()=>t.dropdownIcon!==void 0?t.dropdownIcon:s.iconSet.arrow.dropdown),Wt=g(()=>t.optionsCover===!1&&t.outlined!==!0&&t.standout!==!0&&t.borderless!==!0&&t.rounded!==!0),Vt=g(()=>t.optionsSelectedClass!==void 0?t.optionsSelectedClass:t.color!==void 0?`text-${t.color}`:""),dt=g(()=>dr(t.optionValue,"value")),N=g(()=>dr(t.optionLabel,"label")),W=g(()=>dr(t.optionDisable,"disable")),te=g(()=>I.value.map(dt.value)),ie=g(()=>{const k={onInput:$,onChange:R,onKeydown:on,onKeyup:it,onKeypress:Ht,onFocus:Se,onClick(re){m===!0&&In(re)}};return k.onCompositionstart=k.onCompositionupdate=k.onCompositionend=R,k});he(I,k=>{h=k,t.useInput===!0&&t.fillInput===!0&&t.multiple!==!0&&V.innerLoading.value!==!0&&(a.value!==!0&&o.value!==!0||me.value!==!0)&&(p!==!0&&Si(),(a.value===!0||o.value===!0)&&ve(""))},{immediate:!0}),he(()=>t.fillInput,Si),he(o,Aa),he(T,Jm);function Ee(k){return t.emitValue===!0?dt.value(k):k}function Pe(k){if(k!==-1&&k=t.maxValues)return;const Ie=t.modelValue.slice();n("add",{index:Ie.length,value:le}),Ie.push(le),n("update:modelValue",Ie)}function nt(k,re){if(V.editable.value!==!0||k===void 0||W.value(k)===!0)return;const le=dt.value(k);if(t.multiple!==!0){re!==!0&&(pe(t.fillInput===!0?N.value(k):"",!0,!0),Qn()),M.value?.focus(),(I.value.length===0||ls(dt.value(I.value[0]),le)!==!0)&&n("update:modelValue",t.emitValue===!0?le:k);return}if((m!==!0||u.value===!0)&&V.focus(),Se(),I.value.length===0){const Ye=t.emitValue===!0?le:k;n("add",{index:0,value:Ye}),n("update:modelValue",t.multiple===!0?[Ye]:Ye);return}const Ie=t.modelValue.slice(),Ze=te.value.findIndex(Ye=>ls(Ye,le));if(Ze!==-1)n("remove",{index:Ze,value:Ie.splice(Ze,1)[0]});else{if(t.maxValues!==void 0&&Ie.length>=t.maxValues)return;const Ye=t.emitValue===!0?le:k;n("add",{index:Ie.length,value:Ye}),Ie.push(Ye)}n("update:modelValue",Ie)}function wt(k){if(s.platform.is.desktop!==!0)return;const re=k!==-1&&k=0?N.value(t.options[le]):b,!0))}}function H(k,re){const le=Ie=>ls(dt.value(Ie),k);return t.options.find(le)||re.find(le)||k}function ge(k){const re=dt.value(k);return te.value.find(le=>ls(le,re))!==void 0}function Se(k){t.useInput===!0&&M.value!==null&&(k===void 0||M.value===k.target&&k.target.value===Q.value)&&M.value.select()}function He(k){aa(k,27)===!0&&o.value===!0&&(In(k),Qn(),Si()),n("keyup",k)}function it(k){const{value:re}=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 re=="string"&&re.length!==0){const le=re.toLocaleLowerCase(),Ie=Ye=>{const Pt=t.options.find(ft=>String(Ye.value(ft)).toLocaleLowerCase()===le);return Pt===void 0?!1:(I.value.indexOf(Pt)===-1?nt(Pt):Qn(),!0)},Ze=Ye=>{Ie(dt)!==!0&&Ye!==!0&&Ie(N)!==!0&&ve(re,!0,()=>Ze(!0))};Ze()}else V.clearValue(k)}function Ht(k){n("keypress",k)}function on(k){if(n("keydown",k),jr(k)===!0)return;const re=l.value.length!==0&&(t.newValueMode!==void 0||t.onNewValue!==void 0),le=k.shiftKey!==!0&&t.disableTabSelection!==!0&&t.multiple!==!0&&(r.value!==-1||re===!0);if(k.keyCode===27){Bn(k);return}if(k.keyCode===9&&le===!1){wi();return}if(k.target===void 0||k.target.id!==V.targetUid.value||V.editable.value!==!0)return;if(k.keyCode===40&&V.innerLoading.value!==!0&&o.value===!1){At(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)&&(At(k),r.value=-1,$t(k.keyCode===36?1:-1,t.multiple)),(k.keyCode===33||k.keyCode===34)&&Y.value!==void 0&&(At(k),r.value=Math.max(-1,Math.min(T.value,r.value+(k.keyCode===33?-1:1)*Y.value.view)),$t(k.keyCode===33?1:-1,t.multiple)),(k.keyCode===38||k.keyCode===40)&&(At(k),$t(k.keyCode===38?-1:1,t.multiple));const Ie=T.value;if((y===void 0||w0&&t.useInput!==!0&&k.key!==void 0&&k.key.length===1&&k.altKey===!1&&k.ctrlKey===!1&&k.metaKey===!1&&(k.keyCode!==32||y.length!==0)){o.value!==!0&&_i(k);const Ze=k.key.toLocaleLowerCase(),Ye=y.length===1&&y[0]===Ze;w=Date.now()+1500,Ye===!1&&(At(k),y+=Ze);const Pt=new RegExp("^"+y.split("").map(qa=>$_.indexOf(qa)!==-1?"\\"+qa:qa).join(".*"),"i");let ft=r.value;if(Ye===!0||ft<0||Pt.test(N.value(t.options[ft]))!==!0)do ft=Xl(ft+1,-1,Ie-1);while(ft!==r.value&&(W.value(t.options[ft])===!0||Pt.test(N.value(t.options[ft]))!==!0));r.value!==ft&&bt(()=>{wt(ft),ae(ft),ft>=0&&t.useInput===!0&&t.fillInput===!0&&se(N.value(t.options[ft]),!0)});return}if(!(k.keyCode!==13&&(k.keyCode!==32||t.useInput===!0||y!=="")&&(k.keyCode!==9||le===!1))){if(k.keyCode!==9&&At(k),r.value!==-1&&r.value{if(Pt){if(Qc(Pt)!==!0)return}else Pt=t.newValueMode;if(pe("",t.multiple!==!0,!0),Ye==null)return;(Pt==="toggle"?nt:ot)(Ye,Pt==="add-unique"),t.multiple!==!0&&(M.value?.focus(),Qn())};if(t.onNewValue!==void 0?n("newValue",l.value,Ze):Ze(l.value),t.multiple!==!0)return}o.value===!0?wi():V.innerLoading.value!==!0&&_i()}}function qn(){return m===!0?O.value:E.value!==null&&E.value.contentEl!==null?E.value.contentEl:void 0}function Da(){return qn()}function Oa(){return t.hideSelected===!0?[]:e["selected-item"]!==void 0?xt.value.map(k=>e["selected-item"](k)).slice():e.selected!==void 0?[].concat(e.selected()):t.useChips===!0?xt.value.map((k,re)=>S(ta,{key:"option-"+re,removable:V.editable.value===!0&&W.value(k.opt)!==!0,dense:!0,textColor:t.color,tabindex:ct.value,onRemove(){k.removeAtIndex(re)}},()=>S("span",{class:"ellipsis",[k.html===!0?"innerHTML":"textContent"]:N.value(k.opt)}))):[S("span",{class:"ellipsis",[Ot.value===!0?"innerHTML":"textContent"]:Le.value})]}function no(){if(Me.value===!0)return e["no-option"]!==void 0?e["no-option"]({inputValue:l.value}):void 0;const k=e.option!==void 0?e.option:le=>S(Ni,{key:le.index,...le.itemProps},()=>S(Xn,()=>S(Wi,()=>S("span",{[le.html===!0?"innerHTML":"textContent"]:le.label}))));let re=J("div",gt.value.map(k));return e["before-options"]!==void 0&&(re=e["before-options"]().concat(re)),mi(e["after-options"],re)}function Va(k,re){const le=re===!0?{...yt.value,...V.splitAttrs.attributes.value}:void 0,Ie={ref:re===!0?M:void 0,key:"i_t",class:z.value,style:t.inputStyle,value:l.value!==void 0?l.value:"",type:"search",...le,id:re===!0?V.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,...ie.value};return k!==!0&&m===!0&&(Array.isArray(Ie.class)===!0?Ie.class=[...Ie.class,"no-pointer-events"]:Ie.class+=" no-pointer-events"),S("input",Ie)}function $(k){d!==null&&(clearTimeout(d),d=null),f!==null&&(clearTimeout(f),f=null),!(k&&k.target&&k.target.qComposing===!0)&&(se(k.target.value||""),p=!0,b=l.value,V.focused.value!==!0&&(m!==!0||u.value===!0)&&V.focus(),t.onFilter!==void 0&&(d=setTimeout(()=>{d=null,ve(l.value)},t.inputDebounce)))}function se(k,re){l.value!==k&&(l.value=k,re===!0||t.inputDebounce===0||t.inputDebounce==="0"?n("inputValue",k):f=setTimeout(()=>{f=null,n("inputValue",k)},t.inputDebounce))}function pe(k,re,le){p=le!==!0,t.useInput===!0&&(se(k,!0),(re===!0||le!==!0)&&(b=k),re!==!0&&ve(k))}function ve(k,re,le){if(t.onFilter===void 0||re!==!0&&V.focused.value!==!0)return;V.innerLoading.value===!0?n("filterAbort"):(V.innerLoading.value=!0,c.value=!0),k!==""&&t.multiple!==!0&&I.value.length!==0&&p!==!0&&k===N.value(I.value[0])&&(k="");const Ie=setTimeout(()=>{o.value===!0&&(o.value=!1)},10);v!==null&&clearTimeout(v),v=Ie,n("filter",k,(Ze,Ye)=>{(re===!0||V.focused.value===!0)&&v===Ie&&(clearTimeout(v),typeof Ze=="function"&&Ze(),c.value=!1,bt(()=>{V.innerLoading.value=!1,V.editable.value===!0&&(re===!0?o.value===!0&&Qn():o.value===!0?Aa(!0):o.value=!0),typeof Ye=="function"&&bt(()=>{Ye(i)}),typeof le=="function"&&bt(()=>{le(i)})}))},()=>{V.focused.value===!0&&v===Ie&&(clearTimeout(v),V.innerLoading.value=!1,c.value=!1),o.value===!0&&(o.value=!1)})}function xe(){return S(eh,{ref:E,class:ee.value,style:t.popupContentStyle,modelValue:o.value,fit:t.menuShrink!==!0,cover:t.optionsCover===!0&&Me.value!==!0&&t.useInput!==!0,anchor:t.menuAnchor,self:t.menuSelf,offset:t.menuOffset,dark:ce.value,noParentEvent:!0,noRefocus:!0,noFocus:!0,noRouteDismiss:t.popupNoRouteDismiss,square:Wt.value,transitionShow:t.transitionShow,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,separateClosePopup:!0,...mt.value,onScrollPassive:Z,onBeforeShow:Ll,onBeforeHide:st,onShow:Qe},no)}function st(k){Rl(k),wi()}function Qe(){de()}function Zt(k){In(k),M.value?.focus(),u.value=!0,window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,0)}function Ge(k){In(k),bt(()=>{u.value=!1})}function _n(){const k=[S(hm,{class:`col-auto ${V.fieldClass.value}`,...G.value,for:V.targetUid.value,dark:ce.value,square:!0,loading:c.value,itemAligned:!1,filled:!0,stackLabel:l.value.length!==0,...V.splitAttrs.listeners.value,onFocus:Zt,onBlur:Ge},{...e,rawControl:()=>V.getControl(!0),before:void 0,after:void 0})];return o.value===!0&&k.push(S("div",{ref:O,class:ee.value+" scroll",style:t.popupContentStyle,...mt.value,onClick:Bn,onScrollPassive:Z},no())),S(ns,{ref:L,modelValue:a.value,position:t.useInput===!0?"top":void 0,transitionShow:_,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,noRouteDismiss:t.popupNoRouteDismiss,onBeforeShow:Ll,onBeforeHide:xi,onHide:Ea,onShow:Gm},()=>S("div",{class:"q-select__dialog"+(ce.value===!0?" q-select__dialog--dark q-dark":"")+(u.value===!0?" q-select__dialog--focused":"")},k))}function xi(k){Rl(k),L.value!==null&&L.value.__updateRefocusTarget(V.rootRef.value.querySelector(".q-field__native > [tabindex]:last-child")),V.focused.value=!1}function Ea(k){Qn(),V.focused.value===!1&&n("blur",k),Si()}function Gm(){const k=document.activeElement;(k===null||k.id!==V.targetUid.value)&&M.value!==null&&M.value!==k&&M.value.focus(),de()}function wi(){a.value!==!0&&(r.value=-1,o.value===!0&&(o.value=!1),V.focused.value===!1&&(v!==null&&(clearTimeout(v),v=null),V.innerLoading.value===!0&&(n("filterAbort"),V.innerLoading.value=!1,c.value=!1)))}function _i(k){V.editable.value===!0&&(m===!0?(V.onControlFocusin(k),a.value=!0,bt(()=>{V.focus()})):V.focus(),t.onFilter!==void 0?ve(l.value):(Me.value!==!0||e["no-option"]!==void 0)&&(o.value=!0))}function Qn(){a.value=!1,wi()}function Si(){t.useInput===!0&&pe(t.multiple!==!0&&t.fillInput===!0&&I.value.length!==0&&N.value(I.value[0])||"",!0,!0)}function Aa(k){let re=-1;if(k===!0){if(I.value.length!==0){const le=dt.value(I.value[0]);re=t.options.findIndex(Ie=>ls(dt.value(Ie),le))}U(re)}wt(re)}function Jm(k,re){o.value===!0&&V.innerLoading.value===!1&&(U(-1,!0),bt(()=>{o.value===!0&&V.innerLoading.value===!1&&(k>re?U():Aa(!0))}))}function ql(){a.value===!1&&E.value!==null&&E.value.updatePosition()}function Ll(k){k!==void 0&&In(k),n("popupShow",k),V.hasPopupOpen=!0,V.onControlFocusin(k)}function Rl(k){k!==void 0&&In(k),n("popupHide",k),V.hasPopupOpen=!1,V.onControlFocusout(k)}function $l(){m=s.platform.is.mobile!==!0&&t.behavior!=="dialog"?!1:t.behavior!=="menu"&&(t.useInput===!0?e["no-option"]!==void 0||t.onFilter!==void 0||Me.value===!1:!0),_=s.platform.is.ios===!0&&m===!0&&t.useInput===!0?"fade":t.transitionShow}return Ld($l),yg(ql),$l(),Rt(()=>{d!==null&&clearTimeout(d),f!==null&&clearTimeout(f)}),Object.assign(i,{showPopup:_i,hidePopup:Qn,removeAtIndex:Pe,add:ot,toggleOption:nt,getOptionIndex:()=>r.value,setOptionIndex:wt,moveOptionSelection:$t,filter:ve,updateMenuPosition:ql,updateInputValue:pe,isOptionSelected:ge,getEmittingOptionValue:Ee,isOptionDisabled:(...k)=>W.value.apply(null,k)===!0,getOptionValue:(...k)=>dt.value.apply(null,k),getOptionLabel:(...k)=>N.value.apply(null,k)}),Object.assign(V,{innerValue:I,fieldClass:g(()=>`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:M,hasValue:me,showPopup:_i,floatingLabel:g(()=>t.hideSelected!==!0&&me.value===!0||typeof l.value=="number"||l.value.length!==0||Hs(t.displayValue)),getControlChild:()=>{if(V.editable.value!==!1&&(a.value===!0||Me.value!==!0||e["no-option"]!==void 0))return m===!0?_n():xe();V.hasPopupOpen===!0&&(V.hasPopupOpen=!1)},controlEvents:{onFocusin(k){V.onControlFocusin(k)},onFocusout(k){V.onControlFocusout(k,()=>{Si(),wi()})},onClick(k){if(Bn(k),m!==!0&&o.value===!0){wi(),M.value?.focus();return}_i(k)}},getControl:k=>{const re=Oa(),le=k===!0||a.value!==!0||m!==!0;if(t.useInput===!0)re.push(Va(k,le));else if(V.editable.value===!0){const Ze=le===!0?yt.value:void 0;re.push(S("input",{ref:le===!0?M:void 0,key:"d_t",class:"q-select__focus-target",id:le===!0?V.targetUid.value:void 0,value:Le.value,readonly:!0,"data-autofocus":k===!0||t.autofocus===!0||void 0,...Ze,onKeydown:on,onKeyup:He,onKeypress:Ht})),le===!0&&typeof t.autocomplete=="string"&&t.autocomplete.length!==0&&re.push(S("input",{class:"q-select__autocomplete-input",autocomplete:t.autocomplete,tabindex:-1,onKeyup:it}))}if(D.value!==void 0&&t.disable!==!0&&te.value.length!==0){const Ze=te.value.map(Ye=>S("option",{value:Ye,selected:!0}));re.push(S("select",{class:"hidden",name:D.value,multiple:t.multiple},Ze))}const Ie=t.useInput===!0||le!==!0?void 0:V.splitAttrs.attributes.value;return S("div",{class:"q-field__native row items-center",...Ie,...V.splitAttrs.listeners.value},re)},getInnerAppend:()=>t.loading!==!0&&c.value!==!0&&t.hideDropdownIcon!==!0?[S(we,{class:"q-select__dropdown-icon"+(o.value===!0?" rotate-180":""),name:Mt.value})]:null}),Cl(V)}}),B_={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 N_=Be({name:"QLinearProgress",props:{...mn,...Yr,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=Zr(t,B_),o=g(()=>t.indeterminate===!0||t.query===!0),a=g(()=>t.reverse!==t.query),r=g(()=>({...s.value!==null?s.value:{},"--q-linear-progress-speed":`${t.animationSpeed}ms`})),l=g(()=>"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=g(()=>Gc(t.buffer!==void 0?t.buffer:1,a.value,n.$q)),c=g(()=>`with${t.instantFeedback===!0?"out":""}-transition`),d=g(()=>`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=g(()=>Gc(o.value===!0?1:t.value,a.value,n.$q)),h=g(()=>`q-linear-progress__model absolute-full q-linear-progress__model--${c.value} q-linear-progress__model--${o.value===!0?"in":""}determinate`),m=g(()=>({width:`${t.value*100}%`})),p=g(()=>`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:m.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 W_(t,e){const n=B(null),i=g(()=>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 H_={xs:30,sm:35,md:40,lg:50,xl:60},mm={...mn,...Yr,...wa,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]},gm=["update:modelValue"];function vm(t,e){const{props:n,slots:i,emit:s,proxy:o}=Ue(),{$q:a}=o,r=gn(n,a),l=B(null),{refocusTargetEl:u,refocusTarget:c}=W_(n,l),d=Zr(n,H_),f=g(()=>n.val!==void 0&&Array.isArray(n.modelValue)),h=g(()=>{const T=Tn(n.val);return f.value===!0?n.modelValue.findIndex(j=>Tn(j)===T):-1}),m=g(()=>f.value===!0?h.value!==-1:Tn(n.modelValue)===Tn(n.trueValue)),p=g(()=>f.value===!0?h.value===-1:Tn(n.modelValue)===Tn(n.falseValue)),v=g(()=>m.value===!1&&p.value===!1),b=g(()=>n.disable===!0?-1:n.tabindex||0),_=g(()=>`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":"")),y=g(()=>{const T=m.value===!0?"truthy":p.value===!0?"falsy":"indet",j=n.color!==void 0&&(n.keepColor===!0||(t==="toggle"?m.value===!0:p.value!==!0))?` text-${n.color}`:"";return`q-${t}__inner relative-position non-selectable q-${t}__inner--${T}${j}`}),w=g(()=>{const T={type:"checkbox"};return n.name!==void 0&&Object.assign(T,{".checked":m.value,"^checked":m.value===!0?"checked":void 0,name:n.name,value:f.value===!0?n.val:n.trueValue}),T}),x=sm(w),M=g(()=>{const T={tabindex:b.value,role:t==="toggle"?"switch":"checkbox","aria-label":n.label,"aria-checked":v.value===!0?"mixed":m.value===!0?"true":"false"};return n.disable===!0&&(T["aria-disabled"]="true"),T});function E(T){T!==void 0&&(At(T),c(T)),n.disable!==!0&&s("update:modelValue",L(),T)}function L(){if(f.value===!0){if(m.value===!0){const T=n.modelValue.slice();return T.splice(h.value,1),T}return n.modelValue.concat([n.val])}if(m.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 O(T){(T.keyCode===13||T.keyCode===32)&&At(T)}function D(T){(T.keyCode===13||T.keyCode===32)&&E(T)}const R=e(m,v);return Object.assign(o,{toggle:E}),()=>{const T=R();n.disable!==!0&&x(T,"unshift",` q-${t}__native absolute q-ma-none q-pa-none`);const j=[S("div",{class:y.value,style:d.value,"aria-hidden":"true"},T)];u.value!==null&&j.push(u.value);const F=n.label!==void 0?mi(i.default,[n.label]):et(i.default);return F!==void 0&&j.push(S("div",{class:`q-${t}__label q-anchor--skip`},F)),S("div",{ref:l,class:_.value,...M.value,onClick:E,onKeydown:O,onKeyup:D},j)}}const j_=()=>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"})])]),fr=Be({name:"QCheckbox",props:mm,emits:gm,setup(t){const e=j_();function n(i,s){const o=g(()=>(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(we,{class:"q-checkbox__icon",name:o.value})])]:[e]}return vm("checkbox",n)}});function U_(t,e){return new Date(t)-new Date(e)}const Y_={sortMethod:Function,binaryStateSort:Boolean,columnSortOrder:{type:String,validator:t=>t==="ad"||t==="da",default:"ad"}};function Z_(t,e,n,i){const s=g(()=>{const{sortBy:r}=e.value;return r&&n.value.find(l=>l.name===r)||null}),o=g(()=>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,m)=>{let p=f(h),v=f(m);return c.rawSort!==void 0?c.rawSort(p,v,h,m)*d:p==null?-1*d:v==null?1*d:c.sort!==void 0?c.sort(p,v,h,m)*d:qs(p)===!0&&qs(v)===!0?(p-v)*d:Bl(p)===!0&&Bl(v)===!0?U_(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 X_={filter:[String,Object],filterMethod:Function};function K_(t,e){const n=g(()=>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 he(()=>t.filter,()=>{bt(()=>{e({page:1},!0)})},{deep:!0}),{computedFilterMethod:n}}function Q_(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 G_={pagination:Object,rowsPerPageOptions:{type:Array,default:()=>[5,7,10,15,20,25,50,0]},"onUpdate:pagination":[Function,Array]};function J_(t,e){const{props:n,emit:i}=t,s=B(Object.assign({sortBy:null,descending:!1,page:1,rowsPerPage:n.rowsPerPageOptions.length!==0?n.rowsPerPageOptions[0]:5},n.pagination)),o=g(()=>{const c=n["onUpdate:pagination"]!==void 0?{...s.value,...n.pagination}:s.value;return Jc(c)}),a=g(()=>o.value.rowsNumber!==void 0);function r(c){l({pagination:c,filter:n.filter})}function l(c={}){bt(()=>{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(Q_(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 eS(t,e,n,i,s,o){const{props:a,emit:r,proxy:{$q:l}}=t,u=g(()=>i.value===!0?n.value.rowsNumber||0:o.value),c=g(()=>{const{page:w,rowsPerPage:x}=n.value;return(w-1)*x}),d=g(()=>{const{page:w,rowsPerPage:x}=n.value;return w*x}),f=g(()=>n.value.page===1),h=g(()=>n.value.rowsPerPage===0?1:Math.max(1,Math.ceil(u.value/n.value.rowsPerPage))),m=g(()=>d.value===0?!0:n.value.page>=h.value),p=g(()=>(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})));he(h,(w,x)=>{if(w===x)return;const M=n.value.page;w&&!M?s({page:1}):w1&&s({page:w-1})}function _(){const{page:w,rowsPerPage:x}=n.value;d.value>0&&w*x["single","multiple","none"].includes(t)},selected:{type:Array,default:()=>[]}},nS=["update:selected","selection"];function iS(t,e,n,i){const s=g(()=>{const m={};return t.selected.map(i.value).forEach(p=>{m[p]=!0}),m}),o=g(()=>t.selection!=="none"),a=g(()=>t.selection==="single"),r=g(()=>t.selection==="multiple"),l=g(()=>n.value.length!==0&&n.value.every(m=>s.value[i.value(m)]===!0)),u=g(()=>l.value!==!0&&n.value.some(m=>s.value[i.value(m)]===!0)),c=g(()=>t.selected.length);function d(m){return s.value[m]===!0}function f(){e("update:selected",[])}function h(m,p,v,b){e("selection",{rows:p,added:v,keys:m,evt:b});const _=a.value===!0?v===!0?p:[]:v===!0?t.selected.concat(p):t.selected.filter(y=>m.includes(i.value(y))===!1);e("update:selected",_)}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 sS={expanded:Array},oS=["update:expanded"];function aS(t,e){const n=B(ed(t.expanded));he(()=>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 rS={visibleColumns:Array};function lS(t,e,n){const i=g(()=>{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:qs(r[l])?"right":"left",sortable:!0})):[]}),s=g(()=>{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=g(()=>{const r={};return s.value.forEach(l=>{r[l.name]=l}),r}),a=g(()=>t.tableColspan!==void 0?t.tableColspan:s.value.length+(n.value===!0?1:0));return{colList:i,computedCols:s,computedColsMap:o,computedColspan:a}}const To="q-table__bottom row items-center",pm={};dm.forEach(t=>{pm[t]={}});const uS=Be({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:{},...pm,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,...mn,...Qd,...rS,...X_,...G_,...sS,...tS,...Y_},emits:["request","virtualScroll",...Gd,...oS,...nS],setup(t,{slots:e,emit:n}){const i=Ue(),{proxy:{$q:s}}=i,o=gn(t,s),{inFullscreen:a,toggleFullscreen:r}=Jd(),l=g(()=>typeof t.rowKey=="function"?t.rowKey:$=>$[t.rowKey]),u=B(null),c=B(null),d=g(()=>t.grid!==!0&&t.virtualScroll===!0),f=g(()=>" 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=g(()=>`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":"")),m=g(()=>h.value+(t.loading===!0?" q-table--loading":""));he(()=>t.tableStyle+t.tableClass+t.tableHeaderStyle+t.tableHeaderClass+h.value,()=>{d.value===!0&&c.value?.reset()});const{innerPagination:p,computedPagination:v,isServerSide:b,requestServerInteraction:_,setPagination:y}=J_(i,wt),{computedFilterMethod:w}=K_(t,y),{isRowExpanded:x,setExpanded:M,updateExpanded:E}=aS(t,n),L=g(()=>{let $=t.rows;if(b.value===!0||$.length===0)return $;const{sortBy:se,descending:pe}=v.value;return t.filter&&($=w.value($,t.filter,V.value,wt)),ce.value!==null&&($=me.value(t.rows===$?$.slice():$,se,pe)),$}),O=g(()=>L.value.length),D=g(()=>{let $=L.value;if(b.value===!0)return $;const{rowsPerPage:se}=v.value;return se!==0&&(ee.value===0&&t.rows!==$?$.length>Me.value&&($=$.slice(0,Me.value)):$=$.slice(ee.value,Me.value)),$}),{hasSelectionMode:R,singleSelection:T,multipleSelection:j,allRowsSelected:F,someRowsSelected:Y,rowsSelectedNumber:U,isRowSelected:J,clearSelection:Z,updateSelection:ae}=iS(t,n,D,l),{colList:de,computedCols:V,computedColsMap:I,computedColspan:G}=lS(t,v,R),{columnToSort:ce,computedSortMethod:me,sort:z}=Z_(t,v,de,y),{firstRowIndex:ee,lastRowIndex:Me,isFirstPage:Q,isLastPage:Le,pagesNumber:tt,computedRowsPerPageOptions:Ot,computedRowsNumber:ct,firstPage:yt,prevPage:mt,nextPage:xt,lastPage:gt}=eS(i,p,v,b,y,O),Mt=g(()=>D.value.length===0),Wt=g(()=>{const $={};return dm.forEach(se=>{$[se]=t[se]}),$.virtualScrollItemSize===void 0&&($.virtualScrollItemSize=t.dense===!0?28:48),$});function Vt(){d.value===!0&&c.value.reset()}function dt(){if(t.grid===!0)return Va();const $=t.hideHeader!==!0?Se:null;if(d.value===!0){const pe=e["top-row"],ve=e["bottom-row"],xe={default:st=>ie(st.item,e.body,st.index)};if(pe!==void 0){const st=S("tbody",pe({cols:V.value}));xe.before=$===null?()=>st:()=>[$()].concat(st)}else $!==null&&(xe.before=$);return ve!==void 0&&(xe.after=()=>S("tbody",ve({cols:V.value}))),S(L_,{ref:c,class:t.tableClass,style:t.tableStyle,...Wt.value,scrollTarget:t.virtualScrollTarget,items:D.value,type:"__qtable",tableColspan:G.value,onVirtualScroll:W},xe)}const se=[Ee()];return $!==null&&se.unshift($()),lm({class:["q-table__middle scroll",t.tableClass],style:t.tableStyle},se)}function N($,se){if(c.value!==null){c.value.scrollTo($,se);return}$=parseInt($,10);const pe=u.value.querySelector(`tbody tr:nth-of-type(${$+1})`);if(pe!==null){const ve=u.value.querySelector(".q-table__middle.scroll"),xe=pe.offsetTop-t.virtualScrollStickySizeStart,st=xe{const _n=e[`body-cell-${Ge.name}`],xi=_n!==void 0?_n:st;return xi!==void 0?xi(De({key:ve,row:$,pageIndex:pe,col:Ge})):S("td",{class:Ge.__tdClass($),style:Ge.__tdStyle($)},wt(Ge,$))});if(R.value===!0){const Ge=e["body-selection"],_n=Ge!==void 0?Ge(ot({key:ve,row:$,pageIndex:pe})):[S(fr,{modelValue:xe,color:t.color,dark:o.value,dense:t.dense,"onUpdate:modelValue":(xi,Ea)=>{ae([ve],[$],xi,Ea)}})];Qe.unshift(S("td",{class:"q-table--col-auto-width"},_n))}const Zt={key:ve,class:{selected:xe}};if(t.onRowClick!==void 0&&(Zt.class["cursor-pointer"]=!0,Zt.onClick=Ge=>{n("rowClick",Ge,$,pe)}),t.onRowDblclick!==void 0&&(Zt.class["cursor-pointer"]=!0,Zt.onDblclick=Ge=>{n("rowDblclick",Ge,$,pe)}),t.onRowContextmenu!==void 0&&(Zt.class["cursor-pointer"]=!0,Zt.onContextmenu=Ge=>{n("rowContextmenu",Ge,$,pe)}),t.tableRowStyleFn!==void 0&&(Zt.style=t.tableRowStyleFn($)),t.tableRowClassFn!==void 0){const Ge=t.tableRowClassFn($);Ge&&(Zt.class[Ge]=!0)}return S("tr",Zt,Qe)}function Ee(){const $=e.body,se=e["top-row"],pe=e["bottom-row"];let ve=D.value.map((xe,st)=>ie(xe,$,st));return se!==void 0&&(ve=se({cols:V.value}).concat(ve)),pe!==void 0&&(ve=ve.concat(pe({cols:V.value}))),S("tbody",ve)}function Pe($){return nt($),$.cols=$.cols.map(se=>si({...se},"value",()=>wt(se,$.row))),$}function De($){return nt($),si($,"value",()=>wt($.col,$.row)),$}function ot($){return nt($),$}function nt($){Object.assign($,{cols:V.value,colsMap:I.value,sort:z,rowIndex:ee.value+$.pageIndex,color:t.color,dark:o.value,dense:t.dense}),R.value===!0&&si($,"selected",()=>J($.key),(se,pe)=>{ae([$.key],[$.row],se,pe)}),si($,"expand",()=>x($.key),se=>{E($.key,se)})}function wt($,se){const pe=typeof $.field=="function"?$.field(se):se[$.field];return $.format!==void 0?$.format(pe,se):pe}const $t=g(()=>({pagination:v.value,pagesNumber:tt.value,isFirstPage:Q.value,isLastPage:Le.value,firstPage:yt,prevPage:mt,nextPage:xt,lastPage:gt,inFullscreen:a.value,toggleFullscreen:r}));function H(){const $=e.top,se=e["top-left"],pe=e["top-right"],ve=e["top-selection"],xe=R.value===!0&&ve!==void 0&&U.value>0,st="q-table__top relative-position row items-center";if($!==void 0)return S("div",{class:st},[$($t.value)]);let Qe;if(xe===!0?Qe=ve($t.value).slice():(Qe=[],se!==void 0?Qe.push(S("div",{class:"q-table__control"},[se($t.value)])):t.title&&Qe.push(S("div",{class:"q-table__control"},[S("div",{class:["q-table__title",t.titleClass]},t.title)]))),pe!==void 0&&(Qe.push(S("div",{class:"q-table__separator col"})),Qe.push(S("div",{class:"q-table__control"},[pe($t.value)]))),Qe.length!==0)return S("div",{class:st},Qe)}const ge=g(()=>Y.value===!0?null:F.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:G.value},te())])),S("thead",$)}function He(){const $=e.header,se=e["header-cell"];if($!==void 0)return $(it({header:!0})).slice();const pe=V.value.map(ve=>{const xe=e[`header-cell-${ve.name}`],st=xe!==void 0?xe:se,Qe=it({col:ve});return st!==void 0?st(Qe):S(Lr,{key:ve.name,props:Qe},()=>ve.label)});if(T.value===!0&&t.grid!==!0)pe.unshift(S("th",{class:"q-table--col-auto-width"}," "));else if(j.value===!0){const ve=e["header-selection"],xe=ve!==void 0?ve(it({})):[S(fr,{color:t.color,modelValue:ge.value,dark:o.value,dense:t.dense,"onUpdate:modelValue":Ht})];pe.unshift(S("th",{class:"q-table--col-auto-width"},xe))}return[S("tr",{class:t.tableHeaderClass,style:t.tableHeaderStyle},pe)]}function it($){return Object.assign($,{cols:V.value,sort:z,colsMap:I.value,color:t.color,dark:o.value,dense:t.dense}),j.value===!0&&si($,"selected",()=>ge.value,Ht),$}function Ht($){Y.value===!0&&($=!1),ae(D.value.map(l.value),D.value,$)}const on=g(()=>{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 qn(){if(t.hideBottom===!0)return;if(Mt.value===!0){if(t.hideNoData===!0)return;const pe=t.loading===!0?t.loadingLabel||s.lang.table.loading:t.filter?t.noResultsLabel||s.lang.table.noResults:t.noDataLabel||s.lang.table.noData,ve=e["no-data"],xe=ve!==void 0?[ve({message:pe,icon:s.iconSet.table.warning,filter:t.filter})]:[S(we,{class:"q-table__bottom-nodata-icon",name:s.iconSet.table.warning}),pe];return S("div",{class:To+" q-table__bottom--nodata"},xe)}const $=e.bottom;if($!==void 0)return S("div",{class:To},[$($t.value)]);const se=t.hideSelectedBanner!==!0&&R.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:To+" justify-end"},Oa(se));if(se.length!==0)return S("div",{class:To},se)}function Da($){y({page:1,rowsPerPage:$.value})}function Oa($){let se;const{rowsPerPage:pe}=v.value,ve=t.paginationLabel||s.lang.table.pagination,xe=e.pagination,st=t.rowsPerPageOptions.length>1;if($.push(S("div",{class:"q-table__separator col"})),st===!0&&$.push(S("div",{class:"q-table__control"},[S("span",{class:"q-table__bottom-item"},[t.rowsPerPageLabel||s.lang.table.recordsPerPage]),S(z_,{class:"q-table__select inline q-table__bottom-item",color:t.color,modelValue:pe,options:Ot.value,displayValue:pe===0?s.lang.table.allRows:pe,dark:o.value,borderless:!0,dense:!0,optionsDense:!0,optionsCover:!0,"onUpdate:modelValue":Da})])),xe!==void 0)se=xe($t.value);else if(se=[S("span",pe!==0?{class:"q-table__bottom-item"}:{},[pe?ve(ee.value+1,Math.min(Me.value,ct.value),ct.value):ve(1,O.value,ct.value)])],pe!==0&&tt.value>1){const Qe={color:t.color,round:!0,dense:!0,flat:!0};t.dense===!0&&(Qe.size="sm"),tt.value>2&&se.push(S(ke,{key:"pgFirst",...Qe,icon:on.value[0],disable:Q.value,"aria-label":s.lang.pagination.first,onClick:yt})),se.push(S(ke,{key:"pgPrev",...Qe,icon:on.value[1],disable:Q.value,"aria-label":s.lang.pagination.prev,onClick:mt}),S(ke,{key:"pgNext",...Qe,icon:on.value[2],disable:Le.value,"aria-label":s.lang.pagination.next,onClick:xt})),tt.value>2&&se.push(S(ke,{key:"pgLast",...Qe,icon:on.value[3],disable:Le.value,"aria-label":s.lang.pagination.last,onClick:gt}))}return $.push(S("div",{class:"q-table__control"},se)),$}function no(){const $=t.gridHeader===!0?[S("table",{class:"q-table"},[Se()])]:t.loading===!0&&e.loading===void 0?te():void 0;return S("div",{class:"q-table__middle"},$)}function Va(){const $=e.item!==void 0?e.item:se=>{const pe=se.cols.map(xe=>S("div",{class:"q-table__grid-item-row"},[S("div",{class:"q-table__grid-item-title"},[xe.label]),S("div",{class:"q-table__grid-item-value"},[xe.value])]));if(R.value===!0){const xe=e["body-selection"],st=xe!==void 0?xe(se):[S(fr,{modelValue:se.selected,color:t.color,dark:o.value,dense:t.dense,"onUpdate:modelValue":(Qe,Zt)=>{ae([se.key],[se.row],Qe,Zt)}})];pe.unshift(S("div",{class:"q-table__grid-item-row"},st),S(Lt,{dark:o.value}))}const ve={class:["q-table__grid-item-card"+f.value,t.cardClass],style:t.cardStyle};if(t.cardStyleFn!==void 0&&(ve.style=[ve.style,t.cardStyleFn(se.row)]),t.cardClassFn!==void 0){const xe=t.cardClassFn(se.row);xe&&(ve.class[0]+=` ${xe}`)}return(t.onRowClick!==void 0||t.onRowDblclick!==void 0||t.onRowContextmenu!==void 0)&&(ve.class[0]+=" cursor-pointer",t.onRowClick!==void 0&&(ve.onClick=xe=>{n("RowClick",xe,se.row,se.pageIndex)}),t.onRowDblclick!==void 0&&(ve.onDblclick=xe=>{n("RowDblclick",xe,se.row,se.pageIndex)}),t.onRowContextmenu!==void 0&&(ve.onContextmenu=xe=>{n("rowContextmenu",xe,se.row,se.pageIndex)})),S("div",{class:"q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3"+(se.selected===!0?" q-table__grid-item--selected":"")},[S("div",ve,pe)])};return S("div",{class:["q-table__grid-content row",t.cardContainerClass],style:t.cardContainerStyle},D.value.map((se,pe)=>$(Pe({key:l.value(se),row:se,pageIndex:pe}))))}return Object.assign(i.proxy,{requestServerInteraction:_,setPagination:y,firstPage:yt,prevPage:mt,nextPage:xt,lastPage:gt,isRowSelected:J,clearSelection:Z,isRowExpanded:x,setExpanded:M,sort:z,resetVirtualScroll:Vt,scrollTo:N,getCellValue:wt}),xg(i.proxy,{filteredSortedRows:()=>L.value,computedRows:()=>D.value,computedRowsNumber:()=>ct.value}),()=>{const $=[H()],se={ref:u,class:m.value};return t.grid===!0?$.push(no()):Object.assign(se,{class:[se.class,t.cardClass],style:t.cardStyle}),$.push(dt(),qn()),t.loading===!0&&e.loading!==void 0&&$.push(e.loading()),S("div",se,$)}}}),cS={class:"row full-width items-center"},dS={class:"col"},fS=ye({__name:"BaseTable",props:{items:{},rowData:{type:[Function,Object]},columnConfig:{},rowKey:{},searchInputVisible:{type:Boolean},tableHeight:{},filter:{},columnsToSearch:{},rowExpandable:{type:Boolean},dense:{type:Boolean},square:{type:Boolean}},emits:["row-click","update:filter"],setup(t,{emit:e}){Od(f=>({"1c29a7a7":f.tableHeight}));const n=t,i=B([]),s=wg(),o=g(()=>n.rowExpandable?Object.keys(s).filter(f=>!f.startsWith("body")):Object.keys(s)),a=e,r=g({get:()=>n.filter||"",set:f=>a("update:filter",f)}),l=g(()=>n.items.map(typeof n.rowData=="function"?n.rowData:n.rowData.value)),u=g(()=>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,m)=>{if(!h||h.trim()==="")return f;const p=h.toLowerCase(),v=n.columnsToSearch||m.map(b=>typeof b.field=="string"?b.field:"");return f.filter(b=>v.some(_=>{const y=b[_];return y&&String(y).toLowerCase().includes(p)}))},d=(f,h)=>a("row-click",h);return(f,h)=>(P(),X(uS,{class:Re(["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]=m=>i.value=m),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":"",dense:n.dense,square:n.square},_g({_:2},[f.searchInputVisible?{name:"top",fn:A(()=>[q("div",cS,[q("div",dS,[C(rm,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=m=>r.value=m),dense:"",outlined:"",color:"white",placeholder:"Suchen...",class:"search-field white-outline-input","input-class":"text-white"},{append:A(()=>[C(we,{name:"search",color:"white"})]),_:1},8,["modelValue"])])])]),key:"0"}:void 0,n.rowExpandable?{name:"header",fn:A(m=>[C(ur,{props:m},{default:A(()=>[C(Lr,{"auto-width":"",props:{...m,col:{}}},null,8,["props"]),(P(!0),K(Oe,null,Xe(m.cols,p=>(P(),X(Lr,{key:p.name,props:{...m,col:p}},{default:A(()=>[Ve(oe(p.label),1)]),_:2},1032,["props"]))),128))]),_:2},1032,["props"])]),key:"1"}:void 0,n.rowExpandable?{name:"body",fn:A(m=>[(P(),X(ur,{key:`main-${m.key}`,props:m,onClick:p=>d(p,m.row),class:"clickable"},{default:A(()=>[C(_t,{"auto-width":""},{default:A(()=>[C(ke,{dense:"",flat:"",round:"",size:"sm",icon:m.expand?"keyboard_arrow_up":"keyboard_arrow_down",onClick:ln(p=>m.expand=!m.expand,["stop"])},null,8,["icon","onClick"])]),_:2},1024),(P(!0),K(Oe,null,Xe(m.cols,p=>(P(),K(Oe,{key:p.name},[f.$slots[`body-cell-${p.name}`]?Vi(f.$slots,`body-cell-${p.name}`,kg({key:0,ref_for:!0},{...m,col:p}),void 0,!0):(P(),X(_t,{key:1,props:{...m,col:p,value:m.row[p.field]}},{default:A(()=>[Ve(oe(m.row[p.field]),1)]),_:2},1032,["props"]))],64))),128))]),_:2},1032,["props","onClick"])),sn((P(),X(ur,{key:`xp-${m.key}`,props:m,class:"q-virtual-scroll--with-prev"},{default:A(()=>[C(_t,{colspan:m.cols.length+1},{default:A(()=>[Vi(f.$slots,"row-expand",Nl(Wl(m)),void 0,!0)]),_:2},1032,["colspan"])]),_:2},1032,["props"])),[[Sg,m.expand]])]),key:"2"}:void 0,Xe(o.value,m=>({name:m,fn:A(p=>[Vi(f.$slots,m,Nl(Wl(p)),void 0,!0)])}))]),1032,["class","rows","columns","expanded","filter","dense","square"]))}}),bm=ht(fS,[["__scopeId","data-v-7781ba33"]]),is=Be({name:"QSpace",setup(){const t=S("div",{class:"q-space"});return()=>t}}),lt=Be({name:"QCardSection",props:{tag:{type:String,default:"div"},horizontal:Boolean},setup(t,{slots:e}){const n=g(()=>`q-card__section q-card__section--${t.horizontal===!0?"horiz row no-wrap":"vert"}`);return()=>S(t.tag,{class:n.value},et(e.default))}}),Ml=Be({name:"QCardActions",props:{...Cg,vertical:Boolean},setup(t,{slots:e}){const n=Mg(t),i=g(()=>`q-card__actions ${n.value} q-card__actions--${t.vertical===!0?"vert column":"horiz row"}`);return()=>S("div",{class:i.value},et(e.default))}}),ss=Be({name:"QCard",props:{...mn,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=g(()=>"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},et(e.default))}});function td(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 wn=Id({name:"close-popup",beforeMount(t,{value:e}){const n={depth:td(e),handler(i){n.depth!==0&&setTimeout(()=>{const s=zg(t);s!==void 0&&Bg(s,i,n.depth)})},handlerKey(i){aa(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=td(e))},beforeUnmount(t){const e=t.__qclosepopup;t.removeEventListener("click",e.handler),t.removeEventListener("keyup",e.handlerKey),delete t.__qclosepopup}}),nd="q-slider__marker-labels",hS=t=>({value:t}),mS=({marker:t})=>S("div",{key:t.value,style:t.style,class:t.classes},t.label),ym=[34,37,40,33,39,38],gS={...mn,...wa,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"}},vS=["pan","update:modelValue","change"];function pS({updateValue:t,updatePosition:e,getDragging:n,formAttrs:i}){const{props:s,emit:o,slots:a,proxy:{$q:r}}=Ue(),l=gn(s,r),u=sm(i),c=B(!1),d=B(!1),f=B(!1),h=B(!1),m=g(()=>s.vertical===!0?"--v":"--h"),p=g(()=>"-"+(s.switchLabelSide===!0?"switched":"standard")),v=g(()=>s.vertical===!0?s.reverse===!0:s.reverse!==(r.lang.rtl===!0)),b=g(()=>isNaN(s.innerMin)===!0||s.innerMinisNaN(s.innerMax)===!0||s.innerMax>s.max?s.max:s.innerMax),y=g(()=>s.disable!==!0&&s.readonly!==!0&&b.value<_.value),w=g(()=>{if(s.step===0)return ge=>ge;const H=(String(s.step).trim().split(".")[1]||"").length;return ge=>parseFloat(ge.toFixed(H))}),x=g(()=>s.step===0?1:s.step),M=g(()=>y.value===!0?s.tabindex||0:-1),E=g(()=>s.max-s.min),L=g(()=>_.value-b.value),O=g(()=>tt(b.value)),D=g(()=>tt(_.value)),R=g(()=>s.vertical===!0?v.value===!0?"bottom":"top":v.value===!0?"right":"left"),T=g(()=>s.vertical===!0?"height":"width"),j=g(()=>s.vertical===!0?"width":"height"),F=g(()=>s.vertical===!0?"vertical":"horizontal"),Y=g(()=>{const H={role:"slider","aria-valuemin":b.value,"aria-valuemax":_.value,"aria-orientation":F.value,"data-step":s.step};return s.disable===!0?H["aria-disabled"]="true":s.readonly===!0&&(H["aria-readonly"]="true"),H}),U=g(()=>`q-slider q-slider${m.value} q-slider--${c.value===!0?"":"in"}active inline no-wrap `+(s.vertical===!0?"row":"column")+(s.disable===!0?" disabled":" q-slider--enabled"+(y.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"+m.value:""));function J(H){const ge="q-slider__"+H;return`${ge} ${ge}${m.value} ${ge}${m.value}${p.value}`}function Z(H){const ge="q-slider__"+H;return`${ge} ${ge}${m.value}`}const ae=g(()=>{const H=s.selectionColor||s.color;return"q-slider__selection absolute"+(H!==void 0?` text-${H}`:"")}),de=g(()=>Z("markers")+" absolute overflow-hidden"),V=g(()=>Z("track-container")),I=g(()=>J("pin")),G=g(()=>J("label")),ce=g(()=>J("text-container")),me=g(()=>J("marker-labels-container")+(s.markerLabelsClass!==void 0?` ${s.markerLabelsClass}`:"")),z=g(()=>"q-slider__track relative-position no-outline"+(s.trackColor!==void 0?` bg-${s.trackColor}`:"")),ee=g(()=>{const H={[j.value]:s.trackSize};return s.trackImg!==void 0&&(H.backgroundImage=`url(${s.trackImg}) !important`),H}),Me=g(()=>"q-slider__inner absolute"+(s.innerTrackColor!==void 0?` bg-${s.innerTrackColor}`:"")),Q=g(()=>{const H=D.value-O.value,ge={[R.value]:`${100*O.value}%`,[T.value]:H===0?"2px":`${100*H}%`};return s.innerTrackImg!==void 0&&(ge.backgroundImage=`url(${s.innerTrackImg}) !important`),ge});function Le(H){const{min:ge,max:Se,step:He}=s;let it=ge+H*(Se-ge);if(He>0){const Ht=(it-b.value)%He;it+=(Math.abs(Ht)>=He/2?(Ht<0?-1:1)*He:0)-Ht}return it=w.value(it),Ii(it,b.value,_.value)}function tt(H){return E.value===0?0:(H-s.min)/E.value}function Ot(H,ge){const Se=Ro(H),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,O.value,D.value)}const ct=g(()=>qs(s.markers)===!0?s.markers:x.value),yt=g(()=>{const H=[],ge=ct.value,Se=s.max;let He=s.min;do H.push(He),He+=ge;while(He{const H=` ${nd}${m.value}-`;return nd+`${H}${s.switchMarkerLabelsSide===!0?"switched":"standard"}${H}${v.value===!0?"rtl":"ltr"}`}),xt=g(()=>s.markerLabels===!1?null:Wt(s.markerLabels).map((H,ge)=>({index:ge,value:H.value,label:H.label||H.value,classes:mt.value+(H.classes!==void 0?" "+H.classes:""),style:{...Vt(H.value),...H.style||{}}}))),gt=g(()=>({markerList:xt.value,markerMap:dt.value,classes:mt.value,getStyle:Vt})),Mt=g(()=>{const H=L.value===0?"2px":100*ct.value/L.value;return{...Q.value,backgroundSize:s.vertical===!0?`2px ${H}%`:`${H}% 2px`}});function Wt(H){if(H===!1)return null;if(H===!0)return yt.value.map(hS);if(typeof H=="function")return yt.value.map(Se=>{const He=H(Se);return Io(He)===!0?{...He,value:Se}:{value:Se,label:He}});const ge=({value:Se})=>Se>=s.min&&Se<=s.max;return Array.isArray(H)===!0?H.map(Se=>Io(Se)===!0?Se:{value:Se}).filter(ge):Object.keys(H).map(Se=>{const He=H[Se],it=Number(Se);return Io(He)===!0?{...He,value:it}:{value:it,label:He}}).filter(ge)}function Vt(H){return{[R.value]:`${100*(H-s.min)/E.value}%`}}const dt=g(()=>{if(s.markerLabels===!1)return null;const H={};return xt.value.forEach(ge=>{H[ge.value]=ge}),H});function N(){if(a["marker-label-group"]!==void 0)return a["marker-label-group"](gt.value);const H=a["marker-label"]||mS;return xt.value.map(ge=>H({marker:ge,...gt.value}))}const W=g(()=>[[Ng,te,void 0,{[F.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function te(H){H.isFinal===!0?(h.value!==void 0&&(e(H.evt),H.touch===!0&&t(!0),h.value=void 0,o("pan","end")),c.value=!1,f.value=!1):H.isFirst===!0?(h.value=n(H.evt),e(H.evt),t(),c.value=!0,o("pan","start")):(e(H.evt),t())}function ie(){f.value=!1}function Ee(H){e(H,n(H)),t(),d.value=!0,c.value=!0,document.addEventListener("mouseup",Pe,!0)}function Pe(){d.value=!1,c.value=!1,t(!0),ie(),document.removeEventListener("mouseup",Pe,!0)}function De(H){e(H,n(H)),t(!0)}function ot(H){ym.includes(H.keyCode)&&t(!0)}function nt(H){if(s.vertical===!0)return null;const ge=r.lang.rtl!==s.reverse?1-H:H;return{transform:`translateX(calc(${2*ge-1} * ${s.thumbSize} / 2 + ${50-100*ge}%))`}}function wt(H){const ge=g(()=>d.value===!1&&(f.value===H.focusValue||f.value==="both")?" q-slider--focus":""),Se=g(()=>`q-slider__thumb q-slider__thumb${m.value} q-slider__thumb${m.value}-${v.value===!0?"rtl":"ltr"} absolute non-selectable`+ge.value+(H.thumbColor.value!==void 0?` text-${H.thumbColor.value}`:"")),He=g(()=>({width:s.thumbSize,height:s.thumbSize,[R.value]:`${100*H.ratio.value}%`,zIndex:f.value===H.focusValue?2:void 0})),it=g(()=>H.labelColor.value!==void 0?` text-${H.labelColor.value}`:""),Ht=g(()=>nt(H.ratio.value)),on=g(()=>"q-slider__text"+(H.labelTextColor.value!==void 0?` text-${H.labelTextColor.value}`:""));return()=>{const qn=[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)&&(qn.push(S("div",{class:I.value+" absolute fit no-pointer-events"+it.value},[S("div",{class:G.value,style:{minWidth:s.thumbSize}},[S("div",{class:ce.value,style:Ht.value},[S("span",{class:on.value},H.label.value)])])])),s.name!==void 0&&s.disable!==!0&&u(qn,"push")),S("div",{class:Se.value,style:He.value,...H.getNodeData()},qn)}}function $t(H,ge,Se,He){const it=[];s.innerTrackColor!=="transparent"&&it.push(S("div",{key:"inner",class:Me.value,style:Q.value})),s.selectionColor!=="transparent"&&it.push(S("div",{key:"selection",class:ae.value,style:H.value})),s.markers!==!1&&it.push(S("div",{key:"marker",class:de.value,style:Mt.value})),He(it);const Ht=[ua("div",{key:"trackC",class:V.value,tabindex:ge.value,...Se.value},[S("div",{class:z.value,style:ee.value},it)],"slide",y.value,()=>W.value)];if(s.markerLabels!==!1){const on=s.switchMarkerLabelsSide===!0?"unshift":"push";Ht[on](S("div",{key:"markerL",class:me.value},N()))}return Ht}return Rt(()=>{document.removeEventListener("mouseup",Pe,!0)}),{state:{active:c,focus:f,preventFocus:d,dragging:h,editable:y,classes:U,tabindex:M,attributes:Y,roundValueFn:w,keyStep:x,trackLen:E,innerMin:b,innerMinRatio:O,innerMax:_,innerMaxRatio:D,positionProp:R,sizeProp:T,isReversed:v},methods:{onActivate:Ee,onMobileClick:De,onBlur:ie,onKeyup:ot,getContent:$t,getThumbRenderFn:wt,convertRatioToModel:Le,convertModelToRatio:tt,getDraggingRatio:Ot}}}const bS=()=>({}),na=Be({name:"QSlider",props:{...gS,modelValue:{required:!0,default:null,validator:t=>typeof t=="number"||t===null},labelValue:[String,Number]},emits:vS,setup(t,{emit:e}){const{proxy:{$q:n}}=Ue(),{state:i,methods:s}=pS({updateValue:m,updatePosition:v,getDragging:p,formAttrs:k_(t)}),o=B(null),a=B(0),r=B(0);function l(){r.value=t.modelValue===null?i.innerMin.value:Ii(t.modelValue,i.innerMin.value,i.innerMax.value)}he(()=>`${t.modelValue}|${i.innerMin.value}|${i.innerMax.value}`,l),l();const u=g(()=>s.convertModelToRatio(r.value)),c=g(()=>i.active.value===!0?a.value:u.value),d=g(()=>{const y={[i.positionProp.value]:`${100*i.innerMinRatio.value}%`,[i.sizeProp.value]:`${100*(c.value-i.innerMinRatio.value)}%`};return t.selectionImg!==void 0&&(y.backgroundImage=`url(${t.selectionImg}) !important`),y}),f=s.getThumbRenderFn({focusValue:!0,getNodeData:bS,ratio:c,label:g(()=>t.labelValue!==void 0?t.labelValue:r.value),thumbColor:g(()=>t.thumbColor||t.color),labelColor:g(()=>t.labelColor),labelTextColor:g(()=>t.labelTextColor)}),h=g(()=>i.editable.value!==!0?{}:n.platform.is.mobile===!0?{onClick:s.onMobileClick}:{onMousedown:s.onActivate,onFocus:b,onBlur:s.onBlur,onKeydown:_,onKeyup:s.onKeyup});function m(y){r.value!==t.modelValue&&e("update:modelValue",r.value),y===!0&&e("change",r.value)}function p(){return o.value.getBoundingClientRect()}function v(y,w=i.dragging.value){const x=s.getDraggingRatio(y,w);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 _(y){if(ym.includes(y.keyCode)===!1)return;At(y);const w=([34,33].includes(y.keyCode)?10:1)*i.keyStep.value,x=([34,37,40].includes(y.keyCode)?-1:1)*(i.isReversed.value===!0?-1:1)*(t.vertical===!0?-1:1)*w;r.value=Ii(i.roundValueFn.value(r.value+x),i.innerMin.value,i.innerMax.value),m()}return()=>{const y=s.getContent(d,i.tabindex,h,w=>{w.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},y)}}}),yS={class:"double-slider-container"},xS={class:"slider-container"},wS={class:"row justify-between no-wrap"},_S={class:"col"},SS={key:0,class:"col text-center"},kS={key:1,class:"col text-right"},CS=ye({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=g({get:()=>i.modelValue,set:l=>{i.readonly||n("update:modelValue",l)}}),o=g(()=>s.value>=0&&i.limitMode!=="none"),a=g(()=>["soc","none"].includes(i.limitMode)?100:s.value),r=l=>l>=1e3?(l/1e3).toFixed(2)+" kWh":l.toFixed(0)+" Wh";return(l,u)=>(P(),K("div",yS,[q("div",xS,[C(na,{"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]=ln(()=>{},["stop"])),onTouchmove:u[1]||(u[1]=ln(()=>{},["stop"])),onTouchend:u[2]||(u[2]=ln(()=>{},["stop"]))},null,8,["model-value","max","markers"]),i.limitMode=="soc"?(P(),X(na,{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]=ln(()=>{},["stop"])),onTouchmove:u[5]||(u[5]=ln(()=>{},["stop"])),onTouchend:u[6]||(u[6]=ln(()=>{},["stop"]))},null,8,["modelValue","thumb-size","readonly"])):ue("",!0)]),q("div",wS,[q("div",_S,[q("div",null,oe(i.limitMode=="amount"?"Geladen":"Ladestand"),1),q("div",null,[Ve(oe(i.limitMode=="amount"?r(t.currentValue):t.currentValue+"%")+" ",1),t.vehicleSocType==="manual"&&t.limitMode!=="amount"?(P(),X(we,{key:0,name:"edit",size:"xs",class:"q-ml-xs cursor-pointer",onClick:t.onEditSoc},{default:A(()=>[C(Vn,null,{default:A(()=>u[7]||(u[7]=[Ve("Ladestand eingeben",-1)])),_:1,__:[7]})]),_:1},8,["onClick"])):t.vehicleSocType!==void 0&&t.limitMode!=="amount"?(P(),X(we,{key:1,name:"refresh",size:"xs",class:"q-ml-xs cursor-pointer",onClick:t.onRefreshSoc},{default:A(()=>[C(Vn,null,{default:A(()=>u[8]||(u[8]=[Ve("Ladestand aktualisieren",-1)])),_:1,__:[8]})]),_:1},8,["onClick"])):ue("",!0)])]),i.targetTime?(P(),K("div",SS,[u[9]||(u[9]=q("div",null,"Zielzeit",-1)),q("div",null,oe(i.targetTime),1)])):ue("",!0),o.value?(P(),K("div",kS,[q("div",null,oe(i.limitMode=="soc"?"Ladeziel":"Energieziel"),1),q("div",null,oe(i.limitMode=="soc"?s.value+"%":s.value/1e3+" kWh"),1)])):ue("",!0)])]))}}),Pl=ht(CS,[["__scopeId","data-v-3b9697ab"]]),_a=Be({name:"QToggle",props:{...mm,icon:String,iconColor:String},emits:gm,setup(t){function e(n,i){const s=g(()=>(n.value===!0?t.checkedIcon:i.value===!0?t.indeterminateIcon:t.uncheckedIcon)||t.icon),o=g(()=>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(we,{name:s.value,color:o.value})]:void 0)]}return vm("toggle",e)}}),xm=ye({__name:"ChargePointLock",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1},dense:{type:Boolean,default:!1}},setup(t){const e=t,i=Fe().chargePointManualLock(e.chargePointId);return(s,o)=>e.readonly?(P(),X(we,{key:0,name:Te(i)?"lock":"lock_open",size:"sm",color:Te(i)?"negative":"positive"},null,8,["name","color"])):(P(),X(_a,{key:1,modelValue:Te(i),"onUpdate:modelValue":o[0]||(o[0]=a=>Xr(i)?i.value=a:null),color:Te(i)?"primary":"positive","checked-icon":"lock","unchecked-icon":"lock_open",size:"lg",dense:e.dense},{default:A(()=>[C(Vn,null,{default:A(()=>[Ve(oe(Te(i)?"Ladepunkt gesperrt":"Ladepunkt entsperrt"),1)]),_:1})]),_:1},8,["modelValue","color","dense"]))}}),ia=ye({__name:"ChargePointStateIcon",props:{chargePointId:{},vehicleId:{}},setup(t){const e=t,n=Fe(),i=g(()=>e.vehicleId!==void 0?n.vehicleConnectionState(e.vehicleId).some(a=>a.plugged):e.chargePointId!==void 0?n.chargePointPlugState(e.chargePointId):!1),s=g(()=>e.vehicleId!==void 0?n.vehicleConnectionState(e.vehicleId).some(a=>a.charging):e.chargePointId!==void 0?n.chargePointChargeState(e.chargePointId):!1);return(o,a)=>(P(),X(we,{name:i.value?"power":"power_off",size:"sm",color:i.value?s.value?"positive":"warning":"negative"},{default:A(()=>[C(Vn,null,{default:A(()=>[Ve(oe(i.value?s.value?"Lädt":"Angesteckt, lädt nicht":"Nicht angesteckt"),1)]),_:1})]),_:1},8,["name","color"]))}}),wm=ye({__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=Fe().chargePointConnectedVehiclePriority(e.chargePointId);return(o,a)=>e.readonly?(P(),X(we,{key:0,name:Te(s)?n.on:n.off,color:Te(s)?"warning":"",size:"sm"},null,8,["name","color"])):(P(),X(_a,{key:1,modelValue:Te(s),"onUpdate:modelValue":a[0]||(a[0]=r=>Xr(s)?s.value=r:null),color:Te(s)?"primary":"","checked-icon":n.on,"unchecked-icon":n.off,size:"lg",dense:e.dense},{default:A(()=>[C(Vn,null,{default:A(()=>[Ve(oe(Te(s)?"Fahrzeug priorisiert":"Fahrzeug nicht priorisiert"),1)]),_:1})]),_:1},8,["modelValue","color","checked-icon","unchecked-icon","dense"]))}}),MS={key:0,class:"row q-pt-md full-width"},PS=ye({__name:"ChargePointModeButtons",props:{chargePointId:{}},setup(t){const e=t,n=g(()=>$d.is.mobile),{chargeModes:i}=wl(),s=Fe(),o=g(()=>s.chargePointConnectedVehicleChargeMode(e.chargePointId)),a=g(()=>i.find(r=>r.value===o.value.value)?.label);return(r,l)=>n.value?(P(),K("div",MS,[C(Xo,{class:"col","transition-show":"scale","transition-hide":"scale","transition-duration":"500",color:"primary",label:a.value,size:"md","dropdown-icon":"none",cover:"",push:""},{default:A(()=>[C(Bi,null,{default:A(()=>[(P(!0),K(Oe,null,Xe(Te(i),(u,c)=>(P(),K(Oe,{key:u.value},[sn((P(),X(Ni,{clickable:"",onClick:d=>o.value.value=u.value,active:o.value.value===u.value,"active-class":"bg-primary text-white"},{default:A(()=>[C(Xn,{class:"text-center text-weight-bold"},{default:A(()=>[C(Wi,null,{default:A(()=>[Ve(oe(u.label.toLocaleUpperCase()),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick","active"])),[[wn]]),c[(P(!0),K(Oe,null,Xe(Te(i),u=>(P(),X(ke,{key:u.value,color:o.value.value===u.value?"primary":"grey",label:u.label,size:"sm",onClick:c=>o.value.value=u.value},null,8,["color","label","onClick"]))),128))]),_:1}))}}),_m=ht(PS,[["__scopeId","data-v-c4f1d1ab"]]),id=ye({__name:"ChargePointMessage",props:{chargePointId:{},faultMessage:{type:Boolean}},setup(t){const e=t,n=Fe(),i=B(!0),s=()=>{i.value=!i.value},o=g(()=>a.value!==void 0&&a.value!==0),a=g(()=>e.faultMessage?n.chargePointFaultState(e.chargePointId):-1),r=g(()=>e.faultMessage?n.chargePointFaultMessage(e.chargePointId):n.chargePointStateMessage(e.chargePointId)),l=g(()=>{switch(a.value){case 1:return"bg-warning";case 2:return"bg-negative";default:return"bg-primary"}}),u=g(()=>{switch(a.value){case 1:return"warning";case 2:return"error";default:return"info"}});return(c,d)=>o.value?(P(),K("div",{key:0,class:Re(["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(we,{name:u.value,size:"sm",class:"q-mr-xs"},null,8,["name"]),q("div",{class:Re({ellipsis:i.value})},oe(r.value),3)],2)):ue("",!0)}}),TS={key:0,class:"q-mx-sm"},IS=["title"],DS=["title"],OS=ye({__name:"ChargePointVehicleSelect",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1}},setup(t){const e=t,n=g(()=>$d.is.mobile),i=Fe(),s=i.chargePointConnectedVehicleInfo(e.chargePointId),o=g(()=>i.vehicleList);return(a,r)=>e.readonly?(P(),K("div",TS,[C(we,{name:"directions_car"}),Ve(" "+oe(Te(s)?.name),1)])):n.value?(P(),X(Xo,{key:1,color:"grey","transition-show":"scale","transition-hide":"scale","transition-duration":"500",size:"md","dropdown-icon":"none",cover:"",push:"",class:"no-drop-down-arrow"},{label:A(()=>[q("span",{class:"block ellipsis",title:Te(s)?.name},[C(we,{name:"directions_car"}),Ve(" "+oe(Te(s)?.name),1)],8,IS)]),default:A(()=>[C(Bi,null,{default:A(()=>[(P(!0),K(Oe,null,Xe(o.value,(l,u)=>(P(),K(Oe,{key:l.id},[sn((P(),X(Ni,{clickable:"",onClick:c=>s.value=l,active:Te(s).id===l.id,"active-class":"bg-primary text-white"},{default:A(()=>[C(Xn,{class:"text-center text-weight-bold"},{default:A(()=>[C(Wi,{class:"ellipsis",title:l.name},{default:A(()=>[Ve(oe(l.name),1)]),_:2},1032,["title"])]),_:2},1024)]),_:2},1032,["onClick","active"])),[[wn]]),u[q("span",{class:"ellipsis q-ml-xs",title:Te(s)?.name},[C(we,{name:"directions_car"}),Ve(" "+oe(Te(s)?.name),1)],8,DS)]),default:A(()=>[C(Bi,null,{default:A(()=>[(P(!0),K(Oe,null,Xe(o.value,l=>sn((P(),X(Ni,{key:l.id,clickable:"",dense:"",onClick:u=>s.value=l},{default:A(()=>[C(Xn,null,{default:A(()=>[C(Wi,{class:"ellipsis",title:l.name},{default:A(()=>[Ve(oe(l.name),1)]),_:2},1032,["title"])]),_:2},1024)]),_:2},1032,["onClick"])),[[wn]])),128))]),_:1})]),_:1}))}}),Sm=ht(OS,[["__scopeId","data-v-4f0d8934"]]),VS={class:"text-subtitle2"},ES={class:"row items-center justify-between q-ml-sm"},AS=ye({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=B(n.modelValue),o=B(null),a=g(()=>s.value!==n.modelValue),r=g({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=g(()=>{const f=n.discreteValues&&r.value!==void 0?n.discreteValues[r.value]:r.value;return f===n.offValueLeft||f===n.offValueRight?"Aus":f}),c=g(()=>{const f=n.discreteValues&&r.value!==void 0?n.discreteValues[r.value]:r.value;return f===n.offValueLeft||f===n.offValueRight?"":n.unit});he(()=>n.modelValue,f=>{s.value=f}),Rt(()=>{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=g(()=>a.value?"pending":"");return(f,h)=>(P(),K("div",null,[q("div",null,[q("div",VS,oe(n.title),1)]),q("div",ES,[C(na,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=m=>r.value=m),min:n.discreteValues?0:n.min,max:n.discreteValues?n.discreteValues.length-1:n.max,step:n.step,color:"primary",class:"col","track-size":"0.5em","thumb-size":"1.7em",onTouchstart:h[1]||(h[1]=ln(()=>{},["stop"])),onTouchmove:h[2]||(h[2]=ln(()=>{},["stop"])),onTouchend:h[3]||(h[3]=ln(()=>{},["stop"])),onChange:l},null,8,["modelValue","min","max","step"]),q("div",{class:Re(["q-ml-sm no-wrap",["col-2","text-right",d.value]])},oe(u.value)+" "+oe(c.value),3)])]))}}),Ft=ht(AS,[["__scopeId","data-v-27ae5baf"]]),qS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},LS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},RS=ye({__name:"ChargePointInstantSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>{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(m=>m.value!=="soc")),h}),s=g(()=>n.chargePointConnectedVehicleSocType(e.chargePointId))?.value,o=[{value:1,label:"1"},{value:3,label:"Maximum"}],a=g(()=>n.chargePointConnectedVehicleInstantChargeCurrent(e.chargePointId)),r=g(()=>n.dcChargingEnabled),l=g(()=>n.chargePointConnectedVehicleInstantDcChargePower(e.chargePointId)),u=g(()=>n.chargePointConnectedVehicleInstantChargePhases(e.chargePointId)),c=g(()=>n.chargePointConnectedVehicleInstantChargeLimit(e.chargePointId)),d=g(()=>n.chargePointConnectedVehicleInstantChargeLimitSoC(e.chargePointId)),f=g(()=>n.chargePointConnectedVehicleInstantChargeLimitEnergy(e.chargePointId));return(h,m)=>(P(),K(Oe,null,[C(Ft,{title:"Stromstärke",min:6,max:32,unit:"A",modelValue:a.value.value,"onUpdate:modelValue":m[0]||(m[0]=p=>a.value.value=p),class:"q-mt-sm"},null,8,["modelValue"]),r.value?(P(),X(Ft,{key:0,title:"DC-Sollleistung",min:4,max:300,unit:"kW",modelValue:l.value.value,"onUpdate:modelValue":m[1]||(m[1]=p=>l.value.value=p),class:"q-mt-sm"},null,8,["modelValue"])):ue("",!0),m[4]||(m[4]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen",-1)),q("div",qS,[C(xn,{class:"col"},{default:A(()=>[(P(),K(Oe,null,Xe(o,p=>C(ke,{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})]),m[5]||(m[5]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",LS,[C(xn,{class:"col"},{default:A(()=>[(P(!0),K(Oe,null,Xe(i.value,p=>(P(),X(ke,{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"?(P(),X(Ft,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:d.value.value,"onUpdate:modelValue":m[2]||(m[2]=p=>d.value.value=p),class:"q-mt-md"},null,8,["modelValue"])):ue("",!0),c.value.value==="amount"?(P(),X(Ft,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:f.value.value,"onUpdate:modelValue":m[3]||(m[3]=p=>f.value.value=p),class:"q-mt-md"},null,8,["modelValue"])):ue("",!0)],64))}}),$S=ht(RS,[["__scopeId","data-v-f45a6b19"]]),FS=ye({__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)=>(P(),X(_a,{"model-value":n.value,"onUpdate:modelValue":s,color:n.value?"positive":"negative",size:n.size},null,8,["model-value","color","size"]))}}),zS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},BS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},NS={key:3},WS={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},HS={class:"row items-center justify-between q-ma-none q-pa-none no-wrap q-mt-md"},jS=ye({__name:"ChargePointPvSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>{let y=[{value:"none",label:"keine",color:"primary"},{value:"soc",label:"EV-SoC",color:"primary"},{value:"amount",label:"Energiemenge",color:"primary"}];return s.value===void 0&&(y=y.filter(w=>w.value!=="soc")),y}),s=g(()=>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=g(()=>n.chargePointConnectedVehiclePvChargeMinCurrent(e.chargePointId)),l=g(()=>n.dcChargingEnabled),u=g(()=>n.chargePointConnectedVehiclePvDcChargePower(e.chargePointId)),c=g(()=>n.chargePointConnectedVehiclePvDcMinSocPower(e.chargePointId)),d=g(()=>n.chargePointConnectedVehiclePvChargePhases(e.chargePointId)),f=g(()=>n.chargePointConnectedVehiclePvChargePhasesMinSoc(e.chargePointId)),h=g(()=>n.chargePointConnectedVehiclePvChargeMinSoc(e.chargePointId)),m=g(()=>n.chargePointConnectedVehiclePvChargeMinSocCurrent(e.chargePointId)),p=g(()=>n.chargePointConnectedVehiclePvChargeLimit(e.chargePointId)),v=g(()=>n.chargePointConnectedVehiclePvChargeLimitSoC(e.chargePointId)),b=g(()=>n.chargePointConnectedVehiclePvChargeLimitEnergy(e.chargePointId)),_=g(()=>n.chargePointConnectedVehiclePvChargeFeedInLimit(e.chargePointId));return(y,w)=>(P(),K(Oe,null,[C(Ft,{title:"Minimaler Dauerstrom",min:0,max:16,step:1,unit:"A","off-value-left":0,"discrete-values":[0,6,7,8,9,10,11,12,13,14,15,16],modelValue:r.value.value,"onUpdate:modelValue":w[0]||(w[0]=x=>r.value.value=x),class:"q-mt-md"},null,8,["modelValue"]),l.value?(P(),X(Ft,{key:0,title:"Minimaler DC-Dauerleistung",min:0,max:300,step:1,unit:"kW",modelValue:u.value.value,"onUpdate:modelValue":w[1]||(w[1]=x=>u.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):ue("",!0),w[10]||(w[10]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen",-1)),q("div",zS,[C(xn,{class:"col"},{default:A(()=>[(P(),K(Oe,null,Xe(o,x=>C(ke,{key:x.value,color:d.value.value===x.value?"primary":"grey",label:x.label,size:"sm",class:"col",onClick:M=>d.value.value=x.value},null,8,["color","label","onClick"])),64))]),_:1})]),w[11]||(w[11]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",BS,[C(xn,{class:"col"},{default:A(()=>[(P(!0),K(Oe,null,Xe(i.value,x=>(P(),X(ke,{key:x.value,color:p.value.value===x.value?"primary":"grey",label:x.label,size:"sm",class:"col",onClick:M=>p.value.value=x.value},null,8,["color","label","onClick"]))),128))]),_:1})]),p.value.value==="soc"?(P(),X(Ft,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:v.value.value,"onUpdate:modelValue":w[2]||(w[2]=x=>v.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):ue("",!0),p.value.value==="amount"?(P(),X(Ft,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:b.value.value,"onUpdate:modelValue":w[3]||(w[3]=x=>b.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):ue("",!0),Te(s)!==void 0?(P(),K("div",NS,[C(Ft,{title:"Mindest-SoC für das Fahrzeug",min:0,max:100,step:5,unit:"%","off-value-left":0,modelValue:h.value.value,"onUpdate:modelValue":w[4]||(w[4]=x=>h.value.value=x),class:"q-mt-md"},null,8,["modelValue"]),C(Ft,{title:"Mindest-SoC-Strom",min:6,max:32,unit:"A",modelValue:m.value.value,"onUpdate:modelValue":w[5]||(w[5]=x=>m.value.value=x),class:"q-mt-md"},null,8,["modelValue"]),l.value?(P(),X(Ft,{key:0,title:"DC Mindest-SoC-Leistung",min:0,max:300,step:1,unit:"kW",modelValue:c.value.value,"onUpdate:modelValue":w[6]||(w[6]=x=>c.value.value=x),class:"q-mt-md"},null,8,["modelValue"])):ue("",!0),w[8]||(w[8]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen Mindest-SoC",-1)),q("div",WS,[C(xn,{class:"col"},{default:A(()=>[(P(),K(Oe,null,Xe(a,x=>C(ke,{key:x.value,color:f.value.value===x.value?"primary":"grey",label:x.label,size:"sm",class:"col",onClick:M=>f.value.value=x.value},null,8,["color","label","onClick"])),64))]),_:1})])])):ue("",!0),q("div",HS,[w[9]||(w[9]=q("div",{class:"text-subtitle2 q-mr-sm"},"Einspeisegrenze beachten",-1)),q("div",null,[C(FS,{dense:"",modelValue:_.value.value,"onUpdate:modelValue":w[7]||(w[7]=x=>_.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 + * Released under the MIT License + */const sd={modes:{point(t,e){return qo(t,e,{intersect:!0})},nearest(t,e,n){return ZS(t,e,n)},x(t,e,n){return qo(t,e,{intersect:n.intersect,axis:"x"})},y(t,e,n){return qo(t,e,{intersect:n.intersect,axis:"y"})}}};function Tl(t,e,n){return(sd.modes[n.mode]||sd.modes.nearest)(t,e,n)}function US(t,e,n){return n!=="x"&&n!=="y"?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,n,!0)}function YS(t,e,n){return n==="x"?{x:t.x,y:e.y}:n==="y"?{x:e.x,y:t.y}:e}function qo(t,e,n){return t.filter(i=>n.intersect?i.inRange(e.x,e.y):US(i,e,n.axis))}function ZS(t,e,n){let i=Number.POSITIVE_INFINITY;return qo(t,e,n).reduce((s,o)=>{const a=o.getCenterPoint(),r=YS(e,a,n.axis),l=ji(e,r);return ls._index-o._index).slice(0,1)}function bi(t,e,n){const i=Math.cos(n),s=Math.sin(n),o=e.x,a=e.y;return{x:o+i*(t.x-o)-s*(t.y-a),y:a+s*(t.x-o)+i*(t.y-a)}}const XS=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,ri=.001,Sa=(t,e,n)=>Math.min(n,Math.max(e,t)),km=(t,e)=>t.value>=t.start-e&&t.value<=t.end+e;function KS(t,e,n){for(const i of Object.keys(t))t[i]=Sa(t[i],e,n);return t}function QS(t,e,n,i){return!t||!e||n<=0?!1:Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(n+i,2)}function Cm(t,{x:e,y:n,x2:i,y2:s},o,{borderWidth:a,hitTolerance:r}){const l=(a+r)/2,u=t.x>=e-l-ri&&t.x<=i+l+ri,c=t.y>=n-l-ri&&t.y<=s+l+ri;return o==="x"?u:(o==="y"||u)&&c}function Mm(t,{rect:e,center:n},i,{rotation:s,borderWidth:o,hitTolerance:a}){const r=bi(t,n,kt(-s));return Cm(r,e,i,{borderWidth:o,hitTolerance:a})}function yi(t,e){const{centerX:n,centerY:i}=t.getProps(["centerX","centerY"],e);return{x:n,y:i}}function GS(t,e,n,i=!0){const s=n.split(".");let o=0;for(const a of e.split(".")){const r=s[o++];if(parseInt(a,10)typeof t=="string"&&t.endsWith("%"),Tm=t=>parseFloat(t)/100,Im=t=>Sa(Tm(t),0,1),ps=(t,e)=>({x:t,y:e,x2:t,y2:e,width:0,height:0}),JS={box:t=>ps(t.centerX,t.centerY),doughnutLabel:t=>ps(t.centerX,t.centerY),ellipse:t=>({centerX:t.centerX,centerY:t.centerX,radius:0,width:0,height:0}),label:t=>ps(t.centerX,t.centerY),line:t=>ps(t.x,t.y),point:t=>({centerX:t.centerX,centerY:t.centerY,radius:0,width:0,height:0}),polygon:t=>ps(t.centerX,t.centerY)};function Il(t,e){return e==="start"?0:e==="end"?t:Pm(e)?Im(e)*t:t/2}function Kn(t,e,n=!0){return typeof e=="number"?e:Pm(e)?(n?Im(e):Tm(e))*t:t}function ek(t,e){const{x:n,width:i}=t,s=e.textAlign;return s==="center"?n+i/2:s==="end"||s==="right"?n+i:n}function Dm(t,e,{borderWidth:n,position:i,xAdjust:s,yAdjust:o},a){const r=_e(a),l=e.width+(r?a.width:0)+n,u=e.height+(r?a.height:0)+n,c=Dl(i),d=od(t.x,l,s,c.x),f=od(t.y,u,o,c.y);return{x:d,y:f,x2:d+l,y2:f+u,width:l,height:u,centerX:d+l/2,centerY:f+u/2}}function Dl(t,e="center"){return _e(t)?{x:Ce(t.x,e),y:Ce(t.y,e)}:(t=Ce(t,e),{x:t,y:t})}const Om=(t,e)=>t&&t.autoFit&&e<1;function Vm(t,e){const n=t.font,i=Je(n)?n:[n];return Om(t,e)?i.map(function(s){const o=Dt(s);return o.size=Math.floor(s.size*e),o.lineHeight=s.lineHeight,Dt(o)}):i.map(s=>Dt(s))}function Em(t){return t&&(Qt(t.xValue)||Qt(t.yValue))}function od(t,e,n=0,i){return t-Il(e,i)+n}function os(t,e,n){const i=n.init;if(i){if(i===!0)return qm(e,n)}else return;return tk(t,e,n)}function Am(t,e,n){let i=!1;return e.forEach(s=>{Yt(t[s])?(i=!0,n[s]=t[s]):Qt(n[s])&&delete n[s]}),i}function qm(t,e){const n=e.type||"line";return JS[n](t)}function tk(t,e,n){const i=je(n.init,[{chart:t,properties:e,options:n}]);if(i===!0)return qm(e,n);if(_e(i))return i}const hr=new Map,nk=t=>isNaN(t)||t<=0,ik=t=>t.reduce(function(e,n){return e+=n.string,e},"");function ka(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object HTMLImageElement]"||e==="[object HTMLCanvasElement]"}}function Ca(t,{x:e,y:n},i){i&&(t.translate(e,n),t.rotate(kt(i)),t.translate(-e,-n))}function An(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle||"butt",t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle||"miter",t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function as(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function Ma(t,e){const n=e.content;if(ka(n))return{width:Kn(n.width,e.width),height:Kn(n.height,e.height)};const i=Vm(e),s=e.textStrokeWidth,o=Je(n)?n:[n],a=o.join()+ik(i)+s+(t._measureText?"-spriting":"");return hr.has(a)||hr.set(a,rk(t,o,i,s)),hr.get(a)}function Lm(t,e,n){const{x:i,y:s,width:o,height:a}=e;t.save(),as(t,n);const r=An(t,n);t.fillStyle=n.backgroundColor,t.beginPath(),Ho(t,{x:i,y:s,w:o,h:a,radius:KS(Ei(n.borderRadius),0,Math.min(o,a)/2)}),t.closePath(),t.fill(),r&&(t.shadowColor=n.borderShadowColor,t.stroke()),t.restore()}function Rm(t,e,n,i){const s=n.content;if(ka(s)){t.save(),t.globalAlpha=ck(n.opacity,s.style.opacity),t.drawImage(s,e.x,e.y,e.width,e.height),t.restore();return}const o=Je(s)?s:[s],a=Vm(n,i),r=n.color,l=Je(r)?r:[r],u=ek(e,n),c=e.y+n.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=n.textAlign,sk(t,n)&&lk(t,{x:u,y:c},o,a),uk(t,{x:u,y:c},o,{fonts:a,colors:l}),t.restore()}function sk(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}function ok(t,e,n,i){const{radius:s,options:o}=e,a=o.pointStyle,r=o.rotation;let l=(r||0)*tl;if(ka(a)){t.save(),t.translate(n,i),t.rotate(l),t.drawImage(a,-a.width/2,-a.height/2,a.width,a.height),t.restore();return}nk(s)||ak(t,{x:n,y:i,radius:s,rotation:r,style:a,rad:l})}function ak(t,{x:e,y:n,radius:i,rotation:s,style:o,rad:a}){let r,l,u,c;switch(t.beginPath(),o){default:t.arc(e,n,i,0,St),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(a)*i,n-Math.cos(a)*i),a+=Bo,t.lineTo(e+Math.sin(a)*i,n-Math.cos(a)*i),a+=Bo,t.lineTo(e+Math.sin(a)*i,n-Math.cos(a)*i),t.closePath();break;case"rectRounded":c=i*.516,u=i-c,r=Math.cos(a+en)*u,l=Math.sin(a+en)*u,t.arc(e-r,n-l,c,a-We,a-It),t.arc(e+l,n-r,c,a-It,a),t.arc(e+r,n+l,c,a,a+It),t.arc(e-l,n+r,c,a+It,a+We),t.closePath();break;case"rect":if(!s){u=Math.SQRT1_2*i,t.rect(e-u,n-u,2*u,2*u);break}a+=en;case"rectRot":r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+l,n-r),t.lineTo(e+r,n+l),t.lineTo(e-l,n+r),t.closePath();break;case"crossRot":a+=en;case"cross":r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+r,n+l),t.moveTo(e+l,n-r),t.lineTo(e-l,n+r);break;case"star":r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+r,n+l),t.moveTo(e+l,n-r),t.lineTo(e-l,n+r),a+=en,r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+r,n+l),t.moveTo(e+l,n-r),t.lineTo(e-l,n+r);break;case"line":r=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(e-r,n-l),t.lineTo(e+r,n+l);break;case"dash":t.moveTo(e,n),t.lineTo(e+Math.cos(a)*i,n+Math.sin(a)*i);break}t.fill()}function rk(t,e,n,i){t.save();const s=e.length;let o=0,a=i;for(let r=0;r0||s.borderWidth===0)&&(t.moveTo(l.x,l.y),t.lineTo(u.x,u.y)),t.moveTo(c.x,c.y),t.lineTo(d.x,d.y);const f=bi({x:n,y:i},e.getCenterPoint(),kt(-e.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}function fk(t,e){const{x:n,y:i,x2:s,y2:o}=t,a=hk(t,e);let r,l;return e==="left"||e==="right"?(r={x:n+a,y:i},l={x:r.x,y:o}):(r={x:n,y:i+a},l={x:s,y:r.y}),{separatorStart:r,separatorEnd:l}}function hk(t,e){const{width:n,height:i,options:s}=t,o=s.callout.margin+s.borderWidth/2;return e==="right"?n+o:e==="bottom"?i+o:-o}function mk(t,e,n){const{y:i,width:s,height:o,options:a}=t,r=a.callout.start,l=gk(e,a.callout);let u,c;return e==="left"||e==="right"?(u={x:n.x,y:i+Kn(o,r)},c={x:u.x+l,y:u.y}):(u={x:n.x+Kn(s,r),y:n.y},c={x:u.x,y:u.y+l}),{sideStart:u,sideEnd:c}}function gk(t,e){const n=e.side;return t==="left"||t==="top"?-n:n}function vk(t,e){const n=e.position;return $m.includes(n)?n:pk(t,e)}function pk(t,e){const{x:n,y:i,x2:s,y2:o,width:a,height:r,pointX:l,pointY:u,centerX:c,centerY:d,rotation:f}=t,h={x:c,y:d},m=e.start,p=Kn(a,m),v=Kn(r,m),b=[n,n+p,n+p,s],_=[i+v,o,i,o],y=[];for(let w=0;w<4;w++){const x=bi({x:b[w],y:_[w]},h,kt(f));y.push({position:$m[w],distance:ji(x,{x:l,y:u})})}return y.sort((w,x)=>w.distance-x.distance)[0].position}function bk(t,e,n){const{pointX:i,pointY:s}=t,o=e.margin;let a=i,r=s;return n==="left"?a+=o:n==="right"?a-=o:n==="top"?r+=o:n==="bottom"&&(r-=o),t.inRange(a,r)}const ad={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function Qi(t,e,n){return e=typeof e=="number"?e:t.parse(e),Ct(e)?t.getPixelForValue(e):n}function hi(t,e,n){const i=e[n];if(i||n==="scaleID")return i;const s=n.charAt(0),o=Object.values(t).filter(a=>a.axis&&a.axis===s);return o.length?o[0].id:s}function Fm(t,e){if(t){const n=t.options.reverse,i=Qi(t,e.min,n?e.end:e.start),s=Qi(t,e.max,n?e.start:e.end);return{start:i,end:s}}}function zm(t,e){const{chartArea:n,scales:i}=t,s=i[hi(i,e,"xScaleID")],o=i[hi(i,e,"yScaleID")];let a=n.width/2,r=n.height/2;return s&&(a=Qi(s,e.xValue,s.left+s.width/2)),o&&(r=Qi(o,e.yValue,o.top+o.height/2)),{x:a,y:r}}function Ol(t,e){const n=t.scales,i=n[hi(n,e,"xScaleID")],s=n[hi(n,e,"yScaleID")];if(!i&&!s)return{};let{left:o,right:a}=i||t.chartArea,{top:r,bottom:l}=s||t.chartArea;const u=rd(i,{min:e.xMin,max:e.xMax,start:o,end:a});o=u.start,a=u.end;const c=rd(s,{min:e.yMin,max:e.yMax,start:l,end:r});return r=c.start,l=c.end,{x:o,y:r,x2:a,y2:l,width:a-o,height:l-r,centerX:o+(a-o)/2,centerY:r+(l-r)/2}}function Bm(t,e){if(!Em(e)){const n=Ol(t,e);let i=e.radius;(!i||isNaN(i))&&(i=Math.min(n.width,n.height)/2,e.radius=i);const s=i*2,o=n.centerX+e.xAdjust,a=n.centerY+e.yAdjust;return{x:o-i,y:a-i,x2:o+i,y2:a+i,centerX:o,centerY:a,width:s,height:s,radius:i}}return xk(t,e)}function yk(t,e){const{scales:n,chartArea:i}=t,s=n[e.scaleID],o={x:i.left,y:i.top,x2:i.right,y2:i.bottom};return s?wk(s,o,e):_k(n,o,e),o}function Nm(t,e){const n=Ol(t,e);return n.initProperties=os(t,n,e),n.elements=[{type:"label",optionScope:"label",properties:Ck(t,n,e),initProperties:n.initProperties}],n}function xk(t,e){const n=zm(t,e),i=e.radius*2;return{x:n.x-e.radius+e.xAdjust,y:n.y-e.radius+e.yAdjust,x2:n.x+e.radius+e.xAdjust,y2:n.y+e.radius+e.yAdjust,centerX:n.x+e.xAdjust,centerY:n.y+e.yAdjust,radius:e.radius,width:i,height:i}}function rd(t,e){const n=Fm(t,e)||e;return{start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)}}function wk(t,e,n){const i=Qi(t,n.value,NaN),s=Qi(t,n.endValue,i);t.isHorizontal()?(e.x=i,e.x2=s):(e.y=i,e.y2=s)}function _k(t,e,n){for(const i of Object.keys(ad)){const s=t[hi(t,n,i)];if(s){const{min:o,max:a,start:r,end:l,startProp:u,endProp:c}=ad[i],d=Fm(s,{min:n[o],max:n[a],start:s[r],end:s[l]});e[u]=d.start,e[c]=d.end}}}function Sk({properties:t,options:e},n,i,s){const{x:o,x2:a,width:r}=t;return Wm({start:o,end:a,borderWidth:e.borderWidth},{position:i.x,padding:{start:s.left,end:s.right},adjust:e.label.xAdjust,size:n.width})}function kk({properties:t,options:e},n,i,s){const{y:o,y2:a,height:r}=t;return Wm({start:o,end:a,borderWidth:e.borderWidth},{position:i.y,padding:{start:s.top,end:s.bottom},adjust:e.label.yAdjust,size:n.height})}function Wm(t,e){const{start:n,end:i,borderWidth:s}=t,{position:o,padding:{start:a,end:r},adjust:l}=e,u=i-s-n-a-r-e.size;return n+s/2+l+Il(u,o)}function Ck(t,e,n){const i=n.label;i.backgroundColor="transparent",i.callout.display=!1;const s=Dl(i.position),o=Bt(i.padding),a=Ma(t.ctx,i),r=Sk({properties:e,options:n},a,s,o),l=kk({properties:e,options:n},a,s,o),u=a.width+o.width,c=a.height+o.height;return{x:r,y:l,x2:r+u,y2:l+c,width:u,height:c,centerX:r+u/2,centerY:l+c/2,rotation:i.rotation}}const $r=["enter","leave"],Vl=$r.concat("click");function Mk(t,e,n){e.listened=Am(n,Vl,e.listeners),e.moveListened=!1,$r.forEach(i=>{Yt(n[i])&&(e.moveListened=!0)}),(!e.listened||!e.moveListened)&&e.annotations.forEach(i=>{!e.listened&&Yt(i.click)&&(e.listened=!0),e.moveListened||$r.forEach(s=>{Yt(i[s])&&(e.listened=!0,e.moveListened=!0)})})}function Pk(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return Tk(t,e,n);case"click":return Ik(t,e,n)}}function Tk(t,e,n){if(!t.moveListened)return;let i;e.type==="mousemove"?i=Tl(t.visibleElements,e,n.interaction):i=[];const s=t.hovered;t.hovered=i;const o={state:t,event:e};let a=ld(o,"leave",s,i);return ld(o,"enter",i,s)||a}function ld({state:t,event:e},n,i,s){let o;for(const a of i)s.indexOf(a)<0&&(o=Hm(a.options[n]||t.listeners[n],a,e)||o);return o}function Ik(t,e,n){const i=t.listeners,s=Tl(t.visibleElements,e,n.interaction);let o;for(const a of s)o=Hm(a.options.click||i.click,a,e)||o;return o}function Hm(t,e,n){return je(t,[e.$context,n])===!0}const sa=["afterDraw","beforeDraw"];function Dk(t,e,n){const i=e.visibleElements;e.hooked=Am(n,sa,e.hooks),e.hooked||i.forEach(s=>{e.hooked||sa.forEach(o=>{Yt(s.options[o])&&(e.hooked=!0)})})}function ud(t,e,n){if(t.hooked){const i=e.options[n]||t.hooks[n];return je(i,[e.$context])}}function Ok(t,e,n){const i=Lk(t.scales,e,n);let s=cd(e,i,"min","suggestedMin");s=cd(e,i,"max","suggestedMax")||s,s&&Yt(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function Vk(t,e){for(const n of t)Ak(n,e)}function cd(t,e,n,i){if(Ct(e[n])&&!Ek(t.options,n,i)){const s=t[n]!==e[n];return t[n]=e[n],s}}function Ek(t,e,n){return Qt(t[e])||Qt(t[n])}function Ak(t,e){for(const n of["scaleID","xScaleID","yScaleID"]){const i=hi(e,t,n);i&&!e[i]&&qk(t,n)&&console.warn(`No scale found with id '${i}' for annotation '${t.id}'`)}}function qk(t,e){if(e==="scaleID")return!0;const n=e.charAt(0);for(const i of["Min","Max","Value"])if(Qt(t[n+i]))return!0;return!1}function Lk(t,e,n){const i=e.axis,s=e.id,o=i+"ScaleID",a={min:Ce(e.min,Number.NEGATIVE_INFINITY),max:Ce(e.max,Number.POSITIVE_INFINITY)};for(const r of n)r.scaleID===s?dd(r,e,["value","endValue"],a):hi(t,r,o)===s&&dd(r,e,[i+"Min",i+"Max",i+"Value"],a);return a}function dd(t,e,n,i){for(const s of n){const o=t[s];if(Qt(o)){const a=e.parse(o);i.min=Math.min(i.min,a),i.max=Math.max(i.max,a)}}}class rs extends Nt{inRange(e,n,i,s){const{x:o,y:a}=bi({x:e,y:n},this.getCenterPoint(s),kt(-this.options.rotation));return Cm({x:o,y:a},this.getProps(["x","y","x2","y2"],s),i,this.options)}getCenterPoint(e){return yi(this,e)}draw(e){e.save(),Ca(e,this.getCenterPoint(),this.options.rotation),Lm(e,this,this.options),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return Nm(e,n)}}rs.id="boxAnnotation";rs.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,hitTolerance:0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};rs.defaultRoutes={borderColor:"color",backgroundColor:"color"};rs.descriptors={label:{_fallback:!0}};class Pa extends Nt{inRange(e,n,i,s){return Mm({x:e,y:n},{rect:this.getProps(["x","y","x2","y2"],s),center:this.getCenterPoint(s)},i,{rotation:this.rotation,borderWidth:0,hitTolerance:this.options.hitTolerance})}getCenterPoint(e){return yi(this,e)}draw(e){const n=this.options;!n.display||!n.content||(Nk(e,this),e.save(),Ca(e,this.getCenterPoint(),this.rotation),Rm(e,this,n,this._fitRatio),e.restore())}resolveElementProperties(e,n){const i=Rk(e,n);if(!i)return{};const{controllerMeta:s,point:o,radius:a}=Fk(e,n,i);let r=Ma(e.ctx,n);const l=zk(r,a);Om(n,l)&&(r={width:r.width*l,height:r.height*l});const{position:u,xAdjust:c,yAdjust:d}=n,f=Dm(o,r,{borderWidth:0,position:u,xAdjust:c,yAdjust:d});return{initProperties:os(e,f,n),...f,...s,rotation:n.rotation,_fitRatio:l}}}Pa.id="doughnutLabelAnnotation";Pa.defaults={autoFit:!0,autoHide:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderColor:"transparent",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:0,color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,spacing:1,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0};Pa.defaultRoutes={};function Rk(t,e){return t.getSortedVisibleDatasetMetas().reduce(function(n,i){const s=i.controller;return s instanceof xs&&$k(t,e,i.data)&&(!n||s.innerRadius=90?i:n},void 0)}function $k(t,e,n){if(!e.autoHide)return!0;for(let i=0;id,b=v?s+m:a-m,_=Bk(b,c,d,p);return{controllerMeta:{_centerX:c,_centerY:d,_radius:p,_counterclockwise:v,..._},point:h,radius:Math.min(r,Math.min(f.right-f.left,f.bottom-f.top)/2)}}function zk({width:t,height:e},n){const i=Math.sqrt(Math.pow(t,2)+Math.pow(e,2));return n*2/i}function Bk(t,e,n,i){const s=Math.pow(n-t,2),o=Math.pow(i,2),a=e*-2,r=Math.pow(e,2)+s-o,l=Math.pow(a,2)-4*r;if(l<=0)return{_startAngle:0,_endAngle:St};const u=(-a-Math.sqrt(l))/2,c=(-a+Math.sqrt(l))/2;return{_startAngle:vr({x:e,y:n},{x:u,y:t}).angle,_endAngle:vr({x:e,y:n},{x:c,y:t}).angle}}function Nk(t,e){const{_centerX:n,_centerY:i,_radius:s,_startAngle:o,_endAngle:a,_counterclockwise:r,options:l}=e;t.save();const u=An(t,l);t.fillStyle=l.backgroundColor,t.beginPath(),t.arc(n,i,s,o,a,r),t.closePath(),t.fill(),u&&t.stroke(),t.restore()}class Js extends Nt{inRange(e,n,i,s){return Mm({x:e,y:n},{rect:this.getProps(["x","y","x2","y2"],s),center:this.getCenterPoint(s)},i,{rotation:this.rotation,borderWidth:this.options.borderWidth,hitTolerance:this.options.hitTolerance})}getCenterPoint(e){return yi(this,e)}draw(e){const n=this.options,i=!Qt(this._visible)||this._visible;!n.display||!n.content||!i||(e.save(),Ca(e,this.getCenterPoint(),this.rotation),dk(e,this),Lm(e,this,n),Rm(e,Wk(this),n),e.restore())}resolveElementProperties(e,n){let i;if(Em(n))i=zm(e,n);else{const{centerX:r,centerY:l}=Ol(e,n);i={x:r,y:l}}const s=Bt(n.padding),o=Ma(e.ctx,n),a=Dm(i,o,n,s);return{initProperties:os(e,a,n),pointX:i.x,pointY:i.y,...a,rotation:n.rotation}}}Js.id="labelAnnotation";Js.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};Js.defaultRoutes={borderColor:"color"};function Wk({x:t,y:e,width:n,height:i,options:s}){const o=s.borderWidth/2,a=Bt(s.padding);return{x:t+a.left+o,y:e+a.top+o,width:n-a.left-a.right-s.borderWidth,height:i-a.top-a.bottom-s.borderWidth}}const El=(t,e,n)=>({x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}),Fr=(t,e,n)=>El(e,n,Math.abs((t-e.y)/(n.y-e.y))).x,fd=(t,e,n)=>El(e,n,Math.abs((t-e.x)/(n.x-e.x))).y,Ms=t=>t*t,Hk=(t,e,{x:n,y:i,x2:s,y2:o},a)=>a==="y"?{start:Math.min(i,o),end:Math.max(i,o),value:e}:{start:Math.min(n,s),end:Math.max(n,s),value:t},hd=(t,e,n,i)=>(1-i)*(1-i)*t+2*(1-i)*i*e+i*i*n,zr=(t,e,n,i)=>({x:hd(t.x,e.x,n.x,i),y:hd(t.y,e.y,n.y,i)}),md=(t,e,n,i)=>2*(1-i)*(e-t)+2*i*(n-e),gd=(t,e,n,i)=>-Math.atan2(md(t.x,e.x,n.x,i),md(t.y,e.y,n.y,i))+.5*We;class eo extends Nt{inRange(e,n,i,s){const o=(this.options.borderWidth+this.options.hitTolerance)/2;if(i!=="x"&&i!=="y"){const a={mouseX:e,mouseY:n},{path:r,ctx:l}=this;if(r){An(l,this.options),l.lineWidth+=this.options.hitTolerance;const{chart:c}=this.$context,d=e*c.currentDevicePixelRatio,f=n*c.currentDevicePixelRatio,h=l.isPointInStroke(r,d,f)||Br(this,a,s);return l.restore(),h}const u=Ms(o);return Zk(this,a,u,s)||Br(this,a,s)}return jk(this,{mouseX:e,mouseY:n},i,{hitSize:o,useFinalPosition:s})}getCenterPoint(e){return yi(this,e)}draw(e){const{x:n,y:i,x2:s,y2:o,cp:a,options:r}=this;if(e.save(),!An(e,r))return e.restore();as(e,r);const l=Math.sqrt(Math.pow(s-n,2)+Math.pow(o-i,2));if(r.curve&&a)return n1(e,this,a,l),e.restore();const{startOpts:u,endOpts:c,startAdjust:d,endAdjust:f}=jm(this),h=Math.atan2(o-i,s-n);e.translate(n,i),e.rotate(h),e.beginPath(),e.moveTo(0+d,0),e.lineTo(l-f,0),e.shadowColor=r.borderShadowColor,e.stroke(),Nr(e,0,d,u),Nr(e,l,-f,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){const i=yk(e,n),{x:s,y:o,x2:a,y2:r}=i,l=Uk(i,e.chartArea),u=l?Yk({x:s,y:o},{x:a,y:r},e.chartArea):{x:s,y:o,x2:a,y2:r,width:Math.abs(a-s),height:Math.abs(r-o)};if(u.centerX=(a+s)/2,u.centerY=(r+o)/2,u.initProperties=os(e,u,n),n.curve){const d={x:u.x,y:u.y},f={x:u.x2,y:u.y2};u.cp=t1(u,n,ji(d,f))}const c=Xk(e,u,n.label);return c._visible=l,u.elements=[{type:"label",optionScope:"label",properties:c,initProperties:u.initProperties}],u}}eo.id="lineAnnotation";const vd={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};eo.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},vd),fill:!1,length:12,start:Object.assign({},vd),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,hitTolerance:0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},Js.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};eo.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};eo.defaultRoutes={borderColor:"color"};function jk(t,{mouseX:e,mouseY:n},i,{hitSize:s,useFinalPosition:o}){const a=Hk(e,n,t.getProps(["x","y","x2","y2"],o),i);return km(a,s)||Br(t,{mouseX:e,mouseY:n},o,i)}function Uk({x:t,y:e,x2:n,y2:i},{top:s,right:o,bottom:a,left:r}){return!(to&&n>o||ea&&i>a)}function pd({x:t,y:e},n,{top:i,right:s,bottom:o,left:a}){return ts&&(e=fd(s,{x:t,y:e},n),t=s),eo&&(t=Fr(o,{x:t,y:e},n),e=o),{x:t,y:e}}function Yk(t,e,n){const{x:i,y:s}=pd(t,e,n),{x:o,y:a}=pd(e,t,n);return{x:i,y:s,x2:o,y2:a,width:Math.abs(o-i),height:Math.abs(a-s)}}function Zk(t,{mouseX:e,mouseY:n},i=ri,s){const{x:o,y:a,x2:r,y2:l}=t.getProps(["x","y","x2","y2"],s),u=r-o,c=l-a,d=Ms(u)+Ms(c),f=d===0?-1:((e-o)*u+(n-a)*c)/d;let h,m;return f<0?(h=o,m=a):f>1?(h=r,m=l):(h=o+f*u,m=a+f*c),Ms(e-h)+Ms(n-m)<=i}function Br(t,{mouseX:e,mouseY:n},i,s){const o=t.label;return o.options.display&&o.inRange(e,n,s,i)}function Xk(t,e,n){const i=n.borderWidth,s=Bt(n.padding),o=Ma(t.ctx,n),a=o.width+s.width+i,r=o.height+s.height+i;return Qk(e,n,{width:a,height:r,padding:s},t.chartArea)}function Kk(t){const{x:e,y:n,x2:i,y2:s}=t,o=Math.atan2(s-n,i-e);return o>We/2?o-We:o0&&(s.w/2+o.left-i.x)/a,u=r>0&&(s.h/2+o.top-i.y)/r;return Sa(Math.max(l,u),0,.25)}function e1(t,e){const{x:n,x2:i,y:s,y2:o}=t,a=Math.min(s,o)-e.top,r=Math.min(n,i)-e.left,l=e.bottom-Math.max(s,o),u=e.right-Math.max(n,i);return{x:Math.min(r,u),y:Math.min(a,l),dx:r<=u?1:-1,dy:a<=l?1:-1}}function yd(t,e){const{size:n,min:i,max:s,padding:o}=e,a=n/2;return n>s-i?(s+i)/2:(i>=t-o-a&&(t=i+o+a),s<=t+o+a&&(t=s-o-a),t)}function jm(t){const e=t.options,n=e.arrowHeads&&e.arrowHeads.start,i=e.arrowHeads&&e.arrowHeads.end;return{startOpts:n,endOpts:i,startAdjust:xd(t,n),endAdjust:xd(t,i)}}function xd(t,e){if(!e||!e.display)return 0;const{length:n,width:i}=e,s=t.options.borderWidth/2,o={x:n,y:i+s};return Math.abs(Fr(0,o,{x:0,y:s}))}function Nr(t,e,n,i){if(!i||!i.display)return;const{length:s,width:o,fill:a,backgroundColor:r,borderColor:l}=i,u=Math.abs(e-s)+n;t.beginPath(),as(t,i),An(t,i),t.moveTo(u,-o),t.lineTo(e+n,0),t.lineTo(u,o),a===!0?(t.fillStyle=r||l,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=i.borderShadowColor,t.stroke()}function t1(t,e,n){const{x:i,y:s,x2:o,y2:a,centerX:r,centerY:l}=t,u=Math.atan2(a-s,o-i),c=Dl(e.controlPoint,0),d={x:r+Kn(n,c.x,!1),y:l+Kn(n,c.y,!1)};return bi(d,{x:r,y:l},u)}function wd(t,{x:e,y:n},{angle:i,adjust:s},o){!o||!o.display||(t.save(),t.translate(e,n),t.rotate(i),Nr(t,0,-s,o),t.restore())}function n1(t,e,n,i){const{x:s,y:o,x2:a,y2:r,options:l}=e,{startOpts:u,endOpts:c,startAdjust:d,endAdjust:f}=jm(e),h={x:s,y:o},m={x:a,y:r},p=gd(h,n,m,0),v=gd(h,n,m,1)-We,b=zr(h,n,m,d/i),_=zr(h,n,m,1-f/i),y=new Path2D;t.beginPath(),y.moveTo(b.x,b.y),y.quadraticCurveTo(n.x,n.y,_.x,_.y),t.shadowColor=l.borderShadowColor,t.stroke(y),e.path=y,e.ctx=t,wd(t,b,{angle:p,adjust:d},u),wd(t,_,{angle:v,adjust:f},c)}class to extends Nt{inRange(e,n,i,s){const o=this.options.rotation,a=(this.options.borderWidth+this.options.hitTolerance)/2;if(i!=="x"&&i!=="y")return i1({x:e,y:n},this.getProps(["width","height","centerX","centerY"],s),o,a);const{x:r,y:l,x2:u,y2:c}=this.getProps(["x","y","x2","y2"],s),d=i==="y"?{start:l,end:c}:{start:r,end:u},f=bi({x:e,y:n},this.getCenterPoint(s),kt(-o));return f[i]>=d.start-a-ri&&f[i]<=d.end+a+ri}getCenterPoint(e){return yi(this,e)}draw(e){const{width:n,height:i,centerX:s,centerY:o,options:a}=this;e.save(),Ca(e,this.getCenterPoint(),a.rotation),as(e,this.options),e.beginPath(),e.fillStyle=a.backgroundColor;const r=An(e,a);e.ellipse(s,o,i/2,n/2,We/2,0,2*We),e.fill(),r&&(e.shadowColor=a.borderShadowColor,e.stroke()),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return Nm(e,n)}}to.id="ellipseAnnotation";to.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,label:Object.assign({},rs.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};to.defaultRoutes={borderColor:"color",backgroundColor:"color"};to.descriptors={label:{_fallback:!0}};function i1(t,e,n,i){const{width:s,height:o,centerX:a,centerY:r}=e,l=s/2,u=o/2;if(l<=0||u<=0)return!1;const c=kt(n||0),d=Math.cos(c),f=Math.sin(c),h=Math.pow(d*(t.x-a)+f*(t.y-r),2),m=Math.pow(f*(t.x-a)-d*(t.y-r),2);return h/Math.pow(l+i,2)+m/Math.pow(u+i,2)<=1.0001}class Ta extends Nt{inRange(e,n,i,s){const{x:o,y:a,x2:r,y2:l,width:u}=this.getProps(["x","y","x2","y2","width"],s),c=(this.options.borderWidth+this.options.hitTolerance)/2;return i!=="x"&&i!=="y"?QS({x:e,y:n},this.getCenterPoint(s),u/2,c):km(i==="y"?{start:a,end:l,value:n}:{start:o,end:r,value:e},c)}getCenterPoint(e){return yi(this,e)}draw(e){const n=this.options,i=n.borderWidth;if(n.radius<.1)return;e.save(),e.fillStyle=n.backgroundColor,as(e,n);const s=An(e,n);ok(e,this,this.centerX,this.centerY),s&&!ka(n.pointStyle)&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore(),n.borderWidth=i}resolveElementProperties(e,n){const i=Bm(e,n);return i.initProperties=os(e,i,n),i}}Ta.id="pointAnnotation";Ta.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};Ta.defaultRoutes={borderColor:"color",backgroundColor:"color"};class Ia extends Nt{inRange(e,n,i,s){if(i!=="x"&&i!=="y")return this.options.radius>=.1&&this.elements.length>1&&o1(this.elements,e,n,s);const o=bi({x:e,y:n},this.getCenterPoint(s),kt(-this.options.rotation)),a=this.elements.map(u=>i==="y"?u.bY:u.bX),r=Math.min(...a),l=Math.max(...a);return o[i]>=r&&o[i]<=l}getCenterPoint(e){return yi(this,e)}draw(e){const{elements:n,options:i}=this;e.save(),e.beginPath(),e.fillStyle=i.backgroundColor,as(e,i);const s=An(e,i);let o=!0;for(const a of n)o?(e.moveTo(a.x,a.y),o=!1):e.lineTo(a.x,a.y);e.closePath(),e.fill(),s&&(e.shadowColor=i.borderShadowColor,e.stroke()),e.restore()}resolveElementProperties(e,n){const i=Bm(e,n),{sides:s,rotation:o}=n,a=[],r=2*We/s;let l=o*tl;for(let u=0;un!=o.bY>n&&e<(o.bX-r.bX)*(n-r.bY)/(o.bY-r.bY)+r.bX&&(s=!s),o=r}return s}const Zn={box:rs,doughnutLabel:Pa,ellipse:to,label:Js,line:eo,point:Ta,polygon:Ia};Object.keys(Zn).forEach(t=>{ut.describe(`elements.${Zn[t].id}`,{_fallback:"plugins.annotation.common"})});const a1={update:Object.assign},r1=Vl.concat(sa),_d=(t,e)=>_e(e)?Hr(t,e):t,Wr=t=>t==="color"||t==="font";function Al(t="line"){return Zn[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function l1(t,e,n,i){const s=c1(t,n.animations,i),o=e.annotations,a=h1(e.elements,o);for(let r=0;r_d(a,s)):n[i]=_d(o,s)}return n}function f1(t,e,n,i){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,get elements(){return n.filter(s=>s&&s.options)},id:i.id,type:"annotation"}))}function h1(t,e){const n=e.length,i=t.length;if(in&&t.splice(n,i-n);return t}var m1="3.1.0";const $n=new Map,Sd=t=>t.type!=="doughnutLabel",g1=Vl.concat(sa);var v1={id:"annotation",version:m1,beforeRegister(){GS("chart.js","4.0",Un.version)},afterRegister(){Un.register(Zn)},afterUnregister(){Un.unregister(Zn)},beforeInit(t){$n.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,n){const i=$n.get(t),s=i.annotations=[];let o=n.annotations;_e(o)?Object.keys(o).forEach(a=>{const r=o[a];_e(r)&&(r.id=a,s.push(r))}):Je(o)&&s.push(...o),Vk(s.filter(Sd),t.scales)},afterDataLimits(t,e){const n=$n.get(t);Ok(t,e.scale,n.annotations.filter(Sd).filter(i=>i.display&&i.adjustScaleRange))},afterUpdate(t,e,n){const i=$n.get(t);Mk(t,i,n),l1(t,i,n,e.mode),i.visibleElements=i.elements.filter(s=>!s.skip&&s.options.display),Dk(t,i,n)},beforeDatasetsDraw(t,e,n){bs(t,"beforeDatasetsDraw",n.clip)},afterDatasetsDraw(t,e,n){bs(t,"afterDatasetsDraw",n.clip)},beforeDatasetDraw(t,e,n){bs(t,e.index,n.clip)},beforeDraw(t,e,n){bs(t,"beforeDraw",n.clip)},afterDraw(t,e,n){bs(t,"afterDraw",n.clip)},beforeEvent(t,e,n){const i=$n.get(t);Pk(i,e.event,n)&&(e.changed=!0)},afterDestroy(t){$n.delete(t)},getAnnotations(t){const e=$n.get(t);return e?e.elements:[]},_getAnnotationElementsAtEventForMode(t,e,n){return Tl(t,e,n)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"},colors:{properties:["backgroundColor","borderColor"],type:"color"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!g1.includes(t)&&t!=="init",annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${Zn[Al(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:Wr,_fallback:!0},_indexable:Wr}},additionalOptionScopes:[""]};function bs(t,e,n){const{ctx:i,chartArea:s}=t,o=$n.get(t);n&&Us(i,s);const a=p1(o.visibleElements,e).sort((r,l)=>r.element.options.z-l.element.options.z);for(const r of a)b1(i,s,o,r);n&&Ys(i)}function p1(t,e){const n=[];for(const i of t)if(i.options.drawTime===e&&n.push({element:i,main:!0}),i.elements&&i.elements.length)for(const s of i.elements)s.options.display&&s.options.drawTime===e&&n.push({element:s});return n}function b1(t,e,n,i){const s=i.element;i.main?(ud(n,s,"beforeDraw"),s.draw(t,e),ud(n,s,"afterDraw")):s.draw(t,e)}const y1={class:"chartContainer"},x1=ye({__name:"ElectricityTariffChart",props:{modelValue:{type:Number,required:!1,default:void 0}},emits:["update:modelValue"],setup(t,{emit:e}){Un.register(Hf,Li,On,Vs,Yo,Zi,Nf,v1);const n=t,i=e,s=Fe(),o=gi(),a=Pg("priceChart"),r=B({datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgb(18, 111, 142)",backgroundColor:"rgb(18, 111, 142)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:2,data:[],yAxisID:"y"}]}),l=g(()=>{let h=[];const m=s.etPrices;if(Object.keys(m).length>0){for(const[b,_]of Object.entries(m))h.push({x:parseInt(b)*1e3,y:_*1e5});const v=h.slice(-1)[0];h.push({x:v.x+3599*1e3,y:v.y})}const p=r.value;return p.datasets[0].data=h,p}),u=g(()=>Object.keys(l.value.datasets[0].data).length>0),c=g(()=>{const h="rgba(73, 238, 73, 0.2)",m="rgba(255, 10, 13, 0.2)",p=l.value.datasets[0].data;let v=[];if(n.modelValue!==void 0){for(let b=0;bn.modelValue){let _={type:"box",drawTime:"beforeDatasetsDraw",xMin:p[b].x,xMax:0,borderWidth:1,cornerRadius:0,borderColor:m,backgroundColor:m};for(;bn.modelValue;)b++;b==p.length&&b--,_.xMax=p[b].x,v.push(_)}}return v}),d=g(()=>({plugins:{title:{display:!1},legend:{display:!1},annotation:{annotations:c.value}},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",color:o.dark.isActive?"rgb(255, 255, 255)":"rgb(0, 0, 0)"},ticks:{font:{size:12},color:o.dark.isActive?"rgb(255, 255, 255)":"rgb(0, 0, 0)"},grid:{color:o.dark.isActive?"rgba(255, 255, 255, 0.1)":"rgba(0, 0, 0, 0.1)"}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]",color:o.dark.isActive?"rgb(255, 255, 255)":"rgb(0, 0, 0)"},grid:{color:o.dark.isActive?"rgba(255, 255, 255, 0.1)":"rgba(0, 0, 0, 0.1)"},ticks:{font:{size:12},stepSize:.1,maxTicksLimit:11,color:o.dark.isActive?"rgb(255, 255, 255)":"rgb(0, 0, 0)"}}}}));function f(h){if(!a.value)return;const m=a.value.chart.getElementsAtEventForMode(h,"index",{intersect:!1},!0);if(m.length>0){const p=l.value.datasets[0].data[m[0].index];i("update:modelValue",Math.ceil(p.y*100)/100)}}return(h,m)=>(P(),K("div",y1,[u.value?(P(),X(Te(Xf),{key:0,ref_key:"priceChart",ref:a,data:l.value,options:d.value,class:"chart",onClick:f},null,8,["data","options"])):ue("",!0)]))}}),w1=ht(x1,[["__scopeId","data-v-9992330e"]]),_1={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},S1={class:"row items-center justify-center q-ma-none q-pa-none no-wrap"},k1={key:3},C1={class:"row no-wrap items-center justify-between q-mb-xs q-gutter-x-xs"},M1={class:"col-auto"},P1={class:"col-auto q-mx-sm"},T1={class:"col-auto"},I1=ye({__name:"ChargePointEcoSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>{let p=[{value:"none",label:"keine",color:"primary"},{value:"soc",label:"EV-SoC",color:"primary"},{value:"amount",label:"Energiemenge",color:"primary"}];return s.value===void 0&&(p=p.filter(v=>v.value!=="soc")),p}),s=g(()=>n.chargePointConnectedVehicleSocType(e.chargePointId))?.value,o=[{value:1,label:"1"},{value:3,label:"Maximum"},{value:0,label:"Automatik"}],a=g(()=>n.chargePointConnectedVehicleEcoChargeCurrent(e.chargePointId)),r=g(()=>n.dcChargingEnabled),l=g(()=>n.chargePointConnectedVehicleEcoChargeDcPower(e.chargePointId)),u=g(()=>n.chargePointConnectedVehicleEcoChargePhases(e.chargePointId)),c=g(()=>n.chargePointConnectedVehicleEcoChargeLimit(e.chargePointId)),d=g(()=>n.chargePointConnectedVehicleEcoChargeLimitSoC(e.chargePointId)),f=g(()=>n.chargePointConnectedVehicleEcoChargeLimitEnergy(e.chargePointId)),h=g(()=>n.etProviderConfigured),m=g(()=>n.chargePointConnectedVehicleEcoChargeMaxPrice(e.chargePointId));return(p,v)=>(P(),K(Oe,null,[C(Ft,{title:"Minimaler Dauerstrom unter der Preisgrenze",min:6,max:16,step:1,unit:"A",modelValue:a.value.value,"onUpdate:modelValue":v[0]||(v[0]=b=>a.value.value=b),class:"q-mt-md"},null,8,["modelValue"]),r.value?(P(),X(Ft,{key:0,title:"Minimaler Dauerleistung unter der Preisgrenze",min:4,max:300,step:1,unit:"kW",modelValue:l.value.value,"onUpdate:modelValue":v[1]||(v[1]=b=>l.value.value=b),class:"q-mt-md"},null,8,["modelValue"])):ue("",!0),v[12]||(v[12]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Anzahl Phasen bei Überschuss",-1)),q("div",_1,[C(xn,{class:"col"},{default:A(()=>[(P(),K(Oe,null,Xe(o,b=>C(ke,{key:b.value,color:u.value.value===b.value?"primary":"grey",label:b.label,size:"sm",class:"col",onClick:_=>u.value.value=b.value},null,8,["color","label","onClick"])),64))]),_:1})]),v[13]||(v[13]=q("div",{class:"text-subtitle2 q-mt-sm q-mr-sm"},"Begrenzung",-1)),q("div",S1,[C(xn,{class:"col"},{default:A(()=>[(P(!0),K(Oe,null,Xe(i.value,b=>(P(),X(ke,{key:b.value,color:c.value.value===b.value?"primary":"grey",label:b.label,size:"sm",class:"col",onClick:_=>c.value.value=b.value},null,8,["color","label","onClick"]))),128))]),_:1})]),c.value.value==="soc"?(P(),X(Ft,{key:1,title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%",modelValue:d.value.value,"onUpdate:modelValue":v[2]||(v[2]=b=>d.value.value=b),class:"q-mt-md"},null,8,["modelValue"])):ue("",!0),c.value.value==="amount"?(P(),X(Ft,{key:2,title:"Energie-Limit",min:1,max:50,unit:"kWh",modelValue:f.value.value,"onUpdate:modelValue":v[3]||(v[3]=b=>f.value.value=b),class:"q-mt-md"},null,8,["modelValue"])):ue("",!0),h.value?(P(),K("div",k1,[v[11]||(v[11]=q("div",{class:"text-subtitle2 q-my-sm"}," Preisgrenze für strompreisbasiertes Laden ",-1)),q("div",C1,[q("div",M1,[m.value.value?(P(),X(ke,{key:0,class:"col-auto q-mr-xs",label:"-1,00",color:"grey",size:"sm",dense:"",onClick:v[4]||(v[4]=b=>m.value.value=m.value.value-1)})):ue("",!0),m.value.value?(P(),X(ke,{key:1,class:"col-auto q-mr-xs",label:"-0,10",color:"grey",size:"sm",dense:"",onClick:v[5]||(v[5]=b=>m.value.value=m.value.value-.1)})):ue("",!0),m.value.value?(P(),X(ke,{key:2,class:"col-auto",label:"-0,01",color:"grey",size:"sm",dense:"",onClick:v[6]||(v[6]=b=>m.value.value=m.value.value-.01)})):ue("",!0)]),q("div",P1,oe(m.value.value?.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})+" ct/kWh"),1),q("div",T1,[m.value.value?(P(),X(ke,{key:0,class:"col-auto q-mr-xs",label:"+0,01",color:"grey",size:"sm",dense:"",onClick:v[7]||(v[7]=b=>m.value.value=m.value.value+.01)})):ue("",!0),m.value.value?(P(),X(ke,{key:1,class:"col-auto q-mr-xs",label:"+0,10",color:"grey",size:"sm",dense:"",onClick:v[8]||(v[8]=b=>m.value.value=m.value.value+.1)})):ue("",!0),m.value.value?(P(),X(ke,{key:2,class:"col-auto",label:"+1,00",color:"grey",size:"sm",dense:"",onClick:v[9]||(v[9]=b=>m.value.value=m.value.value+1)})):ue("",!0)])]),C(hm,{filled:"",class:"q-mt-sm"},{default:A(()=>[C(w1,{modelValue:m.value.value,"onUpdate:modelValue":v[10]||(v[10]=b=>m.value.value=b)},null,8,["modelValue"])]),_:1})])):ue("",!0)],64))}}),D1={class:"column"},O1={class:"plan-name"},V1={class:"plan-details"},E1={key:0},A1={key:1},q1={key:2},L1={key:0},R1={key:1},$1=ye({__name:"ChargePointScheduledPlanButton",props:{chargePointId:{},plan:{}},setup(t){const e=t,n=Fe(),i=["Mo","Di","Mi","Do","Fr","Sa","So"],s=g(()=>n.vehicleScheduledChargingPlanActive(e.chargePointId,e.plan.id)),o=g(()=>n.vehicleScheduledChargingPlanEtActive(e.chargePointId,e.plan.id)),a=g(()=>{let l=[],u=null;return e.plan.frequency.weekly.forEach((c,d)=>{c?u===null&&(u=d):u!==null&&(u===d-1?l.push(i[u]):l.push(`${i[u]}-${i[d-1]}`),u=null)}),u!==null&&(u===e.plan.frequency.weekly.length-1?l.push(i[u]):l.push(`${i[u]}-${i[e.plan.frequency.weekly.length-1]}`)),l.join(", ")}),r=g(()=>e.plan.frequency.once===void 0?"-":new Date(e.plan.frequency.once).toLocaleDateString(void 0,{day:"2-digit",month:"2-digit",year:"numeric"}));return(l,u)=>(P(),X(ke,{"no-caps":"",align:"center",class:"cursor-pointer",color:s.value.value?"positive":"negative",onClick:u[0]||(u[0]=c=>s.value.value=!s.value.value)},{default:A(()=>[q("div",D1,[q("div",O1,oe(l.plan.name),1),q("div",V1,[q("div",null,[C(we,{name:l.plan.frequency.selected==="once"?"today":l.plan.frequency.selected==="daily"?"date_range":"calendar_month",size:"sm",title:l.plan.frequency.selected==="once"?"Einmalig":l.plan.frequency.selected==="daily"?"Täglich":"Wöchentlich"},null,8,["name","title"]),l.plan.frequency.selected==="once"?(P(),K("div",E1,oe(r.value),1)):ue("",!0),l.plan.frequency.selected==="weekly"?(P(),K("div",A1,oe(a.value),1)):ue("",!0),l.plan.frequency.selected==="daily"?(P(),K("div",q1,"täglich")):ue("",!0)]),q("div",null,[C(we,{name:"schedule",size:"sm"}),q("div",null,oe(l.plan.time),1)]),q("div",null,[C(we,{name:l.plan.limit.selected==="soc"?"battery_full":"bolt",size:"sm"},null,8,["name"]),l.plan.limit.selected==="soc"?(P(),K("div",L1,[Ve(oe(l.plan.limit.soc_scheduled)+"% ",1),C(we,{name:l.plan.bidi_charging_enabled?"sync_alt":"arrow_right_alt",size:"sm"},null,8,["name"]),Ve(" "+oe(l.plan.limit.soc_limit)+"% ",1)])):ue("",!0),l.plan.limit.selected==="amount"?(P(),K("div",R1,oe(l.plan.limit.amount?l.plan.limit.amount/1e3:"")+"kWh ",1)):ue("",!0)]),q("div",null,[o.value.value?(P(),X(we,{key:0,name:"bar_chart",size:"sm"})):ue("",!0)])])])]),_:1},8,["color"]))}}),F1=ht($1,[["__scopeId","data-v-8568cf54"]]),z1={key:0,class:"row q-mt-sm q-pa-sm bg-primary text-white no-wrap message-text",color:"primary",style:{"border-radius":"10px"}},B1={key:1},N1=ye({__name:"ChargePointScheduledSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>n.vehicleScheduledChargingPlans(e.chargePointId));return(s,o)=>(P(),K(Oe,null,[o[1]||(o[1]=q("div",{class:"row justify-between items-center"},[q("div",{class:"text-subtitle2 q-mr-sm q-mt-md"},"Termine Zielladen:")],-1)),i.value.length===0?(P(),K("div",z1,[C(we,{name:"info",size:"sm",class:"q-mr-xs"}),o[0]||(o[0]=Ve(" Keine Ladeziele festgelegt. ",-1))])):(P(),K("div",B1,[(P(!0),K(Oe,null,Xe(i.value,(a,r)=>(P(),K("div",{key:r,class:"row q-mt-sm"},[C(F1,{class:"full-width","charge-point-id":e.chargePointId,plan:a},null,8,["charge-point-id","plan"])]))),128))]))],64))}}),oa=ye({__name:"ChargePointTimeCharging",props:{chargePointId:{type:Number,required:!0},readonly:{type:Boolean,default:!1},dense:{type:Boolean,default:!1},iconSize:{type:String,default:"sm"},toolTip:{type:Boolean,default:!1}},setup(t){const e=t,n={off:"alarm_off",on:"alarm"},s=Fe().chargePointConnectedVehicleTimeCharging(e.chargePointId);return(o,a)=>e.readonly?(P(),X(we,{key:0,name:Te(s)?n.on:n.off,color:Te(s)?"primary":"",size:e.iconSize?e.iconSize:"sm"},{default:A(()=>[e.toolTip?(P(),X(Vn,{key:0},{default:A(()=>[Ve(oe(Te(s)?"Zeitladen aktiviert":"Zeitladen deaktiviert"),1)]),_:1})):ue("",!0)]),_:1},8,["name","color","size"])):(P(),X(_a,{key:1,modelValue:Te(s),"onUpdate:modelValue":a[0]||(a[0]=r=>Xr(s)?s.value=r:null),color:Te(s)?"primary":"","checked-icon":n.on,"unchecked-icon":n.off,size:"lg",dense:e.dense},null,8,["modelValue","color","checked-icon","unchecked-icon","dense"]))}}),W1={class:"column"},H1={class:"plan-name"},j1={class:"plan-details"},U1={key:0},Y1={key:1},Z1={key:2},X1={key:0},K1={key:0},Q1={key:1},G1=ye({__name:"ChargePointTimeChargingPlanButton",props:{chargePointId:{},plan:{}},setup(t){const e=t,n=Fe(),i=["Mo","Di","Mi","Do","Fr","Sa","So"],s=g(()=>n.vehicleTimeChargingPlanActive(e.chargePointId,e.plan.id)),o=g(()=>{let r=[],l=null;return e.plan.frequency.weekly.forEach((u,c)=>{u?l===null&&(l=c):l!==null&&(l===c-1?r.push(i[l]):r.push(`${i[l]}-${i[c-1]}`),l=null)}),l!==null&&(l===e.plan.frequency.weekly.length-1?r.push(i[l]):r.push(`${i[l]}-${i[e.plan.frequency.weekly.length-1]}`)),r.join(", ")}),a=g(()=>{if(e.plan.frequency.once===void 0)return"-";const r=new Date(e.plan.frequency.once[0]),l=new Date(e.plan.frequency.once[1]),u=r.getFullYear()===l.getFullYear(),c=r.getMonth()===l.getMonth()&&u;return`${r.getDay()===l.getDay()&&c?"":r.toLocaleDateString(void 0,{day:"numeric",month:c?void 0:"numeric",year:u?void 0:"numeric"})+(c?".-":"-")}${l.toLocaleDateString(void 0,{day:"numeric",month:"numeric",year:"numeric"})}`});return(r,l)=>(P(),X(ke,{"no-caps":"",align:"center",class:"cursor-pointer",color:s.value.value?"positive":"negative",onClick:l[0]||(l[0]=u=>s.value.value=!s.value.value)},{default:A(()=>[q("div",W1,[q("div",H1,oe(r.plan.name),1),q("div",j1,[q("div",null,[C(we,{name:r.plan.frequency.selected==="once"?"today":r.plan.frequency.selected==="daily"?"date_range":"calendar_month",size:"sm",title:r.plan.frequency.selected==="once"?"Einmalig":r.plan.frequency.selected==="daily"?"Täglich":"Wöchentlich"},null,8,["name","title"]),r.plan.frequency.selected==="once"?(P(),K("div",U1,oe(a.value),1)):ue("",!0),r.plan.frequency.selected==="weekly"?(P(),K("div",Y1,oe(o.value),1)):ue("",!0),r.plan.frequency.selected==="daily"?(P(),K("div",Z1,"täglich")):ue("",!0)]),q("div",null,[C(we,{name:"schedule",size:"sm"}),q("div",null,oe(r.plan.time[0])+"-"+oe(r.plan.time[1]),1)]),r.plan.limit.selected!=="none"?(P(),K("div",X1,[C(we,{name:r.plan.limit.selected==="soc"?"battery_full":"bolt",size:"sm"},null,8,["name"]),r.plan.limit.selected==="soc"?(P(),K("div",K1,oe(r.plan.limit.soc)+"%",1)):ue("",!0),r.plan.limit.selected==="amount"?(P(),K("div",Q1,oe(r.plan.limit.amount?r.plan.limit.amount/1e3:"")+"kWh ",1)):ue("",!0)])):ue("",!0)])])]),_:1},8,["color"]))}}),J1=ht(G1,[["__scopeId","data-v-139702f2"]]),eC={class:"row items-center q-ma-none q-pa-none no-wrap items-center justify-between"},tC={key:0,class:"row justify-between items-center"},nC={key:1,class:"row q-mt-sm q-pa-sm bg-primary text-white no-wrap message-text",color:"primary",style:{"border-radius":"10px"}},iC={key:2},sC=ye({__name:"ChargePointTimeChargingSettings",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),i=g(()=>n.vehicleTimeChargingPlans(e.chargePointId)),s=n.chargePointConnectedVehicleTimeCharging(e.chargePointId);return(o,a)=>(P(),K(Oe,null,[q("div",eC,[a[0]||(a[0]=q("div",{class:"text-subtitle2"},"Zeitladen",-1)),q("div",null,[C(oa,{"charge-point-id":e.chargePointId,dense:""},null,8,["charge-point-id"])])]),Te(s)?(P(),K("div",tC,a[1]||(a[1]=[q("div",{class:"text-subtitle2"},"Termine Zeitladen:",-1)]))):ue("",!0),i.value.length===0&&Te(s)?(P(),K("div",nC,[C(we,{name:"info",size:"sm",class:"q-mr-xs"}),a[2]||(a[2]=Ve(" Keine Zeitpläne vorhanden. ",-1))])):Te(s)?(P(),K("div",iC,[(P(!0),K(Oe,null,Xe(i.value,(r,l)=>(P(),K("div",{key:l,class:"row q-mt-sm"},[C(J1,{class:"full-width","charge-point-id":e.chargePointId,plan:r},null,8,["charge-point-id","plan"])]))),128))])):ue("",!0)],64))}}),oC={class:"row no-wrap"},aC=["title"],rC={class:"row items-center justify-between"},lC={class:"row items-center q-mt-sm"},uC={class:"col"},cC={class:"row items-center justify-between q-mt-sm"},dC={class:"row items-center no-wrap"},fC={key:0},hC={key:1},mC={key:2},gC={key:3},vC={key:4},pC=ye({__name:"ChargePointSettings",props:{chargePointId:{},modelValue:{type:Boolean}},emits:["update:model-value"],setup(t,{emit:e}){const n=Fe(),i=t,s=e,o=g(()=>zi.lt.sm),a=B(i.modelValue);he(()=>i.modelValue,c=>{a.value=c});const r=g({get:()=>a.value,set:c=>{a.value=c,s("update:model-value",c)}}),l=g(()=>n.chargePointName(i.chargePointId)),u=g(()=>n.chargePointConnectedVehicleChargeMode(i.chargePointId));return(c,d)=>(P(),X(Te(ns),{modelValue:r.value,"onUpdate:modelValue":d[0]||(d[0]=f=>r.value=f),maximized:o.value,"backdrop-filter":o.value?"":"blur(4px)"},{default:A(()=>[C(ss,null,{default:A(()=>[C(lt,null,{default:A(()=>[q("div",oC,[d[1]||(d[1]=q("div",{class:"text-h6 q-pr-sm"},"Einstellungen:",-1)),q("div",{class:"text-h6 ellipsis",title:l.value},oe(l.value),9,aC),C(is),sn(C(ke,{icon:"close",flat:"",round:"",dense:""},null,512),[[wn]])])]),_:1}),C(Lt),C(lt,null,{default:A(()=>[q("div",rC,[d[2]||(d[2]=q("div",{class:"text-subtitle2"},"Ladepunkt sperren",-1)),C(xm,{"charge-point-id":i.chargePointId,dense:""},null,8,["charge-point-id"])]),C(Lt,{class:"q-mt-sm"}),q("div",lC,[d[3]||(d[3]=q("div",{class:"col-auto text-subtitle2 q-mr-sm"},"Fahrzeug",-1)),q("div",uC,[C(Sm,{class:"full-width","charge-point-id":i.chargePointId,readonly:!1},null,8,["charge-point-id"])])]),q("div",cC,[d[4]||(d[4]=q("div",{class:"text-subtitle2"},"Priorität",-1)),C(wm,{"charge-point-id":i.chargePointId,readonly:!1,dense:""},null,8,["charge-point-id"])]),C(Lt,{class:"q-mt-sm"}),q("div",dC,[C(_m,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])]),u.value.value==="instant_charging"?(P(),K("div",fC,[C($S,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):ue("",!0),u.value.value==="pv_charging"?(P(),K("div",hC,[C(jS,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):ue("",!0),u.value.value==="eco_charging"?(P(),K("div",mC,[C(I1,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):ue("",!0),u.value.value==="scheduled_charging"?(P(),K("div",gC,[C(N1,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):ue("",!0),u.value.value!=="stop"?(P(),K("div",vC,[C(Lt,{class:"q-my-sm"}),C(sC,{"charge-point-id":i.chargePointId},null,8,["charge-point-id"])])):ue("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue","maximized","backdrop-filter"]))}}),bC={class:"row"},yC={class:"text-h6 q-mr-md"},xC={class:"row justify-center items-center"},wC={class:"col-6"},_C={class:"row justify-center items-center q-mt-md"},SC={class:"col q-px-md"},Zm=ye({__name:"ManualSocDialog",props:{vehicleId:{},chargePointId:{},socDialogVisible:{type:Boolean}},emits:["update:socDialogVisible"],setup(t,{emit:e}){const n=Fe(),i=t,s=e,o=g(()=>n.vehicleList.find(h=>h.id===i.vehicleId)?.name||""),a=g({get:()=>i.socDialogVisible,set:f=>{s("update:socDialogVisible",f)}}),r=B(void 0),l=g({get:()=>r.value??n.vehicleSocManualValue(i.vehicleId,i.chargePointId).value??0,set:f=>{r.value=Math.min(Math.max(0,f),100)}}),u={0:"0%",50:"50%",100:"100%"},c=()=>{n.vehicleSocManualValue(i.vehicleId,i.chargePointId).value=l.value},d=()=>{r.value=void 0};return(f,h)=>(P(),X(ns,{modelValue:a.value,"onUpdate:modelValue":h[4]||(h[4]=m=>a.value=m)},{default:A(()=>[C(ss,null,{default:A(()=>[C(lt,null,{default:A(()=>[q("div",bC,[q("div",yC,"SoC-Eingabe "+oe(o.value),1),C(is),sn(C(ke,{icon:"close",flat:"",round:"",dense:""},null,512),[[wn]])])]),_:1}),C(lt,{class:"q-py-none"},{default:A(()=>[q("div",xC,[q("div",wC,[C(rm,{modelValue:l.value,"onUpdate:modelValue":h[2]||(h[2]=m=>l.value=m),modelModifiers:{number:!0},type:"text",inputmode:"numeric",suffix:"%","hide-spinner":"","input-class":"text-right"},{prepend:A(()=>[C(ke,{round:"",flat:"",dense:"",icon:"remove",onClick:h[0]||(h[0]=m=>l.value--)})]),append:A(()=>[C(ke,{round:"",flat:"",dense:"",icon:"add",onClick:h[1]||(h[1]=m=>l.value++)})]),_:1},8,["modelValue"])])]),q("div",_C,[q("div",SC,[C(na,{modelValue:l.value,"onUpdate:modelValue":h[3]||(h[3]=m=>l.value=m),modelModifiers:{number:!0},min:0,max:100,step:1,markers:10,"marker-labels":u,color:"primary"},null,8,["modelValue"])])])]),_:1}),C(Ml,{align:"center",class:"q-mt-md"},{default:A(()=>[sn(C(ke,{label:"Abbrechen",color:"negative",onClick:d},null,512),[[wn]]),sn(C(ke,{label:"Bestätigen",color:"primary",onClick:c},null,512),[[wn]])]),_:1})]),_:1})]),_:1},8,["modelValue"]))}}),kC=["top","middle","bottom"],CC=Be({name:"QBadge",props:{color:String,textColor:String,floating:Boolean,transparent:Boolean,multiLine:Boolean,outline:Boolean,rounded:Boolean,label:[Number,String],align:{type:String,validator:t=>kC.includes(t)}},setup(t,{slots:e}){const n=g(()=>t.align!==void 0?{verticalAlign:t.align}:null),i=g(()=>{const s=t.outline===!0&&t.color||t.textColor;return`q-badge flex inline items-center no-wrap q-badge--${t.multiLine===!0?"multi":"single"}-line`+(t.outline===!0?" q-badge--outline":t.color!==void 0?` bg-${t.color}`:"")+(s!==void 0?` text-${s}`:"")+(t.floating===!0?" q-badge--floating":"")+(t.rounded===!0?" q-badge--rounded":"")+(t.transparent===!0?" q-badge--transparent":"")});return()=>S("div",{class:i.value,style:n.value,role:"status","aria-label":t.label},mi(e.default,t.label!==void 0?[t.label]:[]))}}),Xm=ye({__name:"ChargePointPowerData",props:{power:{},phaseNumber:{},current:{},columnDisplayFormat:{type:Boolean}},setup(t){return(e,n)=>(P(),K("div",{class:Re(["text-no-wrap items-center",e.columnDisplayFormat?"column":"row inline no-wrap"])},[q("span",null,oe(e.power),1),q("div",{class:Re({"q-ml-xs":!e.columnDisplayFormat})},[C(CC,{rounded:"",color:"primary",label:e.phaseNumber,class:"q-mr-xs"},{default:A(()=>[C(Vn,null,{default:A(()=>n[0]||(n[0]=[Ve("Phasenanzahl",-1)])),_:1,__:[0]})]),_:1},8,["label"]),q("span",null,oe(e.current),1)],2)],2))}}),MC=["title"],PC={class:"col"},TC={class:"col no-wrap"},IC={class:"col text-right"},DC=ye({__name:"ChargePointCard",props:{chargePointId:{},closeButton:{type:Boolean},fullHeight:{type:Boolean}},setup(t){const e=B(null),n=Fe(),i=gi(),s=t,o=g(()=>n.chargePointConnectedVehicleInfo(s.chargePointId).value?.id),a=g(()=>{switch(v.value){case"instant_charging":return n.chargePointConnectedVehicleInstantChargeLimit(s.chargePointId).value;case"pv_charging":return n.chargePointConnectedVehiclePvChargeLimit(s.chargePointId).value;case"eco_charging":return n.chargePointConnectedVehicleEcoChargeLimit(s.chargePointId).value;case"scheduled_charging":return y.value.limit_mode;default:return"soc"}}),r=B(!1),l=B(!1),u=()=>{l.value=!0},c=g(()=>n.chargePointName(s.chargePointId)),d=g(()=>n.chargePointPower(s.chargePointId)),f=g(()=>n.chargePointEnergyChargedPlugged(s.chargePointId)),h=g(()=>n.chargePointPhaseNumber(s.chargePointId)),m=g(()=>n.chargePointChargingCurrent(s.chargePointId)),p=g(()=>a.value==="amount"?n.chargePointEnergyChargedPlugged(s.chargePointId,"value"):Math.round(n.chargePointConnectedVehicleSoc(s.chargePointId).value?.soc??0)),v=g(()=>n.chargePointConnectedVehicleChargeMode(s.chargePointId).value),b=g(()=>{switch(v.value){case"scheduled_charging":return y.value.limit;case"instant_charging":switch(n.chargePointConnectedVehicleInstantChargeLimit(s.chargePointId).value){case"soc":return n.chargePointConnectedVehicleInstantChargeLimitSoC(s.chargePointId).value??0;case"amount":return(n.chargePointConnectedVehicleInstantChargeLimitEnergy(s.chargePointId).value??0)*1e3}case"pv_charging":switch(n.chargePointConnectedVehiclePvChargeLimit(s.chargePointId).value){case"soc":return n.chargePointConnectedVehiclePvChargeLimitSoC(s.chargePointId).value??0;case"amount":return(n.chargePointConnectedVehiclePvChargeLimitEnergy(s.chargePointId).value??0)*1e3}case"eco_charging":switch(n.chargePointConnectedVehicleEcoChargeLimit(s.chargePointId).value){case"soc":return n.chargePointConnectedVehicleEcoChargeLimitSoC(s.chargePointId).value??0;case"amount":return(n.chargePointConnectedVehicleEcoChargeLimitEnergy(s.chargePointId).value??0)*1e3}default:return}}),_=g(()=>!!(b.value&&b.value>999||w.value)),y=g(()=>n.vehicleChargeTarget(s.chargePointId).value),w=g(()=>n.chargePointConnectedVehicleSocType(s.chargePointId))?.value,x=()=>{n.chargePointConnectedVehicleForceSocUpdate(s.chargePointId),i.notify({type:"positive",message:"SoC Update angefordert."})};return(M,E)=>(P(),X(ss,{ref_key:"cardRef",ref:e,class:Re(["card-width",{"full-height":s.fullHeight}])},{default:A(()=>[C(lt,{class:"row no-wrap"},{default:A(()=>[q("div",{class:"text-h6 text-bold ellipsis",title:c.value},oe(c.value),9,MC),C(is),s.closeButton?sn((P(),X(ke,{key:0,icon:"close",flat:"",round:"",dense:""},null,512)),[[wn]]):ue("",!0)]),_:1}),C(Lt,{class:"q-mt-sm"}),C(lt,{class:"row flex items-center justify-between"},{default:A(()=>[q("div",null,[C(ia,{"charge-point-id":Number(s.chargePointId)},null,8,["charge-point-id"]),C(oa,{"charge-point-id":Number(s.chargePointId),readonly:!0,iconSize:"xs",toolTip:!0},null,8,["charge-point-id"]),C(xm,{"charge-point-id":s.chargePointId},null,8,["charge-point-id"])]),C(we,{class:"cursor-pointer",name:"settings",size:"sm",onClick:E[0]||(E[0]=L=>r.value=!0)})]),_:1}),C(lt,null,{default:A(()=>[C(id,{"fault-message":"","charge-point-id":s.chargePointId},null,8,["charge-point-id"]),C(id,{"charge-point-id":s.chargePointId},null,8,["charge-point-id"])]),_:1}),C(lt,{class:"full-width row no-wrap justify-between content-start items-center q-mt-sm"},{default:A(()=>[C(Sm,{class:"col","charge-point-id":Number(s.chargePointId)},null,8,["charge-point-id"]),C(wm,{class:"col-auto","charge-point-id":s.chargePointId},null,8,["charge-point-id"])]),_:1}),C(lt,null,{default:A(()=>[C(_m,{"charge-point-id":s.chargePointId},null,8,["charge-point-id"])]),_:1}),C(lt,{class:"row q-mt-sm"},{default:A(()=>[q("div",PC,[E[3]||(E[3]=q("div",{class:"text-subtitle2"},"Leistung",-1)),q("div",TC,[C(Xm,{power:d.value,"phase-number":h.value,current:m.value},null,8,["power","phase-number","current"])])]),q("div",IC,[E[4]||(E[4]=q("div",{class:"text-subtitle2"},"geladen",-1)),Ve(" "+oe(f.value),1)])]),_:1}),C(lt,null,{default:A(()=>[_.value?(P(),X(Pl,{key:0,class:"q-mt-sm","model-value":b.value,readonly:!0,"charge-mode":v.value,"limit-mode":a.value,"current-value":p.value,"target-time":y.value.time,"vehicle-soc-type":Te(w),"on-edit-soc":u,"on-refresh-soc":x},null,8,["model-value","charge-mode","limit-mode","current-value","target-time","vehicle-soc-type"])):ue("",!0)]),_:1}),M.$slots["card-actions"]?(P(),X(Ml,{key:0,align:"right"},{default:A(()=>[Vi(M.$slots,"card-actions",{},void 0,!0)]),_:3})):ue("",!0),C(pC,{chargePointId:s.chargePointId,modelValue:r.value,"onUpdate:modelValue":E[1]||(E[1]=L=>r.value=L)},null,8,["chargePointId","modelValue"]),C(Zm,{vehicleId:o.value,chargePointId:s.chargePointId,socDialogVisible:l.value,"onUpdate:socDialogVisible":E[2]||(E[2]=L=>l.value=L)},null,8,["vehicleId","chargePointId","socDialogVisible"])]),_:3},8,["class"]))}}),kd=ht(DC,[["__scopeId","data-v-733d1f13"]]),Cd=ye({__name:"ChargePointMode",props:{chargePointId:{}},setup(t){const e=t,n=Fe(),{chargeModes:i}=wl(),s=g(()=>n.chargePointConnectedVehicleChargeMode(e.chargePointId)),o=g(()=>i.find(r=>r.value===s.value.value)?.label),a=g(()=>i.find(r=>r.value===s.value.value)?.color);return(r,l)=>(P(),X(ta,{outline:"",size:"sm",color:a.value},{default:A(()=>[Ve(oe(o.value),1)]),_:1},8,["color"]))}}),OC=["title"],VC=["title"],EC=["title"],AC=["title"],qC={class:"items-center"},LC={class:"q-pa-xs column q-gutter-y-xs"},RC={class:"col-5 text-caption text-bold"},$C={class:"col-7 text-right"},FC=ye({__name:"ChargePointInformation",setup(t){const e=Fe(),{chargeModes:n}=wl(),i=g(()=>e.chargePointIds),s=g(()=>e.themeConfiguration?.chargePoint_card_view_breakpoint||4),o=g(()=>e.themeConfiguration?.chargePoint_table_search_input_field),a=g(()=>zi.lt.sm),r=g(()=>zi.lt.md),l=B(null),u=B(!1),c=B(""),d=g(()=>b=>{const _=e.chargePointName(b),y=e.chargePointConnectedVehicleInfo(b).value?.name||"Kein Fahrzeug",w=e.chargePointPlugState(b),x=e.chargePointConnectedVehicleChargeMode(b).value,M=n.find(U=>U.value===x),E=M?M.label:x,L=e.chargePointConnectedVehicleSoc(b).value?.soc,O=L!==void 0?`${Math.round(L)}%`:"0%",D=e.chargePointPower(b),R=e.chargePointEnergyChargedPlugged(b),T=e.chargePointConnectedVehicleTimeCharging(b).value,j=e.chargePointPhaseNumber(b),F=e.chargePointChargingCurrent(b);return{id:b,name:_,vehicle:y,plugged:w,chargeMode:E,timeCharging:T,soc:O,power:D,phaseNumber:j,current:F,powerColumn:"",charged:R}}),f=[{field:"name",label:"Ladepunkt"},{field:"vehicle",label:"Fahrzeug"},{field:"plugged",label:"Status",align:"center"},{field:"chargeMode",label:"Lademodus"},{field:"timeCharging",label:"Zeitladen",align:"center"},{field:"powerColumn",label:"Leistung",align:"right"},{field:"charged",label:"Geladen",align:"right"},{field:"soc",label:"Ladestand",align:"right"}],h=[{field:"nameAndVehicle",label:"Ladepunkt"},{field:"modePluggedTimeCharging",label:"Lademodus",align:"center"},{field:"powerColumn",label:"Leistung",align:"center"},{field:"charged",label:"Geladen",align:"right",expandField:!0},{field:"soc",label:"Ladestand",align:"right",expandField:!0}],m=h.filter(b=>!b.expandField),p=h.filter(b=>b.expandField),v=b=>{l.value=b.id,u.value=!0};return(b,_)=>(P(),K(Oe,null,[i.value.length<=s.value?(P(),X(_l,{key:0,items:i.value},{item:A(({item:y})=>[C(kd,{"charge-point-id":y,"full-height":""},null,8,["charge-point-id"])]),_:1},8,["items"])):(P(),X(bm,{key:1,items:i.value,"row-data":d.value,"column-config":r.value?Te(m):f,dense:r.value,square:r.value,"search-input-visible":o.value,"table-height":r.value?"35vh":"45vh",filter:c.value,"onUpdate:filter":_[0]||(_[0]=y=>c.value=y),"columns-to-search":["vehicle","name"],"row-expandable":r.value,onRowClick:v},{"body-cell-name":A(y=>[C(_t,{class:Re([`text-${y.col.align}`,"max-width-0"])},{default:A(()=>[q("div",{class:"ellipsis",title:y.row.name},oe(y.row.name),9,OC)]),_:2},1032,["class"])]),"body-cell-vehicle":A(y=>[C(_t,{class:Re([`text-${y.col.align}`,"max-width-0"])},{default:A(()=>[q("div",{class:"ellipsis",title:y.row.vehicle},oe(y.row.vehicle),9,VC)]),_:2},1032,["class"])]),"body-cell-plugged":A(y=>[C(_t,{"auto-width":"",class:Re(`text-${y.col.align}`)},{default:A(()=>[C(ia,{"charge-point-id":y.row.id},null,8,["charge-point-id"])]),_:2},1032,["class"])]),"body-cell-chargeMode":A(y=>[C(_t,{"auto-width":"",class:Re(`text-${y.col.align}`)},{default:A(()=>[C(Cd,{"charge-point-id":y.row.id},null,8,["charge-point-id"])]),_:2},1032,["class"])]),"body-cell-timeCharging":A(y=>[C(_t,{"auto-width":"",class:Re(`text-${y.col.align}`)},{default:A(()=>[C(oa,{"charge-point-id":y.row.id,readonly:!0,toolTip:!0,"icon-size":"xs"},null,8,["charge-point-id"])]),_:2},1032,["class"])]),"body-cell-powerColumn":A(y=>[C(_t,{"auto-width":"",class:Re(`text-${y.col.align}`)},{default:A(()=>[C(Xm,{power:y.row.power,"phase-number":y.row.phaseNumber,current:y.row.current,"column-display-format":a.value},null,8,["power","phase-number","current","column-display-format"])]),_:2},1032,["class"])]),"body-cell-charged":A(y=>[C(_t,{"auto-width":"",class:Re(`text-${y.col.align}`)},{default:A(()=>[Ve(oe(y.row.charged),1)]),_:2},1032,["class"])]),"body-cell-soc":A(y=>[C(_t,{"auto-width":"",class:Re(`text-${y.col.align}`)},{default:A(()=>[Ve(oe(y.row.soc),1)]),_:2},1032,["class"])]),"body-cell-nameAndVehicle":A(y=>[C(_t,{class:Re([`text-${y.col.align}`,"max-width-0"])},{default:A(()=>[q("div",{class:"ellipsis",title:y.row.name},oe(y.row.name),9,EC),q("div",{class:"ellipsis text-caption",title:y.row.vehicle},oe(y.row.vehicle),9,AC)]),_:2},1032,["class"])]),"body-cell-modePluggedTimeCharging":A(y=>[C(_t,{"auto-width":"",class:Re(`text-${y.col.align}`)},{default:A(()=>[q("div",qC,[C(Cd,{"charge-point-id":y.row.id},null,8,["charge-point-id"]),C(ia,{"charge-point-id":y.row.id},null,8,["charge-point-id"]),C(oa,{"charge-point-id":y.row.id,readonly:!0,toolTip:!0,"icon-size":"xs"},null,8,["charge-point-id"])])]),_:2},1032,["class"])]),"row-expand":A(y=>[q("div",LC,[(P(!0),K(Oe,null,Xe(Te(p),w=>(P(),K("div",{key:w.field,class:"row items-start"},[q("div",RC,oe(w.label)+":",1),q("div",$C,oe(y.row[w.field]),1)]))),128))])]),_:1},8,["items","row-data","column-config","dense","square","search-input-visible","table-height","filter","row-expandable"])),C(ns,{modelValue:u.value,"onUpdate:modelValue":_[1]||(_[1]=y=>u.value=y),"transition-show":"fade","transition-hide":"fade",maximized:a.value,"full-height":a.value,"full-width":a.value,"backdrop-filter":b.$q.screen.width<385?"":"blur(4px)"},{default:A(()=>[l.value!==null?(P(),X(kd,{key:0,"charge-point-id":l.value,"close-button":!0},null,8,["charge-point-id"])):ue("",!0)]),_:1},8,["modelValue","maximized","full-height","full-width","backdrop-filter"])],64))}}),zC=ht(FC,[["__scopeId","data-v-66f9059a"]]),Km=()=>({batteryModes:[{value:"ev_mode",label:"Fahrzeuge",color:"primary",icon:"directions_car",tooltip:"Fahrzeuge"},{value:"bat_mode",label:"Speicher",color:"primary",icon:"battery_charging_full",tooltip:"Speicher"},{value:"min_soc_bat_mode",label:"Mindest-SoC",color:"primary",icon:"battery_4_bar",tooltip:"Mindest-SoC des Speichers"}]}),BC=ye({__name:"BatteryModeButtons",setup(t){const e=Fe(),{batteryModes:n}=Km(),i=g(()=>e.batteryMode());return(s,o)=>(P(),X(xn,{class:"q-mt-md"},{default:A(()=>[(P(!0),K(Oe,null,Xe(Te(n),a=>(P(),X(ke,{key:a.value,color:i.value.value===a.value?"primary":"grey",label:a.label,icon:a.icon,size:"sm",onClick:r=>i.value.value=a.value},{default:A(()=>[C(Vn,{class:"bg-primary"},{default:A(()=>[Ve(oe(a.tooltip),1)]),_:2},1024)]),_:2},1032,["color","label","icon","onClick"]))),128))]),_:1}))}}),NC={class:"row no-wrap"},WC=["title"],HC=ye({__name:"BatterySettingsDialog",props:{batteryId:{}},setup(t,{expose:e}){const n=B(!1),i=t,s=Fe(),o=g(()=>zi.lt.sm),a=g(()=>i.batteryId===void 0||i.batteryId===-1?"Übergreifend":s.batteryName(i.batteryId));return e({open:()=>n.value=!0}),(r,l)=>(P(),X(ns,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=u=>n.value=u),maximized:o.value,"backdrop-filter":o.value?"":"blur(4px)"},{default:A(()=>[C(ss,null,{default:A(()=>[C(lt,null,{default:A(()=>[q("div",NC,[l[1]||(l[1]=q("div",{class:"text-h6 q-pr-sm"},"Einstellungen:",-1)),q("div",{class:"text-h6 ellipsis",title:a.value},oe(a.value),9,WC),C(is),sn(C(ke,{icon:"close",flat:"",round:"",dense:""},null,512),[[wn]])])]),_:1}),C(Lt),C(lt,null,{default:A(()=>[l[2]||(l[2]=q("div",{class:"text-subtitle2"},"Laden mit Überschuss Modus:",-1)),C(BC)]),_:1,__:[2]})]),_:1})]),_:1},8,["modelValue","maximized","backdrop-filter"]))}}),jC=["title"],UC={class:"q-ml-sm"},YC={key:0},ZC={class:"q-ml-sm row items-center"},XC={class:"row q-mt-sm text-subtitle2 justify-between full-width"},KC={class:"q-ml-sm"},QC={class:"row q-mt-sm text-subtitle2 justify-between full-width"},GC={class:"q-ml-sm"},JC=ye({__name:"BatteryCard",props:{batteryId:{},fullHeight:{type:Boolean}},setup(t){const e=B(null),n=t,i=g(()=>u.batteryIds.length===1),s=g(()=>a.value||i.value),{batteryModes:o}=Km(),a=g(()=>n.batteryId===-1),r=g(()=>{const p=u.batteryMode();return o.find(v=>v.value===p.value)||o[0]}),l=B(),u=Fe(),c=g(()=>a.value?"Speicher Übersicht":u.batteryName(n.batteryId)),d=g(()=>a.value?u.batterySocTotal:u.batterySoc(n.batteryId)),f=g(()=>a.value?u.batteryTotalPower("textValue"):u.batteryPower(n.batteryId,"textValue")),h=g(()=>a.value?u.batteryDailyImportedTotal("textValue"):u.batteryDailyImported(n.batteryId,"textValue")||"---"),m=g(()=>a.value?u.batteryDailyExportedTotal("textValue"):u.batteryDailyExported(n.batteryId,"textValue")||"---");return(p,v)=>(P(),K(Oe,null,[C(ss,{ref_key:"cardRef",ref:e,class:Re(["card-width",{"battery-sum":n.batteryId===-1,"full-height":n.fullHeight}])},{default:A(()=>[C(lt,{class:"row no-wrap items-center justify-between"},{default:A(()=>[q("div",{class:"text-h6 text-bold ellipsis",title:c.value},oe(c.value),9,jC),C(is),s.value?(P(),X(ke,{key:0,icon:"settings",flat:"",round:"",dense:"",onClick:v[0]||(v[0]=b=>l.value?.open())})):ue("",!0)]),_:1}),C(Lt,{class:"q-mt-sm"}),C(lt,{class:"row q-mt-sm text-subtitle2 justify-between full-width"},{default:A(()=>[v[1]||(v[1]=q("div",null,"Leistung:",-1)),q("div",UC,oe(f.value),1)]),_:1,__:[1]}),s.value?(P(),K("div",YC,[C(Lt,{inset:"",class:"q-mt-sm"}),s.value?(P(),X(lt,{key:0,class:"row q-mt-md justify-between text-subtitle2"},{default:A(()=>[v[2]||(v[2]=q("div",null,"Laden mit Überschuss:",-1)),q("div",ZC,[C(we,{name:r.value.icon,size:"sm",class:"q-mr-sm",color:"primary"},null,8,["name"]),q("div",null,oe(r.value.label),1)])]),_:1,__:[2]})):ue("",!0)])):ue("",!0),C(Lt,{inset:""}),C(lt,null,{default:A(()=>[v[5]||(v[5]=q("div",{class:"text-subtitle1 text-weight-bold q-mt-sm"},"Heute:",-1)),q("div",XC,[v[3]||(v[3]=q("div",null,"Geladen:",-1)),q("div",KC,oe(h.value),1)]),q("div",QC,[v[4]||(v[4]=q("div",null,"Entladen:",-1)),q("div",GC,oe(m.value),1)])]),_:1,__:[5]}),C(Lt,{inset:"",class:"q-mt-sm"}),C(lt,null,{default:A(()=>[C(Pl,{"current-value":d.value,readonly:!0,"limit-mode":"none"},null,8,["current-value"])]),_:1})]),_:1},8,["class"]),C(HC,{"battery-id":n.batteryId,ref_key:"dialog",ref:l},null,8,["battery-id"])],64))}}),eM=ht(JC,[["__scopeId","data-v-1fa8d17b"]]),tM=ye({__name:"BatteryInformation",setup(t){const e=Fe(),n=g(()=>{let i=e.batteryIds;return i.length>1?[-1].concat(i):i});return(i,s)=>(P(),X(_l,{items:n.value},{item:A(({item:o})=>[C(eM,{"battery-id":o,"full-height":""},null,8,["battery-id"])]),_:1},8,["items"]))}}),nM={class:"row items-center"},Qm=ye({__name:"VehicleConnectionStateIcon",props:{vehicleId:{}},setup(t){const e=t,n=Fe(),i=g(()=>n.vehicleConnectionState(e.vehicleId));return(s,o)=>(P(),K("div",nM,[o[0]||(o[0]=q("div",{class:"text-subtitle2 q-mr-sm"},"Status:",-1)),i.value.length<1?(P(),X(ta,{key:0,label:"Nicht zugeordnet",color:"primary",class:"q-ml-auto"})):ue("",!0),(P(!0),K(Oe,null,Xe(i.value,(a,r)=>(P(),X(ta,{key:r,icon:a.plugged?"power":"power_off",class:Re(["ellipsis",[{"q-ml-auto":r===0,"q-ml-none":r!==0}]]),color:a.plugged?a.charging?"positive":"warning":"negative",label:a.name},{default:A(()=>[C(Vn,null,{default:A(()=>[Ve(oe(a.plugged?a.charging?"Lädt":"Angesteckt, lädt nicht":"Nicht angesteckt"),1)]),_:2},1024)]),_:2},1032,["icon","class","color","label"]))),128))]))}}),iM=["title"],sM={class:"col"},oM={class:"col q-pl-sm"},aM={key:0},rM=ye({__name:"VehicleCard",props:{vehicleId:{},closeButton:{type:Boolean},fullHeight:{type:Boolean}},setup(t){const e=B(null),n=t,i=Fe(),s=gi(),o=B(!1),a=()=>{o.value=!0},r=g(()=>i.vehicleList.find(f=>f.id===n.vehicleId)),l=g(()=>i.vehicleInfo(n.vehicleId)),u=g(()=>i.vehicleSocType(n.vehicleId)),c=g(()=>i.vehicleSocValue(n.vehicleId)||0),d=()=>{i.vehicleForceSocUpdate(n.vehicleId),s.notify({type:"positive",message:"SoC Update angefordert."})};return(f,h)=>(P(),X(ss,{ref_key:"cardRef",ref:e,class:Re(["card-width",{"full-height":n.fullHeight}])},{default:A(()=>[C(lt,{class:"row no-wrap"},{default:A(()=>[q("div",{class:"text-h6 text-bold ellipsis",title:r.value?.name},oe(r.value?.name),9,iM),C(is),n.closeButton?sn((P(),X(ke,{key:0,icon:"close",flat:"",round:"",dense:""},null,512)),[[wn]]):ue("",!0)]),_:1}),C(Lt,{class:"q-mt-sm"}),C(lt,{class:"row q-mt-sm"},{default:A(()=>[q("div",sM,[h[1]||(h[1]=q("div",{class:"text-subtitle2"},"Hersteller:",-1)),Ve(" "+oe(l.value?.manufacturer||"keine Angabe"),1)]),q("div",oM,[h[2]||(h[2]=q("div",{class:"text-subtitle2"},"Modell:",-1)),Ve(" "+oe(l.value?.model||"keine Angabe"),1)])]),_:1}),C(Lt,{inset:"",class:"q-mt-sm"}),C(lt,null,{default:A(()=>[C(Qm,{"vehicle-id":f.vehicleId,class:"q-mt-sm"},null,8,["vehicle-id"])]),_:1}),u.value?(P(),K("div",aM,[C(Lt,{inset:"",class:"q-mt-sm"}),C(lt,null,{default:A(()=>[u.value?(P(),X(Pl,{key:0,"current-value":c.value,readonly:!0,"limit-mode":"none","vehicle-soc-type":u.value,"on-edit-soc":a,"on-refresh-soc":d},null,8,["current-value","vehicle-soc-type"])):ue("",!0)]),_:1})])):ue("",!0),f.$slots["card-actions"]?(P(),X(Ml,{key:1,align:"right"},{default:A(()=>[Vi(f.$slots,"card-actions",{},void 0,!0)]),_:3})):ue("",!0),C(Zm,{vehicleId:n.vehicleId,socDialogVisible:o.value,"onUpdate:socDialogVisible":h[0]||(h[0]=m=>o.value=m)},null,8,["vehicleId","socDialogVisible"])]),_:3},8,["class"]))}}),Md=ht(rM,[["__scopeId","data-v-d1390425"]]),lM=["title"],uM={class:"dialog-content"},cM=ye({__name:"VehicleInformation",setup(t){const e=Fe(),n=g(()=>zi.lt.md),i=B(!1),s=B(null),o=B(""),a=g(()=>e.themeConfiguration?.vehicle_table_search_input_field),r=g(()=>e.themeConfiguration?.vehicle_card_view_breakpoint||4),l=g(()=>e.vehicleList),u=g(()=>l.value.map(m=>m.id)),c=g(()=>m=>{const v=e.vehicleList.find(O=>O.id===m)?.name||"keine Angabe",b=e.vehicleConnectionState(m),_=b.some(O=>O.plugged),y=b.some(O=>O.charging),w=e.vehicleInfo(m),x=w?.manufacturer||"keine Angabe",M=w?.model||"keine Angabe",E=e.vehicleSocValue(m),L=E!==void 0?`${Math.round(E)}%`:"–";return{id:m,name:v,manufacturer:x,model:M,plugState:_,chargeState:y,vehicleSocValue:L}}),d=[{field:"name",label:"Fahrzeug"},{field:"manufacturer",label:"Hersteller"},{field:"model",label:"Modell"},{field:"plugged",label:"Status",align:"center"},{field:"vehicleSocValue",label:"Ladestand",align:"right"}],f=[{field:"name",label:"Fahrzeug"},{field:"plugged",label:"Status",align:"center"},{field:"vehicleSocValue",label:"Ladestand",align:"right"}],h=m=>{s.value=m.id,i.value=!0};return(m,p)=>(P(),K(Oe,null,[u.value.length<=r.value?(P(),X(_l,{key:0,items:u.value},{item:A(({item:v})=>[C(Md,{"vehicle-id":v,"full-height":""},null,8,["vehicle-id"])]),_:1},8,["items"])):(P(),X(bm,{key:1,items:u.value,"row-data":c.value,"column-config":n.value?f:d,dense:n.value,square:n.value,"search-input-visible":a.value,"table-height":n.value?"35vh":"45vh",filter:o.value,"onUpdate:filter":p[0]||(p[0]=v=>o.value=v),"columns-to-search":["name","manufacturer","model"],"row-expandable":!0,onRowClick:h},{"row-expand":A(v=>[C(Qm,{"vehicle-id":v.row.id},null,8,["vehicle-id"])]),"body-cell-name":A(v=>[C(_t,{class:Re([`text-${v.col.align}`,"max-width-0"])},{default:A(()=>[q("div",{class:"ellipsis",title:v.row.name},oe(v.row.name),9,lM)]),_:2},1032,["class"])]),"body-cell-manufacturer":A(v=>[C(_t,{"auto-width":"",class:Re(`text-${v.col.align}`)},{default:A(()=>[Ve(oe(v.row.manufacturer),1)]),_:2},1032,["class"])]),"body-cell-model":A(v=>[C(_t,{"auto-width":"",class:Re(`text-${v.col.align}`)},{default:A(()=>[Ve(oe(v.row.model),1)]),_:2},1032,["class"])]),"body-cell-plugged":A(v=>[C(_t,{"auto-width":"",class:Re(`text-${v.col.align}`)},{default:A(()=>[C(ia,{"vehicle-id":v.row.id},null,8,["vehicle-id"])]),_:2},1032,["class"])]),"body-cell-vehicleSocValue":A(v=>[C(_t,{"auto-width":"",class:Re(`text-${v.col.align}`)},{default:A(()=>[Ve(oe(v.row.vehicleSocValue),1)]),_:2},1032,["class"])]),_:1},8,["items","row-data","column-config","dense","square","search-input-visible","table-height","filter"])),C(ns,{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=v=>i.value=v),"transition-show":"fade","transition-hide":"fade","backdrop-filter":m.$q.screen.width<385?"":"blur(4px)"},{default:A(()=>[q("div",uM,[s.value!==null?(P(),X(Md,{key:0,"vehicle-id":s.value,closeButton:""},null,8,["vehicle-id"])):ue("",!0)])]),_:1},8,["modelValue","backdrop-filter"])],64))}}),dM=ht(cM,[["__scopeId","data-v-c2e6a5f0"]]),fM={class:"row justify-center full-width chart-section"},hM={class:"tab-section"},mM=ye({name:"IndexPage",__name:"IndexPage",setup(t){const e=B("charge-points"),n=Fe(),i=g(()=>n.batteryConfigured);return(s,o)=>(P(),X(tv,{class:"column"},{default:A(()=>[q("div",fM,[C(f_)]),q("div",hM,[C(Kg,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=a=>e.value=a),dense:"",class:"q-tabs__content--align-justify"},{default:A(()=>[C(Fa,{name:"charge-points",title:"Ladepunkte"},{default:A(()=>[C(we,{name:"ev_station",size:"md",color:"primary"})]),_:1}),C(Fa,{name:"vehicles",title:"Fahrzeuge"},{default:A(()=>[C(we,{name:"directions_car",size:"md",color:"primary"})]),_:1}),i.value?(P(),X(Fa,{key:0,name:"batteries",title:"Speicher"},{default:A(()=>[C(we,{name:"battery_full",size:"md",color:"primary"})]),_:1})):ue("",!0)]),_:1},8,["modelValue"]),C(ev,{modelValue:e.value,"onUpdate:modelValue":o[1]||(o[1]=a=>e.value=a),class:"col column"},{default:A(()=>[C(za,{name:"charge-points",class:"column"},{default:A(()=>[C(zC)]),_:1}),C(za,{name:"vehicles",class:"column"},{default:A(()=>[C(dM)]),_:1}),i.value?(P(),X(za,{key:0,name:"batteries",class:"column"},{default:A(()=>[C(tM)]),_:1})):ue("",!0)]),_:1},8,["modelValue"])])]),_:1}))}}),xM=ht(mM,[["__scopeId","data-v-a07e6bc2"]]);export{xM as default}; diff --git a/packages/modules/web_themes/koala/web/assets/IndexPage-BWGv4ucT.css b/packages/modules/web_themes/koala/web/assets/IndexPage-xATA1vTl.css similarity index 94% rename from packages/modules/web_themes/koala/web/assets/IndexPage-BWGv4ucT.css rename to packages/modules/web_themes/koala/web/assets/IndexPage-xATA1vTl.css index 74d9c0db76..8fde0ac3ae 100644 --- a/packages/modules/web_themes/koala/web/assets/IndexPage-BWGv4ucT.css +++ b/packages/modules/web_themes/koala/web/assets/IndexPage-xATA1vTl.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-c893cfc4]{width:100%;height:100%;display:flex;flex-direction:column}.legend-wrapper[data-v-c893cfc4]{flex:0 0 auto}.chart-wrapper[data-v-c893cfc4]{flex:1;min-height:0}.chart-wrapper>canvas[data-v-c893cfc4]{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-a56a2037]{padding:0}.item-container[data-v-a56a2037]{padding:.25em}.carousel-height[data-v-a56a2037]{min-height:fit-content;height:100%}[data-v-7781ba33]: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-7781ba33]{color:var(--q-brown-text)!important}:root .deselected[data-v-7781ba33]{color:var(--q-grey)!important}:root .q-header[data-v-7781ba33]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-7781ba33]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-7781ba33]{background-color:var(--q-background-2)}:root .q-tab[data-v-7781ba33]{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-7781ba33]{color:var(--q-primary)}:root .q-tab--active[data-v-7781ba33]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-7781ba33]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-7781ba33]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-7781ba33]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-7781ba33]{background-color:var(--q-background-2)}:root .q-card[data-v-7781ba33]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-7781ba33]{color:var(--q-white)}:root .q-list[data-v-7781ba33]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-7781ba33]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-7781ba33]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-7781ba33]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-7781ba33]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-7781ba33],:root .sticky-header-table .q-table__bottom[data-v-7781ba33],:root .sticky-header-table thead tr:first-child th[data-v-7781ba33]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-7781ba33]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-7781ba33]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-7781ba33]{top:48px}:root .sticky-header-table tbody[data-v-7781ba33]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-7781ba33],:root .sticky-header-table .q-table__middle[data-v-7781ba33],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-7781ba33]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-7781ba33]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-7781ba33]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-7781ba33]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-7781ba33],:root .q-table td[data-v-7781ba33]{padding:2px 6px!important}:root .q-table th[data-v-7781ba33]:first-child,:root .q-table td[data-v-7781ba33]:first-child{padding-left:12px!important}:root .q-table th[data-v-7781ba33]:last-child,:root .q-table td[data-v-7781ba33]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-7781ba33]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-7781ba33]{--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-7781ba33]{color:var(--q-white)!important}.body--dark .q-header[data-v-7781ba33]{color:var(--q-white)}.body--dark .q-drawer[data-v-7781ba33]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-7781ba33]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-7781ba33]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-7781ba33]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-7781ba33]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-7781ba33],.body--dark .q-card[data-v-7781ba33],.body--dark .q-field__label[data-v-7781ba33]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-7781ba33]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-7781ba33]{color:var(--q-white)}.body--dark .q-list[data-v-7781ba33]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-7781ba33]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-7781ba33]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-7781ba33]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-7781ba33]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-7781ba33]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-7781ba33]{scrollbar-color:var(--q-primary) var(--q-list)}[data-v-7781ba33] .q-table__top{padding:4px}.search-field[data-v-7781ba33]{width:100%;max-width:18em}.clickable[data-v-7781ba33]{cursor:pointer}.custom-table-height[data-v-7781ba33]{height:var(--1c29a7a7)}.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-c4f1d1ab] .q-btn-dropdown__arrow-container,.no-drop-down-arrow[data-v-4f0d8934] .q-btn-dropdown__arrow-container{width:0;padding:0;margin:0}[data-v-27ae5baf]: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-27ae5baf]{color:var(--q-brown-text)!important}:root .deselected[data-v-27ae5baf]{color:var(--q-grey)!important}:root .q-header[data-v-27ae5baf]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-27ae5baf]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-27ae5baf]{background-color:var(--q-background-2)}:root .q-tab[data-v-27ae5baf]{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-27ae5baf]{color:var(--q-primary)}:root .q-tab--active[data-v-27ae5baf]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-27ae5baf]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-27ae5baf]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-27ae5baf]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-27ae5baf]{background-color:var(--q-background-2)}:root .q-card[data-v-27ae5baf]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-27ae5baf]{color:var(--q-white)}:root .q-list[data-v-27ae5baf]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-27ae5baf]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-27ae5baf]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-27ae5baf]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-27ae5baf]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-27ae5baf],:root .sticky-header-table .q-table__bottom[data-v-27ae5baf],:root .sticky-header-table thead tr:first-child th[data-v-27ae5baf]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-27ae5baf]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-27ae5baf]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-27ae5baf]{top:48px}:root .sticky-header-table tbody[data-v-27ae5baf]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-27ae5baf],:root .sticky-header-table .q-table__middle[data-v-27ae5baf],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-27ae5baf]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-27ae5baf]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-27ae5baf]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-27ae5baf]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-27ae5baf],:root .q-table td[data-v-27ae5baf]{padding:2px 6px!important}:root .q-table th[data-v-27ae5baf]:first-child,:root .q-table td[data-v-27ae5baf]:first-child{padding-left:12px!important}:root .q-table th[data-v-27ae5baf]:last-child,:root .q-table td[data-v-27ae5baf]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-27ae5baf]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-27ae5baf]{--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-27ae5baf]{color:var(--q-white)!important}.body--dark .q-header[data-v-27ae5baf]{color:var(--q-white)}.body--dark .q-drawer[data-v-27ae5baf]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-27ae5baf]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-27ae5baf]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-27ae5baf]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-27ae5baf]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-27ae5baf],.body--dark .q-card[data-v-27ae5baf],.body--dark .q-field__label[data-v-27ae5baf]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-27ae5baf]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-27ae5baf]{color:var(--q-white)}.body--dark .q-list[data-v-27ae5baf]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-27ae5baf]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-27ae5baf]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-27ae5baf]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-27ae5baf]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-27ae5baf]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-27ae5baf]{scrollbar-color:var(--q-primary) var(--q-list)}.pending[data-v-27ae5baf]{color:#f44336}.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}[data-v-8568cf54]: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-8568cf54]{color:var(--q-brown-text)!important}:root .deselected[data-v-8568cf54]{color:var(--q-grey)!important}:root .q-header[data-v-8568cf54]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-8568cf54]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-8568cf54]{background-color:var(--q-background-2)}:root .q-tab[data-v-8568cf54]{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-8568cf54]{color:var(--q-primary)}:root .q-tab--active[data-v-8568cf54]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-8568cf54]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-8568cf54]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-8568cf54]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-8568cf54]{background-color:var(--q-background-2)}:root .q-card[data-v-8568cf54]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-8568cf54]{color:var(--q-white)}:root .q-list[data-v-8568cf54]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-8568cf54]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-8568cf54]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-8568cf54]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-8568cf54]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-8568cf54],:root .sticky-header-table .q-table__bottom[data-v-8568cf54],:root .sticky-header-table thead tr:first-child th[data-v-8568cf54]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-8568cf54]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-8568cf54]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-8568cf54]{top:48px}:root .sticky-header-table tbody[data-v-8568cf54]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-8568cf54],:root .sticky-header-table .q-table__middle[data-v-8568cf54],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-8568cf54]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-8568cf54]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-8568cf54]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-8568cf54]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-8568cf54],:root .q-table td[data-v-8568cf54]{padding:2px 6px!important}:root .q-table th[data-v-8568cf54]:first-child,:root .q-table td[data-v-8568cf54]:first-child{padding-left:12px!important}:root .q-table th[data-v-8568cf54]:last-child,:root .q-table td[data-v-8568cf54]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-8568cf54]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-8568cf54]{--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-8568cf54]{color:var(--q-white)!important}.body--dark .q-header[data-v-8568cf54]{color:var(--q-white)}.body--dark .q-drawer[data-v-8568cf54]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-8568cf54]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-8568cf54]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-8568cf54]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-8568cf54]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-8568cf54],.body--dark .q-card[data-v-8568cf54],.body--dark .q-field__label[data-v-8568cf54]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-8568cf54]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-8568cf54]{color:var(--q-white)}.body--dark .q-list[data-v-8568cf54]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-8568cf54]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-8568cf54]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-8568cf54]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-8568cf54]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-8568cf54]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-8568cf54]{scrollbar-color:var(--q-primary) var(--q-list)}.plan-name[data-v-8568cf54]{font-weight:700}.plan-details[data-v-8568cf54]{display:flex;justify-content:center}.plan-details>div[data-v-8568cf54]{display:flex;align-items:center}.plan-details>div[data-v-8568cf54]:not(:last-child){margin-right:8px}[data-v-139702f2]: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-139702f2]{color:var(--q-brown-text)!important}:root .deselected[data-v-139702f2]{color:var(--q-grey)!important}:root .q-header[data-v-139702f2]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-139702f2]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-139702f2]{background-color:var(--q-background-2)}:root .q-tab[data-v-139702f2]{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-139702f2]{color:var(--q-primary)}:root .q-tab--active[data-v-139702f2]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-139702f2]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-139702f2]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-139702f2]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-139702f2]{background-color:var(--q-background-2)}:root .q-card[data-v-139702f2]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-139702f2]{color:var(--q-white)}:root .q-list[data-v-139702f2]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-139702f2]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-139702f2]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-139702f2]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-139702f2]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-139702f2],:root .sticky-header-table .q-table__bottom[data-v-139702f2],:root .sticky-header-table thead tr:first-child th[data-v-139702f2]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-139702f2]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-139702f2]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-139702f2]{top:48px}:root .sticky-header-table tbody[data-v-139702f2]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-139702f2],:root .sticky-header-table .q-table__middle[data-v-139702f2],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-139702f2]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-139702f2]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-139702f2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-139702f2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-139702f2],:root .q-table td[data-v-139702f2]{padding:2px 6px!important}:root .q-table th[data-v-139702f2]:first-child,:root .q-table td[data-v-139702f2]:first-child{padding-left:12px!important}:root .q-table th[data-v-139702f2]:last-child,:root .q-table td[data-v-139702f2]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-139702f2]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-139702f2]{--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-139702f2]{color:var(--q-white)!important}.body--dark .q-header[data-v-139702f2]{color:var(--q-white)}.body--dark .q-drawer[data-v-139702f2]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-139702f2]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-139702f2]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-139702f2]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-139702f2]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-139702f2],.body--dark .q-card[data-v-139702f2],.body--dark .q-field__label[data-v-139702f2]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-139702f2]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-139702f2]{color:var(--q-white)}.body--dark .q-list[data-v-139702f2]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-139702f2]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-139702f2]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-139702f2]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-139702f2]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-139702f2]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-139702f2]{scrollbar-color:var(--q-primary) var(--q-list)}.plan-name[data-v-139702f2]{font-weight:700}.plan-details[data-v-139702f2]{display:flex;justify-content:center}.plan-details>div[data-v-139702f2]{display:flex;align-items:center}.plan-details>div[data-v-139702f2]:not(:last-child){margin-right:8px}[data-v-733d1f13]: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-733d1f13]{color:var(--q-brown-text)!important}:root .deselected[data-v-733d1f13]{color:var(--q-grey)!important}:root .q-header[data-v-733d1f13]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-733d1f13]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-733d1f13]{background-color:var(--q-background-2)}:root .q-tab[data-v-733d1f13]{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-733d1f13]{color:var(--q-primary)}:root .q-tab--active[data-v-733d1f13]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-733d1f13]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-733d1f13]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-733d1f13]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-733d1f13]{background-color:var(--q-background-2)}:root .q-card[data-v-733d1f13]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-733d1f13]{color:var(--q-white)}:root .q-list[data-v-733d1f13]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-733d1f13]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-733d1f13]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-733d1f13]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-733d1f13]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-733d1f13],:root .sticky-header-table .q-table__bottom[data-v-733d1f13],:root .sticky-header-table thead tr:first-child th[data-v-733d1f13]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-733d1f13]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-733d1f13]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-733d1f13]{top:48px}:root .sticky-header-table tbody[data-v-733d1f13]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-733d1f13],:root .sticky-header-table .q-table__middle[data-v-733d1f13],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-733d1f13]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-733d1f13]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-733d1f13]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-733d1f13]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-733d1f13],:root .q-table td[data-v-733d1f13]{padding:2px 6px!important}:root .q-table th[data-v-733d1f13]:first-child,:root .q-table td[data-v-733d1f13]:first-child{padding-left:12px!important}:root .q-table th[data-v-733d1f13]:last-child,:root .q-table td[data-v-733d1f13]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-733d1f13]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-733d1f13]{--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-733d1f13]{color:var(--q-white)!important}.body--dark .q-header[data-v-733d1f13]{color:var(--q-white)}.body--dark .q-drawer[data-v-733d1f13]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-733d1f13]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-733d1f13]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-733d1f13]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-733d1f13]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-733d1f13],.body--dark .q-card[data-v-733d1f13],.body--dark .q-field__label[data-v-733d1f13]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-733d1f13]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-733d1f13]{color:var(--q-white)}.body--dark .q-list[data-v-733d1f13]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-733d1f13]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-733d1f13]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-733d1f13]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-733d1f13]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-733d1f13]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-733d1f13]{scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-733d1f13]{width:22em}.q-card__section[data-v-733d1f13]{padding:0 16px}.q-card__section[data-v-733d1f13]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-733d1f13]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-733d1f13]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}[data-v-66f9059a]: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-66f9059a]{color:var(--q-brown-text)!important}:root .deselected[data-v-66f9059a]{color:var(--q-grey)!important}:root .q-header[data-v-66f9059a]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-66f9059a]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-66f9059a]{background-color:var(--q-background-2)}:root .q-tab[data-v-66f9059a]{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-66f9059a]{color:var(--q-primary)}:root .q-tab--active[data-v-66f9059a]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-66f9059a]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-66f9059a]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-66f9059a]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-66f9059a]{background-color:var(--q-background-2)}:root .q-card[data-v-66f9059a]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-66f9059a]{color:var(--q-white)}:root .q-list[data-v-66f9059a]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-66f9059a]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-66f9059a]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-66f9059a]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-66f9059a]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-66f9059a],:root .sticky-header-table .q-table__bottom[data-v-66f9059a],:root .sticky-header-table thead tr:first-child th[data-v-66f9059a]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-66f9059a]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-66f9059a]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-66f9059a]{top:48px}:root .sticky-header-table tbody[data-v-66f9059a]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-66f9059a],:root .sticky-header-table .q-table__middle[data-v-66f9059a],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-66f9059a]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-66f9059a]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-66f9059a]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-66f9059a]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-66f9059a],:root .q-table td[data-v-66f9059a]{padding:2px 6px!important}:root .q-table th[data-v-66f9059a]:first-child,:root .q-table td[data-v-66f9059a]:first-child{padding-left:12px!important}:root .q-table th[data-v-66f9059a]:last-child,:root .q-table td[data-v-66f9059a]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-66f9059a]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-66f9059a]{--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-66f9059a]{color:var(--q-white)!important}.body--dark .q-header[data-v-66f9059a]{color:var(--q-white)}.body--dark .q-drawer[data-v-66f9059a]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-66f9059a]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-66f9059a]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-66f9059a]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-66f9059a]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-66f9059a],.body--dark .q-card[data-v-66f9059a],.body--dark .q-field__label[data-v-66f9059a]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-66f9059a]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-66f9059a]{color:var(--q-white)}.body--dark .q-list[data-v-66f9059a]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-66f9059a]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-66f9059a]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-66f9059a]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-66f9059a]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-66f9059a]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-66f9059a]{scrollbar-color:var(--q-primary) var(--q-list)}.max-width-0[data-v-66f9059a]{max-width:0}[data-v-1fa8d17b]: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-1fa8d17b]{color:var(--q-brown-text)!important}:root .deselected[data-v-1fa8d17b]{color:var(--q-grey)!important}:root .q-header[data-v-1fa8d17b]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-1fa8d17b]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-1fa8d17b]{background-color:var(--q-background-2)}:root .q-tab[data-v-1fa8d17b]{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-1fa8d17b]{color:var(--q-primary)}:root .q-tab--active[data-v-1fa8d17b]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-1fa8d17b]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-1fa8d17b]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-1fa8d17b]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-1fa8d17b]{background-color:var(--q-background-2)}:root .q-card[data-v-1fa8d17b]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-1fa8d17b]{color:var(--q-white)}:root .q-list[data-v-1fa8d17b]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-1fa8d17b]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-1fa8d17b]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-1fa8d17b]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-1fa8d17b]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-1fa8d17b],:root .sticky-header-table .q-table__bottom[data-v-1fa8d17b],:root .sticky-header-table thead tr:first-child th[data-v-1fa8d17b]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-1fa8d17b]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-1fa8d17b]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-1fa8d17b]{top:48px}:root .sticky-header-table tbody[data-v-1fa8d17b]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-1fa8d17b],:root .sticky-header-table .q-table__middle[data-v-1fa8d17b],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-1fa8d17b]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-1fa8d17b]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-1fa8d17b]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-1fa8d17b]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-1fa8d17b],:root .q-table td[data-v-1fa8d17b]{padding:2px 6px!important}:root .q-table th[data-v-1fa8d17b]:first-child,:root .q-table td[data-v-1fa8d17b]:first-child{padding-left:12px!important}:root .q-table th[data-v-1fa8d17b]:last-child,:root .q-table td[data-v-1fa8d17b]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-1fa8d17b]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-1fa8d17b]{--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-1fa8d17b]{color:var(--q-white)!important}.body--dark .q-header[data-v-1fa8d17b]{color:var(--q-white)}.body--dark .q-drawer[data-v-1fa8d17b]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-1fa8d17b]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-1fa8d17b]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-1fa8d17b]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-1fa8d17b]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-1fa8d17b],.body--dark .q-card[data-v-1fa8d17b],.body--dark .q-field__label[data-v-1fa8d17b]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-1fa8d17b]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-1fa8d17b]{color:var(--q-white)}.body--dark .q-list[data-v-1fa8d17b]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-1fa8d17b]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-1fa8d17b]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-1fa8d17b]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-1fa8d17b]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-1fa8d17b]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-1fa8d17b]{scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-1fa8d17b]{width:22em}.q-card__section[data-v-1fa8d17b]{padding:0 16px}.q-card__section[data-v-1fa8d17b]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-1fa8d17b]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-1fa8d17b]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}[data-v-d1390425]: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-d1390425]{color:var(--q-brown-text)!important}:root .deselected[data-v-d1390425]{color:var(--q-grey)!important}:root .q-header[data-v-d1390425]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-d1390425]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-d1390425]{background-color:var(--q-background-2)}:root .q-tab[data-v-d1390425]{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-d1390425]{color:var(--q-primary)}:root .q-tab--active[data-v-d1390425]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-d1390425]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-d1390425]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-d1390425]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-d1390425]{background-color:var(--q-background-2)}:root .q-card[data-v-d1390425]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-d1390425]{color:var(--q-white)}:root .q-list[data-v-d1390425]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-d1390425]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-d1390425]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-d1390425]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-d1390425]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-d1390425],:root .sticky-header-table .q-table__bottom[data-v-d1390425],:root .sticky-header-table thead tr:first-child th[data-v-d1390425]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-d1390425]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-d1390425]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-d1390425]{top:48px}:root .sticky-header-table tbody[data-v-d1390425]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-d1390425],:root .sticky-header-table .q-table__middle[data-v-d1390425],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-d1390425]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-d1390425]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-d1390425]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-d1390425]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-d1390425],:root .q-table td[data-v-d1390425]{padding:2px 6px!important}:root .q-table th[data-v-d1390425]:first-child,:root .q-table td[data-v-d1390425]:first-child{padding-left:12px!important}:root .q-table th[data-v-d1390425]:last-child,:root .q-table td[data-v-d1390425]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-d1390425]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-d1390425]{--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-d1390425]{color:var(--q-white)!important}.body--dark .q-header[data-v-d1390425]{color:var(--q-white)}.body--dark .q-drawer[data-v-d1390425]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-d1390425]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-d1390425]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-d1390425]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-d1390425]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-d1390425],.body--dark .q-card[data-v-d1390425],.body--dark .q-field__label[data-v-d1390425]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-d1390425]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-d1390425]{color:var(--q-white)}.body--dark .q-list[data-v-d1390425]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-d1390425]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-d1390425]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-d1390425]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-d1390425]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-d1390425]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-d1390425]{scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-d1390425]{width:22em}.q-card__section[data-v-d1390425]{padding:0 16px}.q-card__section[data-v-d1390425]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-d1390425]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-d1390425]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}[data-v-c2e6a5f0]: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-c2e6a5f0]{color:var(--q-brown-text)!important}:root .deselected[data-v-c2e6a5f0]{color:var(--q-grey)!important}:root .q-header[data-v-c2e6a5f0]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-c2e6a5f0]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-c2e6a5f0]{background-color:var(--q-background-2)}:root .q-tab[data-v-c2e6a5f0]{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-c2e6a5f0]{color:var(--q-primary)}:root .q-tab--active[data-v-c2e6a5f0]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-c2e6a5f0]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-c2e6a5f0]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-c2e6a5f0]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-c2e6a5f0]{background-color:var(--q-background-2)}:root .q-card[data-v-c2e6a5f0]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-c2e6a5f0]{color:var(--q-white)}:root .q-list[data-v-c2e6a5f0]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-c2e6a5f0]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-c2e6a5f0]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-c2e6a5f0]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-c2e6a5f0]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-c2e6a5f0],:root .sticky-header-table .q-table__bottom[data-v-c2e6a5f0],:root .sticky-header-table thead tr:first-child th[data-v-c2e6a5f0]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-c2e6a5f0]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-c2e6a5f0]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-c2e6a5f0]{top:48px}:root .sticky-header-table tbody[data-v-c2e6a5f0]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-c2e6a5f0],:root .sticky-header-table .q-table__middle[data-v-c2e6a5f0],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-c2e6a5f0]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-c2e6a5f0]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-c2e6a5f0]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-c2e6a5f0]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-c2e6a5f0],:root .q-table td[data-v-c2e6a5f0]{padding:2px 6px!important}:root .q-table th[data-v-c2e6a5f0]:first-child,:root .q-table td[data-v-c2e6a5f0]:first-child{padding-left:12px!important}:root .q-table th[data-v-c2e6a5f0]:last-child,:root .q-table td[data-v-c2e6a5f0]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-c2e6a5f0]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-c2e6a5f0]{--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-c2e6a5f0]{color:var(--q-white)!important}.body--dark .q-header[data-v-c2e6a5f0]{color:var(--q-white)}.body--dark .q-drawer[data-v-c2e6a5f0]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-c2e6a5f0]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-c2e6a5f0]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-c2e6a5f0]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-c2e6a5f0]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-c2e6a5f0],.body--dark .q-card[data-v-c2e6a5f0],.body--dark .q-field__label[data-v-c2e6a5f0]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-c2e6a5f0]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-c2e6a5f0]{color:var(--q-white)}.body--dark .q-list[data-v-c2e6a5f0]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-c2e6a5f0]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-c2e6a5f0]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-c2e6a5f0]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-c2e6a5f0]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-c2e6a5f0]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-c2e6a5f0]{scrollbar-color:var(--q-primary) var(--q-list)}.max-width-0[data-v-c2e6a5f0]{max-width:0}[data-v-a07e6bc2]: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-a07e6bc2]{color:var(--q-brown-text)!important}:root .deselected[data-v-a07e6bc2]{color:var(--q-grey)!important}:root .q-header[data-v-a07e6bc2]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-a07e6bc2]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-a07e6bc2]{background-color:var(--q-background-2)}:root .q-tab[data-v-a07e6bc2]{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-a07e6bc2]{color:var(--q-primary)}:root .q-tab--active[data-v-a07e6bc2]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-a07e6bc2]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-a07e6bc2]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-a07e6bc2]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-a07e6bc2]{background-color:var(--q-background-2)}:root .q-card[data-v-a07e6bc2]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-a07e6bc2]{color:var(--q-white)}:root .q-list[data-v-a07e6bc2]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-a07e6bc2]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-a07e6bc2]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-a07e6bc2]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-a07e6bc2]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-a07e6bc2],:root .sticky-header-table .q-table__bottom[data-v-a07e6bc2],:root .sticky-header-table thead tr:first-child th[data-v-a07e6bc2]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-a07e6bc2]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-a07e6bc2]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-a07e6bc2]{top:48px}:root .sticky-header-table tbody[data-v-a07e6bc2]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-a07e6bc2],:root .sticky-header-table .q-table__middle[data-v-a07e6bc2],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-a07e6bc2]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-a07e6bc2]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-a07e6bc2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-a07e6bc2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-a07e6bc2],:root .q-table td[data-v-a07e6bc2]{padding:2px 6px!important}:root .q-table th[data-v-a07e6bc2]:first-child,:root .q-table td[data-v-a07e6bc2]:first-child{padding-left:12px!important}:root .q-table th[data-v-a07e6bc2]:last-child,:root .q-table td[data-v-a07e6bc2]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-a07e6bc2]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-a07e6bc2]{--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-a07e6bc2]{color:var(--q-white)!important}.body--dark .q-header[data-v-a07e6bc2]{color:var(--q-white)}.body--dark .q-drawer[data-v-a07e6bc2]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-a07e6bc2]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-a07e6bc2]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-a07e6bc2]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-a07e6bc2]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-a07e6bc2],.body--dark .q-card[data-v-a07e6bc2],.body--dark .q-field__label[data-v-a07e6bc2]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-a07e6bc2]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-a07e6bc2]{color:var(--q-white)}.body--dark .q-list[data-v-a07e6bc2]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-a07e6bc2]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-a07e6bc2]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-a07e6bc2]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-a07e6bc2]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-a07e6bc2]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-a07e6bc2]{scrollbar-color:var(--q-primary) var(--q-list)}.chart-section[data-v-a07e6bc2]{height:40vh;min-height:350px}.tab-section[data-v-a07e6bc2],.tab-section[data-v-a07e6bc2] .q-panel-parent .q-panel{flex-grow:1;display:flex;flex-direction:column}.tab-section .q-tab-panel[data-v-a07e6bc2]{max-width:100vw;flex-grow:1}@media screen and (max-width: 599.98px){.tab-section .q-tab-panel[data-v-a07e6bc2]{padding:0}} +.svg-container[data-v-130920c7]{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;-webkit-user-select:none;user-select:none}svg[data-v-130920c7]{width:100%;height:100%;object-fit:contain}path[data-v-130920c7]{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-130920c7]{stroke:var(--q-white);stroke-dasharray:5;animation:dash-130920c7 1s linear infinite}path.animatedReverse[data-v-130920c7]{stroke:var(--q-white);stroke-dasharray:5;animation:dashReverse-130920c7 1s linear infinite}path.animated.grid[data-v-130920c7]{stroke:var(--q-negative)}path.animatedReverse.grid[data-v-130920c7]{stroke:var(--q-positive)}:root path.home[data-v-130920c7]{stroke:var(--q-grey)}.body--dark path.home[data-v-130920c7]{stroke:var(--q-white)}path.animated.pv[data-v-130920c7],path.animatedReverse.pv[data-v-130920c7]{stroke:var(--q-positive)}path.animated.battery[data-v-130920c7],path.animatedReverse.battery[data-v-130920c7]{stroke:var(--q-warning)}path.animated.charge-point[data-v-130920c7],path.animatedReverse.charge-point[data-v-130920c7]{stroke:var(--q-primary)}path.animated.vehicle[data-v-130920c7],path.animatedReverse.vehicle[data-v-130920c7]{stroke:var(--q-accent)}circle[data-v-130920c7]{fill:var(--q-secondary);fill-opacity:1;stroke:var(--q-grey);stroke-width:var(--18478186);stroke-miterlimit:2;stroke-opacity:1}rect[data-v-130920c7]{stroke-width:var(--18478186);fill:var(--q-secondary)}:root image[data-v-130920c7]{filter:brightness(.4)}.body--dark image[data-v-130920c7]{filter:brightness(1)}@keyframes dash-130920c7{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}@keyframes dashReverse-130920c7{0%{stroke-dashoffset:0}to{stroke-dashoffset:20}}text[data-v-130920c7]{font-size:var(--78e1d2fe);line-height:1.25;font-family:Arial;fill:var(--q-white);fill-opacity:1}text .fill-success[data-v-130920c7]{fill:var(--q-positive)}text .fill-danger[data-v-130920c7]{fill:var(--q-negative)}text .fill-dark[data-v-130920c7]{fill:var(--q-brown-text)}.grid text[data-v-130920c7]{fill:var(--q-negative)}.grid circle[data-v-130920c7],.grid rect[data-v-130920c7]{stroke:var(--q-negative)}.grid circle[data-v-130920c7]{fill:color-mix(in srgb,var(--q-negative) 20%,transparent)}.pv text[data-v-130920c7]{fill:var(--q-positive)}.pv circle[data-v-130920c7],.pv rect[data-v-130920c7]{stroke:var(--q-positive)}.pv circle[data-v-130920c7]{fill:color-mix(in srgb,var(--q-positive) 30%,transparent)}.battery text[data-v-130920c7]{fill:var(--q-battery)}.battery circle[data-v-130920c7],.battery rect[data-v-130920c7]{stroke:var(--q-battery)}.battery circle[data-v-130920c7]:not(.soc){fill:color-mix(in srgb,var(--q-battery) 50%,transparent)}:root .home text[data-v-130920c7]{fill:var(--q-brown-text)}.body--dark .home text[data-v-130920c7]{fill:var(--q-white)}.home circle[data-v-130920c7],.home rect[data-v-130920c7]{stroke:var(--q-flow-home-stroke)}.home circle[data-v-130920c7]{fill:color-mix(in srgb,var(--q-brown-text) 20%,transparent)}.charge-point text[data-v-130920c7]{fill:var(--q-primary)}.charge-point circle[data-v-130920c7],.charge-point rect[data-v-130920c7]{stroke:var(--q-primary)}.charge-point circle[data-v-130920c7]{fill:color-mix(in srgb,var(--q-primary) 30%,transparent)}.background-circle[data-v-130920c7]{fill:var(--q-secondary)!important}.vehicle text[data-v-130920c7]{fill:var(--q-accent)}.vehicle circle[data-v-130920c7],.vehicle rect[data-v-130920c7]{stroke:var(--q-accent)}.vehicle circle[data-v-130920c7]: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-c893cfc4]{width:100%;height:100%;display:flex;flex-direction:column}.legend-wrapper[data-v-c893cfc4]{flex:0 0 auto}.chart-wrapper[data-v-c893cfc4]{flex:1;min-height:0}.chart-wrapper>canvas[data-v-c893cfc4]{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-43f1f50c]{padding:0}.item-container[data-v-43f1f50c]{padding:.25em}.carousel-height[data-v-43f1f50c]{min-height:fit-content;height:100%}[data-v-7781ba33]: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-7781ba33]{color:var(--q-brown-text)!important}:root .deselected[data-v-7781ba33]{color:var(--q-grey)!important}:root .q-header[data-v-7781ba33]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-7781ba33]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-7781ba33]{background-color:var(--q-background-2)}:root .q-tab[data-v-7781ba33]{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-7781ba33]{color:var(--q-primary)}:root .q-tab--active[data-v-7781ba33]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-7781ba33]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-7781ba33]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-7781ba33]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-7781ba33]{background-color:var(--q-background-2)}:root .q-card[data-v-7781ba33]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-7781ba33]{color:var(--q-white)}:root .q-list[data-v-7781ba33]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-7781ba33]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-7781ba33]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-7781ba33]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-7781ba33]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-7781ba33],:root .sticky-header-table .q-table__bottom[data-v-7781ba33],:root .sticky-header-table thead tr:first-child th[data-v-7781ba33]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-7781ba33]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-7781ba33]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-7781ba33]{top:48px}:root .sticky-header-table tbody[data-v-7781ba33]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-7781ba33],:root .sticky-header-table .q-table__middle[data-v-7781ba33],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-7781ba33]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-7781ba33]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-7781ba33]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-7781ba33]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-7781ba33],:root .q-table td[data-v-7781ba33]{padding:2px 6px!important}:root .q-table th[data-v-7781ba33]:first-child,:root .q-table td[data-v-7781ba33]:first-child{padding-left:12px!important}:root .q-table th[data-v-7781ba33]:last-child,:root .q-table td[data-v-7781ba33]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-7781ba33]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-7781ba33]{--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-7781ba33]{color:var(--q-white)!important}.body--dark .q-header[data-v-7781ba33]{color:var(--q-white)}.body--dark .q-drawer[data-v-7781ba33]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-7781ba33]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-7781ba33]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-7781ba33]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-7781ba33]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-7781ba33],.body--dark .q-card[data-v-7781ba33],.body--dark .q-field__label[data-v-7781ba33]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-7781ba33]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-7781ba33]{color:var(--q-white)}.body--dark .q-list[data-v-7781ba33]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-7781ba33]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-7781ba33]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-7781ba33]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-7781ba33]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-7781ba33]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-7781ba33]{scrollbar-color:var(--q-primary) var(--q-list)}[data-v-7781ba33] .q-table__top{padding:4px}.search-field[data-v-7781ba33]{width:100%;max-width:18em}.clickable[data-v-7781ba33]{cursor:pointer}.custom-table-height[data-v-7781ba33]{height:var(--1c29a7a7)}.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-c4f1d1ab] .q-btn-dropdown__arrow-container,.no-drop-down-arrow[data-v-4f0d8934] .q-btn-dropdown__arrow-container{width:0;padding:0;margin:0}[data-v-27ae5baf]: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-27ae5baf]{color:var(--q-brown-text)!important}:root .deselected[data-v-27ae5baf]{color:var(--q-grey)!important}:root .q-header[data-v-27ae5baf]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-27ae5baf]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-27ae5baf]{background-color:var(--q-background-2)}:root .q-tab[data-v-27ae5baf]{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-27ae5baf]{color:var(--q-primary)}:root .q-tab--active[data-v-27ae5baf]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-27ae5baf]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-27ae5baf]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-27ae5baf]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-27ae5baf]{background-color:var(--q-background-2)}:root .q-card[data-v-27ae5baf]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-27ae5baf]{color:var(--q-white)}:root .q-list[data-v-27ae5baf]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-27ae5baf]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-27ae5baf]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-27ae5baf]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-27ae5baf]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-27ae5baf],:root .sticky-header-table .q-table__bottom[data-v-27ae5baf],:root .sticky-header-table thead tr:first-child th[data-v-27ae5baf]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-27ae5baf]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-27ae5baf]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-27ae5baf]{top:48px}:root .sticky-header-table tbody[data-v-27ae5baf]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-27ae5baf],:root .sticky-header-table .q-table__middle[data-v-27ae5baf],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-27ae5baf]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-27ae5baf]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-27ae5baf]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-27ae5baf]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-27ae5baf],:root .q-table td[data-v-27ae5baf]{padding:2px 6px!important}:root .q-table th[data-v-27ae5baf]:first-child,:root .q-table td[data-v-27ae5baf]:first-child{padding-left:12px!important}:root .q-table th[data-v-27ae5baf]:last-child,:root .q-table td[data-v-27ae5baf]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-27ae5baf]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-27ae5baf]{--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-27ae5baf]{color:var(--q-white)!important}.body--dark .q-header[data-v-27ae5baf]{color:var(--q-white)}.body--dark .q-drawer[data-v-27ae5baf]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-27ae5baf]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-27ae5baf]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-27ae5baf]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-27ae5baf]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-27ae5baf],.body--dark .q-card[data-v-27ae5baf],.body--dark .q-field__label[data-v-27ae5baf]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-27ae5baf]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-27ae5baf]{color:var(--q-white)}.body--dark .q-list[data-v-27ae5baf]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-27ae5baf]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-27ae5baf]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-27ae5baf]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-27ae5baf]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-27ae5baf]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-27ae5baf]{scrollbar-color:var(--q-primary) var(--q-list)}.pending[data-v-27ae5baf]{color:#f44336}.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}[data-v-8568cf54]: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-8568cf54]{color:var(--q-brown-text)!important}:root .deselected[data-v-8568cf54]{color:var(--q-grey)!important}:root .q-header[data-v-8568cf54]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-8568cf54]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-8568cf54]{background-color:var(--q-background-2)}:root .q-tab[data-v-8568cf54]{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-8568cf54]{color:var(--q-primary)}:root .q-tab--active[data-v-8568cf54]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-8568cf54]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-8568cf54]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-8568cf54]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-8568cf54]{background-color:var(--q-background-2)}:root .q-card[data-v-8568cf54]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-8568cf54]{color:var(--q-white)}:root .q-list[data-v-8568cf54]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-8568cf54]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-8568cf54]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-8568cf54]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-8568cf54]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-8568cf54],:root .sticky-header-table .q-table__bottom[data-v-8568cf54],:root .sticky-header-table thead tr:first-child th[data-v-8568cf54]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-8568cf54]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-8568cf54]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-8568cf54]{top:48px}:root .sticky-header-table tbody[data-v-8568cf54]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-8568cf54],:root .sticky-header-table .q-table__middle[data-v-8568cf54],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-8568cf54]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-8568cf54]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-8568cf54]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-8568cf54]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-8568cf54],:root .q-table td[data-v-8568cf54]{padding:2px 6px!important}:root .q-table th[data-v-8568cf54]:first-child,:root .q-table td[data-v-8568cf54]:first-child{padding-left:12px!important}:root .q-table th[data-v-8568cf54]:last-child,:root .q-table td[data-v-8568cf54]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-8568cf54]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-8568cf54]{--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-8568cf54]{color:var(--q-white)!important}.body--dark .q-header[data-v-8568cf54]{color:var(--q-white)}.body--dark .q-drawer[data-v-8568cf54]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-8568cf54]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-8568cf54]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-8568cf54]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-8568cf54]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-8568cf54],.body--dark .q-card[data-v-8568cf54],.body--dark .q-field__label[data-v-8568cf54]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-8568cf54]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-8568cf54]{color:var(--q-white)}.body--dark .q-list[data-v-8568cf54]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-8568cf54]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-8568cf54]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-8568cf54]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-8568cf54]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-8568cf54]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-8568cf54]{scrollbar-color:var(--q-primary) var(--q-list)}.plan-name[data-v-8568cf54]{font-weight:700}.plan-details[data-v-8568cf54]{display:flex;justify-content:center}.plan-details>div[data-v-8568cf54]{display:flex;align-items:center}.plan-details>div[data-v-8568cf54]:not(:last-child){margin-right:8px}[data-v-139702f2]: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-139702f2]{color:var(--q-brown-text)!important}:root .deselected[data-v-139702f2]{color:var(--q-grey)!important}:root .q-header[data-v-139702f2]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-139702f2]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-139702f2]{background-color:var(--q-background-2)}:root .q-tab[data-v-139702f2]{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-139702f2]{color:var(--q-primary)}:root .q-tab--active[data-v-139702f2]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-139702f2]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-139702f2]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-139702f2]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-139702f2]{background-color:var(--q-background-2)}:root .q-card[data-v-139702f2]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-139702f2]{color:var(--q-white)}:root .q-list[data-v-139702f2]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-139702f2]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-139702f2]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-139702f2]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-139702f2]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-139702f2],:root .sticky-header-table .q-table__bottom[data-v-139702f2],:root .sticky-header-table thead tr:first-child th[data-v-139702f2]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-139702f2]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-139702f2]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-139702f2]{top:48px}:root .sticky-header-table tbody[data-v-139702f2]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-139702f2],:root .sticky-header-table .q-table__middle[data-v-139702f2],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-139702f2]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-139702f2]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-139702f2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-139702f2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-139702f2],:root .q-table td[data-v-139702f2]{padding:2px 6px!important}:root .q-table th[data-v-139702f2]:first-child,:root .q-table td[data-v-139702f2]:first-child{padding-left:12px!important}:root .q-table th[data-v-139702f2]:last-child,:root .q-table td[data-v-139702f2]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-139702f2]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-139702f2]{--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-139702f2]{color:var(--q-white)!important}.body--dark .q-header[data-v-139702f2]{color:var(--q-white)}.body--dark .q-drawer[data-v-139702f2]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-139702f2]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-139702f2]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-139702f2]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-139702f2]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-139702f2],.body--dark .q-card[data-v-139702f2],.body--dark .q-field__label[data-v-139702f2]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-139702f2]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-139702f2]{color:var(--q-white)}.body--dark .q-list[data-v-139702f2]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-139702f2]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-139702f2]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-139702f2]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-139702f2]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-139702f2]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-139702f2]{scrollbar-color:var(--q-primary) var(--q-list)}.plan-name[data-v-139702f2]{font-weight:700}.plan-details[data-v-139702f2]{display:flex;justify-content:center}.plan-details>div[data-v-139702f2]{display:flex;align-items:center}.plan-details>div[data-v-139702f2]:not(:last-child){margin-right:8px}[data-v-733d1f13]: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-733d1f13]{color:var(--q-brown-text)!important}:root .deselected[data-v-733d1f13]{color:var(--q-grey)!important}:root .q-header[data-v-733d1f13]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-733d1f13]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-733d1f13]{background-color:var(--q-background-2)}:root .q-tab[data-v-733d1f13]{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-733d1f13]{color:var(--q-primary)}:root .q-tab--active[data-v-733d1f13]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-733d1f13]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-733d1f13]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-733d1f13]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-733d1f13]{background-color:var(--q-background-2)}:root .q-card[data-v-733d1f13]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-733d1f13]{color:var(--q-white)}:root .q-list[data-v-733d1f13]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-733d1f13]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-733d1f13]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-733d1f13]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-733d1f13]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-733d1f13],:root .sticky-header-table .q-table__bottom[data-v-733d1f13],:root .sticky-header-table thead tr:first-child th[data-v-733d1f13]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-733d1f13]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-733d1f13]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-733d1f13]{top:48px}:root .sticky-header-table tbody[data-v-733d1f13]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-733d1f13],:root .sticky-header-table .q-table__middle[data-v-733d1f13],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-733d1f13]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-733d1f13]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-733d1f13]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-733d1f13]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-733d1f13],:root .q-table td[data-v-733d1f13]{padding:2px 6px!important}:root .q-table th[data-v-733d1f13]:first-child,:root .q-table td[data-v-733d1f13]:first-child{padding-left:12px!important}:root .q-table th[data-v-733d1f13]:last-child,:root .q-table td[data-v-733d1f13]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-733d1f13]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-733d1f13]{--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-733d1f13]{color:var(--q-white)!important}.body--dark .q-header[data-v-733d1f13]{color:var(--q-white)}.body--dark .q-drawer[data-v-733d1f13]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-733d1f13]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-733d1f13]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-733d1f13]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-733d1f13]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-733d1f13],.body--dark .q-card[data-v-733d1f13],.body--dark .q-field__label[data-v-733d1f13]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-733d1f13]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-733d1f13]{color:var(--q-white)}.body--dark .q-list[data-v-733d1f13]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-733d1f13]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-733d1f13]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-733d1f13]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-733d1f13]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-733d1f13]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-733d1f13]{scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-733d1f13]{width:22em}.q-card__section[data-v-733d1f13]{padding:0 16px}.q-card__section[data-v-733d1f13]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-733d1f13]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-733d1f13]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}[data-v-66f9059a]: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-66f9059a]{color:var(--q-brown-text)!important}:root .deselected[data-v-66f9059a]{color:var(--q-grey)!important}:root .q-header[data-v-66f9059a]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-66f9059a]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-66f9059a]{background-color:var(--q-background-2)}:root .q-tab[data-v-66f9059a]{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-66f9059a]{color:var(--q-primary)}:root .q-tab--active[data-v-66f9059a]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-66f9059a]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-66f9059a]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-66f9059a]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-66f9059a]{background-color:var(--q-background-2)}:root .q-card[data-v-66f9059a]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-66f9059a]{color:var(--q-white)}:root .q-list[data-v-66f9059a]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-66f9059a]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-66f9059a]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-66f9059a]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-66f9059a]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-66f9059a],:root .sticky-header-table .q-table__bottom[data-v-66f9059a],:root .sticky-header-table thead tr:first-child th[data-v-66f9059a]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-66f9059a]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-66f9059a]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-66f9059a]{top:48px}:root .sticky-header-table tbody[data-v-66f9059a]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-66f9059a],:root .sticky-header-table .q-table__middle[data-v-66f9059a],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-66f9059a]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-66f9059a]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-66f9059a]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-66f9059a]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-66f9059a],:root .q-table td[data-v-66f9059a]{padding:2px 6px!important}:root .q-table th[data-v-66f9059a]:first-child,:root .q-table td[data-v-66f9059a]:first-child{padding-left:12px!important}:root .q-table th[data-v-66f9059a]:last-child,:root .q-table td[data-v-66f9059a]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-66f9059a]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-66f9059a]{--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-66f9059a]{color:var(--q-white)!important}.body--dark .q-header[data-v-66f9059a]{color:var(--q-white)}.body--dark .q-drawer[data-v-66f9059a]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-66f9059a]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-66f9059a]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-66f9059a]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-66f9059a]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-66f9059a],.body--dark .q-card[data-v-66f9059a],.body--dark .q-field__label[data-v-66f9059a]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-66f9059a]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-66f9059a]{color:var(--q-white)}.body--dark .q-list[data-v-66f9059a]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-66f9059a]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-66f9059a]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-66f9059a]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-66f9059a]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-66f9059a]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-66f9059a]{scrollbar-color:var(--q-primary) var(--q-list)}.max-width-0[data-v-66f9059a]{max-width:0}[data-v-1fa8d17b]: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-1fa8d17b]{color:var(--q-brown-text)!important}:root .deselected[data-v-1fa8d17b]{color:var(--q-grey)!important}:root .q-header[data-v-1fa8d17b]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-1fa8d17b]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-1fa8d17b]{background-color:var(--q-background-2)}:root .q-tab[data-v-1fa8d17b]{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-1fa8d17b]{color:var(--q-primary)}:root .q-tab--active[data-v-1fa8d17b]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-1fa8d17b]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-1fa8d17b]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-1fa8d17b]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-1fa8d17b]{background-color:var(--q-background-2)}:root .q-card[data-v-1fa8d17b]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-1fa8d17b]{color:var(--q-white)}:root .q-list[data-v-1fa8d17b]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-1fa8d17b]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-1fa8d17b]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-1fa8d17b]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-1fa8d17b]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-1fa8d17b],:root .sticky-header-table .q-table__bottom[data-v-1fa8d17b],:root .sticky-header-table thead tr:first-child th[data-v-1fa8d17b]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-1fa8d17b]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-1fa8d17b]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-1fa8d17b]{top:48px}:root .sticky-header-table tbody[data-v-1fa8d17b]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-1fa8d17b],:root .sticky-header-table .q-table__middle[data-v-1fa8d17b],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-1fa8d17b]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-1fa8d17b]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-1fa8d17b]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-1fa8d17b]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-1fa8d17b],:root .q-table td[data-v-1fa8d17b]{padding:2px 6px!important}:root .q-table th[data-v-1fa8d17b]:first-child,:root .q-table td[data-v-1fa8d17b]:first-child{padding-left:12px!important}:root .q-table th[data-v-1fa8d17b]:last-child,:root .q-table td[data-v-1fa8d17b]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-1fa8d17b]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-1fa8d17b]{--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-1fa8d17b]{color:var(--q-white)!important}.body--dark .q-header[data-v-1fa8d17b]{color:var(--q-white)}.body--dark .q-drawer[data-v-1fa8d17b]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-1fa8d17b]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-1fa8d17b]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-1fa8d17b]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-1fa8d17b]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-1fa8d17b],.body--dark .q-card[data-v-1fa8d17b],.body--dark .q-field__label[data-v-1fa8d17b]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-1fa8d17b]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-1fa8d17b]{color:var(--q-white)}.body--dark .q-list[data-v-1fa8d17b]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-1fa8d17b]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-1fa8d17b]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-1fa8d17b]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-1fa8d17b]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-1fa8d17b]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-1fa8d17b]{scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-1fa8d17b]{width:22em}.q-card__section[data-v-1fa8d17b]{padding:0 16px}.q-card__section[data-v-1fa8d17b]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-1fa8d17b]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-1fa8d17b]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}[data-v-d1390425]: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-d1390425]{color:var(--q-brown-text)!important}:root .deselected[data-v-d1390425]{color:var(--q-grey)!important}:root .q-header[data-v-d1390425]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-d1390425]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-d1390425]{background-color:var(--q-background-2)}:root .q-tab[data-v-d1390425]{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-d1390425]{color:var(--q-primary)}:root .q-tab--active[data-v-d1390425]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-d1390425]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-d1390425]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-d1390425]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-d1390425]{background-color:var(--q-background-2)}:root .q-card[data-v-d1390425]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-d1390425]{color:var(--q-white)}:root .q-list[data-v-d1390425]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-d1390425]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-d1390425]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-d1390425]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-d1390425]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-d1390425],:root .sticky-header-table .q-table__bottom[data-v-d1390425],:root .sticky-header-table thead tr:first-child th[data-v-d1390425]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-d1390425]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-d1390425]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-d1390425]{top:48px}:root .sticky-header-table tbody[data-v-d1390425]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-d1390425],:root .sticky-header-table .q-table__middle[data-v-d1390425],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-d1390425]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-d1390425]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-d1390425]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-d1390425]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-d1390425],:root .q-table td[data-v-d1390425]{padding:2px 6px!important}:root .q-table th[data-v-d1390425]:first-child,:root .q-table td[data-v-d1390425]:first-child{padding-left:12px!important}:root .q-table th[data-v-d1390425]:last-child,:root .q-table td[data-v-d1390425]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-d1390425]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-d1390425]{--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-d1390425]{color:var(--q-white)!important}.body--dark .q-header[data-v-d1390425]{color:var(--q-white)}.body--dark .q-drawer[data-v-d1390425]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-d1390425]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-d1390425]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-d1390425]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-d1390425]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-d1390425],.body--dark .q-card[data-v-d1390425],.body--dark .q-field__label[data-v-d1390425]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-d1390425]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-d1390425]{color:var(--q-white)}.body--dark .q-list[data-v-d1390425]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-d1390425]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-d1390425]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-d1390425]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-d1390425]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-d1390425]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-d1390425]{scrollbar-color:var(--q-primary) var(--q-list)}.card-width[data-v-d1390425]{width:22em}.q-card__section[data-v-d1390425]{padding:0 16px}.q-card__section[data-v-d1390425]:first-of-type{padding-top:16px;padding-bottom:0}.q-card__section[data-v-d1390425]:last-of-type{padding-top:0;padding-bottom:16px}.q-card__section[data-v-d1390425]:not(:first-of-type):not(:last-of-type){padding-top:0;padding-bottom:0}[data-v-c2e6a5f0]: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-c2e6a5f0]{color:var(--q-brown-text)!important}:root .deselected[data-v-c2e6a5f0]{color:var(--q-grey)!important}:root .q-header[data-v-c2e6a5f0]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-c2e6a5f0]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-c2e6a5f0]{background-color:var(--q-background-2)}:root .q-tab[data-v-c2e6a5f0]{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-c2e6a5f0]{color:var(--q-primary)}:root .q-tab--active[data-v-c2e6a5f0]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-c2e6a5f0]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-c2e6a5f0]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-c2e6a5f0]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-c2e6a5f0]{background-color:var(--q-background-2)}:root .q-card[data-v-c2e6a5f0]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-c2e6a5f0]{color:var(--q-white)}:root .q-list[data-v-c2e6a5f0]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-c2e6a5f0]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-c2e6a5f0]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-c2e6a5f0]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-c2e6a5f0]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-c2e6a5f0],:root .sticky-header-table .q-table__bottom[data-v-c2e6a5f0],:root .sticky-header-table thead tr:first-child th[data-v-c2e6a5f0]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-c2e6a5f0]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-c2e6a5f0]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-c2e6a5f0]{top:48px}:root .sticky-header-table tbody[data-v-c2e6a5f0]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-c2e6a5f0],:root .sticky-header-table .q-table__middle[data-v-c2e6a5f0],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-c2e6a5f0]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-c2e6a5f0]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-c2e6a5f0]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-c2e6a5f0]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-c2e6a5f0],:root .q-table td[data-v-c2e6a5f0]{padding:2px 6px!important}:root .q-table th[data-v-c2e6a5f0]:first-child,:root .q-table td[data-v-c2e6a5f0]:first-child{padding-left:12px!important}:root .q-table th[data-v-c2e6a5f0]:last-child,:root .q-table td[data-v-c2e6a5f0]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-c2e6a5f0]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-c2e6a5f0]{--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-c2e6a5f0]{color:var(--q-white)!important}.body--dark .q-header[data-v-c2e6a5f0]{color:var(--q-white)}.body--dark .q-drawer[data-v-c2e6a5f0]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-c2e6a5f0]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-c2e6a5f0]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-c2e6a5f0]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-c2e6a5f0]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-c2e6a5f0],.body--dark .q-card[data-v-c2e6a5f0],.body--dark .q-field__label[data-v-c2e6a5f0]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-c2e6a5f0]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-c2e6a5f0]{color:var(--q-white)}.body--dark .q-list[data-v-c2e6a5f0]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-c2e6a5f0]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-c2e6a5f0]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-c2e6a5f0]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-c2e6a5f0]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-c2e6a5f0]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-c2e6a5f0]{scrollbar-color:var(--q-primary) var(--q-list)}.max-width-0[data-v-c2e6a5f0]{max-width:0}[data-v-a07e6bc2]: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-a07e6bc2]{color:var(--q-brown-text)!important}:root .deselected[data-v-a07e6bc2]{color:var(--q-grey)!important}:root .q-header[data-v-a07e6bc2]{background-color:var(--q-background-2);color:var(--q-brown-text)}:root .q-drawer[data-v-a07e6bc2]{background-color:var(--q-background-2)}:root .q-tab-panels[data-v-a07e6bc2]{background-color:var(--q-background-2)}:root .q-tab[data-v-a07e6bc2]{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-a07e6bc2]{color:var(--q-primary)}:root .q-tab--active[data-v-a07e6bc2]{background-color:#ceced3}:root .q-carousel__control .q-btn[data-v-a07e6bc2]:before{box-shadow:none}:root .q-carousel__control .q-btn .q-icon[data-v-a07e6bc2]{color:var(--q-primary)}:root .q-carousel__control .q-btn .q-icon[data-v-a07e6bc2]:before{color:var(--q-primary);box-shadow:none}:root .q-carousel__slide[data-v-a07e6bc2]{background-color:var(--q-background-2)}:root .q-card[data-v-a07e6bc2]{background-color:var(--q-secondary)}:root .q-expansion-item__toggle-icon[data-v-a07e6bc2]{color:var(--q-white)}:root .q-list[data-v-a07e6bc2]{background-color:var(--q-background-2)}:root .q-toggle__thumb[data-v-a07e6bc2]:after{background:var(--q-toggle-off)}:root .q-toggle__inner--truthy .q-toggle__thumb[data-v-a07e6bc2]:after{background-color:currentColor}:root .white-outline-input.q-field--outlined .q-field__control[data-v-a07e6bc2]:before{border-color:var(--q-white)!important}:root .sticky-header-table[data-v-a07e6bc2]{flex-grow:1;max-width:100%}:root .sticky-header-table .q-table__top[data-v-a07e6bc2],:root .sticky-header-table .q-table__bottom[data-v-a07e6bc2],:root .sticky-header-table thead tr:first-child th[data-v-a07e6bc2]{background-color:var(--q-primary);color:var(--q-white);font-size:.9rem}:root .sticky-header-table thead tr th[data-v-a07e6bc2]{position:sticky;z-index:1}:root .sticky-header-table thead tr:first-child th[data-v-a07e6bc2]{top:0}:root .sticky-header-table.q-table--loading thead tr:last-child th[data-v-a07e6bc2]{top:48px}:root .sticky-header-table tbody[data-v-a07e6bc2]{scroll-margin-top:48px;background-color:var(--q-secondary);color:var(--q-brown-text)}:root .sticky-header-table tbody tr[data-v-a07e6bc2],:root .sticky-header-table .q-table__middle[data-v-a07e6bc2],:root .sticky-header-table .q-table__grid-content .q-virtual-scroll .q-virtual-scroll--vertical scroll[data-v-a07e6bc2]{background-color:var(--q-secondary)}:root .sticky-header-table tbody tr[data-v-a07e6bc2]:hover{background-color:#0000000d}:root .sticky-header-table .q-table__middle.q-virtual-scroll[data-v-a07e6bc2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-secondary)}:root .q-list[data-v-a07e6bc2]{scrollbar-width:thin;scrollbar-color:var(--q-primary) var(--q-background-2)}:root .q-table th[data-v-a07e6bc2],:root .q-table td[data-v-a07e6bc2]{padding:2px 6px!important}:root .q-table th[data-v-a07e6bc2]:first-child,:root .q-table td[data-v-a07e6bc2]:first-child{padding-left:12px!important}:root .q-table th[data-v-a07e6bc2]:last-child,:root .q-table td[data-v-a07e6bc2]:last-child{padding-right:12px!important}:root .q-scrollarea[data-v-a07e6bc2]{border:1px solid var(--q-secondary)!important}.body--dark[data-v-a07e6bc2]{--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-a07e6bc2]{color:var(--q-white)!important}.body--dark .q-header[data-v-a07e6bc2]{color:var(--q-white)}.body--dark .q-drawer[data-v-a07e6bc2]{background-color:var(--q-list)}.body--dark .q-tab .q-icon[data-v-a07e6bc2]{color:var(--q-tab-icon)!important}.body--dark .q-tab--active[data-v-a07e6bc2]{background-color:#383a56}.body--dark .q-carousel__control .q-btn .q-icon[data-v-a07e6bc2]{color:var(--q-carousel-control)}.body--dark .q-carousel__control .q-btn .q-icon[data-v-a07e6bc2]:before{color:var(--q-carousel-control)}.body--dark .q-carousel__slide[data-v-a07e6bc2],.body--dark .q-card[data-v-a07e6bc2],.body--dark .q-field__label[data-v-a07e6bc2]{color:var(--q-white)}.body--dark .q-field__control .q-field__native[data-v-a07e6bc2]::-webkit-calendar-picker-indicator{filter:invert(1)}.body--dark .q-placeholder[data-v-a07e6bc2]{color:var(--q-white)}.body--dark .q-list[data-v-a07e6bc2]{background-color:var(--q-list)}.body--dark .q-menu .q-item__section[data-v-a07e6bc2]{color:var(--q-white)!important}.body--dark .q-toggle__thumb[data-v-a07e6bc2]:after{background:var(--q-toggle-off)}.body--dark .q-toggle__inner--truthy .q-toggle__thumb[data-v-a07e6bc2]:after{background-color:currentColor}.body--dark .sticky-header-table tbody[data-v-a07e6bc2]{color:var(--q-white)}.body--dark .sticky-header-table tbody tr[data-v-a07e6bc2]:hover{background-color:#ffffff12}.body--dark .q-list[data-v-a07e6bc2]{scrollbar-color:var(--q-primary) var(--q-list)}.chart-section[data-v-a07e6bc2]{height:40vh;min-height:350px}.tab-section[data-v-a07e6bc2],.tab-section[data-v-a07e6bc2] .q-panel-parent .q-panel{flex-grow:1;display:flex;flex-direction:column}.tab-section .q-tab-panel[data-v-a07e6bc2]{max-width:100vw;flex-grow:1}@media screen and (max-width: 599.98px){.tab-section .q-tab-panel[data-v-a07e6bc2]{padding:0}} diff --git a/packages/modules/web_themes/koala/web/assets/MainLayout-Cd3W0PCb.js b/packages/modules/web_themes/koala/web/assets/MainLayout-B3tjQpym.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/MainLayout-Cd3W0PCb.js rename to packages/modules/web_themes/koala/web/assets/MainLayout-B3tjQpym.js index f034482e33..0de48a8f21 100644 --- a/packages/modules/web_themes/koala/web/assets/MainLayout-Cd3W0PCb.js +++ b/packages/modules/web_themes/koala/web/assets/MainLayout-B3tjQpym.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-CmDneGoC.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-BTeormdj.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-562c3b02"]]);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-BH3GZeBO.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-CnHKGPMP.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-562c3b02"]]);export{Dt as default}; diff --git a/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-BTeormdj.js b/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-CnHKGPMP.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-BTeormdj.js rename to packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-CnHKGPMP.js index bd890c984c..456158b032 100644 --- a/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-BTeormdj.js +++ b/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-CnHKGPMP.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,aM as ct,aN as dt,L as je,N as oe,f as ft,aK as vt,ar as Z,U as z,w as _,P as F,_ as mt,aO as J,B as ht,aq as pt,aP as gt,aQ as bt,aR as wt,q as Ne,aS as Xe,aT as yt,aU 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,aV as xt,i as St,aW as Ct}from"./index-CmDneGoC.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,mn as R,xn as S,En as T,hn as U,pn 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,aM as ct,aN as dt,L as je,N as oe,f as ft,aK as vt,ar as Z,U as z,w as _,P as F,_ as mt,aO as J,B as ht,aq as pt,aP as gt,aQ as bt,aR as wt,q as Ne,aS as Xe,aT as yt,aU 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,aV as xt,i as St,aW as Ct}from"./index-BH3GZeBO.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,mn as R,xn as S,En as T,hn as U,pn 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-CmDneGoC.js b/packages/modules/web_themes/koala/web/assets/index-BH3GZeBO.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/index-CmDneGoC.js rename to packages/modules/web_themes/koala/web/assets/index-BH3GZeBO.js index 4c2e49199c..85602dc806 100644 --- a/packages/modules/web_themes/koala/web/assets/index-CmDneGoC.js +++ b/packages/modules/web_themes/koala/web/assets/index-BH3GZeBO.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MainLayout-Cd3W0PCb.js","assets/_plugin-vue_export-helper-BTeormdj.js","assets/MainLayout-DZ5KVho1.css","assets/IndexPage-BDkTNmuK.js","assets/mqtt-store-CdQu5WWJ.js","assets/IndexPage-BWGv4ucT.css","assets/store-init-BPiEnDMl.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MainLayout-B3tjQpym.js","assets/_plugin-vue_export-helper-CnHKGPMP.js","assets/MainLayout-DZ5KVho1.css","assets/IndexPage-IZgFdmdx.js","assets/mqtt-store-CmJDUm41.js","assets/IndexPage-xATA1vTl.css","assets/store-init-DiIPoOnm.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-Cd3W0PCb.js"),__vite__mapDeps([0,1,2])),children:[{path:"",component:()=>Wn(()=>import("./IndexPage-BDkTNmuK.js"),__vite__mapDeps([3,1,4,5]))}]},{path:"/:catchAll(.*)*",component:()=>Wn(()=>import("./ErrorNotFound-D4_c-LqI.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-BPiEnDMl.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,np as aA,Jh as aB,Gh as aC,Xh as aD,Hh as aE,yu as aF,bu as aG,ph as aH,gh as aI,pe as aJ,ws as aK,zh as aL,xp as aM,bh as aN,_p as aO,Vh as aP,Oh as aQ,Ep as aR,wp as aS,vp as aT,uh as aU,sp as aV,Mf as aW,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,_f as am,Qh as an,gl as ao,ap,$r as aq,xs as ar,Sa as as,Zs as at,Xs as au,Xd as av,Yr as aw,zs as ax,fp as ay,Ln 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-B3tjQpym.js"),__vite__mapDeps([0,1,2])),children:[{path:"",component:()=>Wn(()=>import("./IndexPage-IZgFdmdx.js"),__vite__mapDeps([3,1,4,5]))}]},{path:"/:catchAll(.*)*",component:()=>Wn(()=>import("./ErrorNotFound-Cr4NEN_j.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-DiIPoOnm.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,np as aA,Jh as aB,Gh as aC,Xh as aD,Hh as aE,yu as aF,bu as aG,ph as aH,gh as aI,pe as aJ,ws as aK,zh as aL,xp as aM,bh as aN,_p as aO,Vh as aP,Oh as aQ,Ep as aR,wp as aS,vp as aT,uh as aU,sp as aV,Mf as aW,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,_f as am,Qh as an,gl as ao,ap,$r as aq,xs as ar,Sa as as,Zs as at,Xs as au,Xd as av,Yr as aw,zs as ax,fp as ay,Ln 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-CdQu5WWJ.js b/packages/modules/web_themes/koala/web/assets/mqtt-store-CmJDUm41.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/mqtt-store-CdQu5WWJ.js rename to packages/modules/web_themes/koala/web/assets/mqtt-store-CmJDUm41.js index 01c8a9623d..9c3672a1a3 100644 --- a/packages/modules/web_themes/koala/web/assets/mqtt-store-CdQu5WWJ.js +++ b/packages/modules/web_themes/koala/web/assets/mqtt-store-CmJDUm41.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-CmDneGoC.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:()=>Pn,_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:()=>Tn,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:()=>kn,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,Pn=ct,ur=function(){return{}},kn=ur,Tn=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:Pn,cpuUsage:ur,resourceUsage:kn,memoryUsage:Tn,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 T=o.valueOf&&o.valueOf();if(T!=null&&T!==o)return r.from(T,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,T=n(m),N=T.write(o,u);return N!==m&&(T=T.slice(0,N)),T}function p(o){let u=o.length<0?0:S(o.length)|0,m=n(u);for(let T=0;T=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,T=u.length;for(let N=0,K=Math.min(m,T);NT.length?(r.isBuffer(K)||(K=r.from(K)),K.copy(T,N)):Uint8Array.prototype.set.call(T,K,N);else if(r.isBuffer(K))K.copy(T,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=K.length}return T};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,T=arguments.length>2&&arguments[2]===!0;if(!T&&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 T?-1:H(o).length;u=(""+u).toLowerCase(),N=!0}}r.byteLength=y;function v(o,u,m){let T=!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 P(this,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ce(this,u,m);default:if(T)throw new TypeError("Unknown encoding: "+o);o=(o+"").toLowerCase(),T=!0}}r.prototype._isBuffer=!0;function A(o,u,m){let T=o[u];o[u]=o[m],o[m]=T}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,T,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),T===void 0&&(T=0),N===void 0&&(N=this.length),u<0||m>o.length||T<0||N>this.length)throw new RangeError("out of range index");if(T>=N&&u>=m)return 0;if(T>=N)return-1;if(u>=m)return 1;if(u>>>=0,m>>>=0,T>>>=0,N>>>=0,this===o)return 0;let K=N-T,de=m-u,$=Math.min(K,de),ie=this.slice(T,N),Re=o.slice(u,m);for(let ke=0;ke<$;++ke)if(ie[ke]!==Re[ke]){K=ie[ke],de=Re[ke];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,T)),r.isBuffer(u))return u.length===0?-1:C(o,u,m,T,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):C(o,[u],m,T,N);throw new TypeError("val must be string, number or Buffer")}function C(o,u,m,T,N){let K=1,de=o.length,$=u.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(o.length<2||u.length<2)return-1;K=2,de/=2,$/=2,m/=2}function ie(ke,Le){return K===1?ke[Le]:ke.readUInt16BE(Le*K)}let Re;if(N){let ke=-1;for(Re=m;Rede&&(m=de-$),Re=m;Re>=0;Re--){let ke=!0;for(let Le=0;Le<$;Le++)if(ie(o,Re+Le)!==ie(u,Le)){ke=!1;break}if(ke)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,T){m=Number(m)||0;let N=o.length-m;T?(T=Number(T),T>N&&(T=N)):T=N;let K=u.length;T>K/2&&(T=K/2);let de;for(de=0;de>>0,isFinite(m)?(m=m>>>0,T===void 0&&(T="utf8")):(T=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");T||(T="utf8");let K=!1;for(;;)switch(T){case"hex":return w(this,o,u,m);case"utf8":case"utf-8":return I(this,o,u,m);case"ascii":case"latin1":case"binary":return k(this,o,u,m);case"base64":return j(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: "+T);T=(""+T).toLowerCase(),K=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function P(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 T=[],N=u;for(;N239?4:K>223?3:K>191?2:1;if(N+$<=m){let ie,Re,ke,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],ke=o[N+3],(ie&192)===128&&(Re&192)===128&&(ke&192)===128&&(Le=(K&15)<<18|(ie&63)<<12|(Re&63)<<6|ke&63,Le>65535&&Le<1114112&&(de=Le))}}de===null?(de=65533,$=1):de>65535&&(de-=65536,T.push(de>>>10&1023|55296),de=56320|de&1023),T.push(de),N+=$}return q(T)}let G=4096;function q(o){let u=o.length;if(u<=G)return String.fromCharCode.apply(String,o);let m="",T=0;for(;TT)&&(m=T);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 T=this[o],N=1,K=0;for(;++K>>0,u=u>>>0,m||V(o,u,this.length);let T=this[o+--u],N=1;for(;u>0&&(N*=256);)T+=this[o+--u]*N;return T},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 T=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(T)+(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 T=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(T)<>>0,u=u>>>0,m||V(o,u,this.length);let T=this[o],N=1,K=0;for(;++K=N&&(T-=Math.pow(2,8*u)),T},r.prototype.readIntBE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let T=u,N=1,K=this[o+--T];for(;T>0&&(N*=256);)K+=this[o+--T]*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 T=this[o+4]+this[o+5]*2**8+this[o+6]*2**16+(m<<24);return(BigInt(T)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let T=(u<<24)+this[++o]*2**16+this[++o]*2**8+this[++o];return(BigInt(T)<>>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,T,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,T){if(o=+o,u=u>>>0,m=m>>>0,!T){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,!T){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 M(o,u,m,T,N){J(u,T,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,T,N){J(u,T,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 M(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,T){if(o=+o,u=u>>>0,!T){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,T){if(o=+o,u=u>>>0,!T){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 M(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,T,N,K){if(m+T>o.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function ue(o,u,m,T,N){return u=+u,m=m>>>0,N||Z(o,u,m,4),h.write(o,u,m,T,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,T,N){return u=+u,m=m>>>0,N||Z(o,u,m,8),h.write(o,u,m,T,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,T){if(!r.isBuffer(o))throw new TypeError("argument should be a Buffer");if(m||(m=0),!T&&T!==0&&(T=this.length),u>=o.length&&(u=o.length),u||(u=0),T>0&&T=this.length)throw new RangeError("Index out of range");if(T<0)throw new RangeError("sourceEnd out of bounds");T>this.length&&(T=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"),T+=` It must be ${u}. Received ${N}`,T},RangeError);function oe(o){let u="",m=o.length,T=o[0]==="-"?1:0;for(;m>=T+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,T,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(T,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,T=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===T){(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(T);return K}function ve(o){return f.toByteArray(L(o))}function Ee(o,u,m,T){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 T=m*16;for(let N=0;N<16;++N)u[T+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-BH3GZeBO.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:()=>Pn,_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:()=>Tn,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:()=>kn,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,Pn=ct,ur=function(){return{}},kn=ur,Tn=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:Pn,cpuUsage:ur,resourceUsage:kn,memoryUsage:Tn,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 T=o.valueOf&&o.valueOf();if(T!=null&&T!==o)return r.from(T,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,T=n(m),N=T.write(o,u);return N!==m&&(T=T.slice(0,N)),T}function p(o){let u=o.length<0?0:S(o.length)|0,m=n(u);for(let T=0;T=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,T=u.length;for(let N=0,K=Math.min(m,T);NT.length?(r.isBuffer(K)||(K=r.from(K)),K.copy(T,N)):Uint8Array.prototype.set.call(T,K,N);else if(r.isBuffer(K))K.copy(T,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=K.length}return T};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,T=arguments.length>2&&arguments[2]===!0;if(!T&&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 T?-1:H(o).length;u=(""+u).toLowerCase(),N=!0}}r.byteLength=y;function v(o,u,m){let T=!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 P(this,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ce(this,u,m);default:if(T)throw new TypeError("Unknown encoding: "+o);o=(o+"").toLowerCase(),T=!0}}r.prototype._isBuffer=!0;function A(o,u,m){let T=o[u];o[u]=o[m],o[m]=T}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,T,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),T===void 0&&(T=0),N===void 0&&(N=this.length),u<0||m>o.length||T<0||N>this.length)throw new RangeError("out of range index");if(T>=N&&u>=m)return 0;if(T>=N)return-1;if(u>=m)return 1;if(u>>>=0,m>>>=0,T>>>=0,N>>>=0,this===o)return 0;let K=N-T,de=m-u,$=Math.min(K,de),ie=this.slice(T,N),Re=o.slice(u,m);for(let ke=0;ke<$;++ke)if(ie[ke]!==Re[ke]){K=ie[ke],de=Re[ke];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,T)),r.isBuffer(u))return u.length===0?-1:C(o,u,m,T,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):C(o,[u],m,T,N);throw new TypeError("val must be string, number or Buffer")}function C(o,u,m,T,N){let K=1,de=o.length,$=u.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(o.length<2||u.length<2)return-1;K=2,de/=2,$/=2,m/=2}function ie(ke,Le){return K===1?ke[Le]:ke.readUInt16BE(Le*K)}let Re;if(N){let ke=-1;for(Re=m;Rede&&(m=de-$),Re=m;Re>=0;Re--){let ke=!0;for(let Le=0;Le<$;Le++)if(ie(o,Re+Le)!==ie(u,Le)){ke=!1;break}if(ke)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,T){m=Number(m)||0;let N=o.length-m;T?(T=Number(T),T>N&&(T=N)):T=N;let K=u.length;T>K/2&&(T=K/2);let de;for(de=0;de>>0,isFinite(m)?(m=m>>>0,T===void 0&&(T="utf8")):(T=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");T||(T="utf8");let K=!1;for(;;)switch(T){case"hex":return w(this,o,u,m);case"utf8":case"utf-8":return I(this,o,u,m);case"ascii":case"latin1":case"binary":return k(this,o,u,m);case"base64":return j(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: "+T);T=(""+T).toLowerCase(),K=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function P(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 T=[],N=u;for(;N239?4:K>223?3:K>191?2:1;if(N+$<=m){let ie,Re,ke,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],ke=o[N+3],(ie&192)===128&&(Re&192)===128&&(ke&192)===128&&(Le=(K&15)<<18|(ie&63)<<12|(Re&63)<<6|ke&63,Le>65535&&Le<1114112&&(de=Le))}}de===null?(de=65533,$=1):de>65535&&(de-=65536,T.push(de>>>10&1023|55296),de=56320|de&1023),T.push(de),N+=$}return q(T)}let G=4096;function q(o){let u=o.length;if(u<=G)return String.fromCharCode.apply(String,o);let m="",T=0;for(;TT)&&(m=T);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 T=this[o],N=1,K=0;for(;++K>>0,u=u>>>0,m||V(o,u,this.length);let T=this[o+--u],N=1;for(;u>0&&(N*=256);)T+=this[o+--u]*N;return T},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 T=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(T)+(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 T=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(T)<>>0,u=u>>>0,m||V(o,u,this.length);let T=this[o],N=1,K=0;for(;++K=N&&(T-=Math.pow(2,8*u)),T},r.prototype.readIntBE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let T=u,N=1,K=this[o+--T];for(;T>0&&(N*=256);)K+=this[o+--T]*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 T=this[o+4]+this[o+5]*2**8+this[o+6]*2**16+(m<<24);return(BigInt(T)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let T=(u<<24)+this[++o]*2**16+this[++o]*2**8+this[++o];return(BigInt(T)<>>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,T,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,T){if(o=+o,u=u>>>0,m=m>>>0,!T){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,!T){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 M(o,u,m,T,N){J(u,T,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,T,N){J(u,T,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 M(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,T){if(o=+o,u=u>>>0,!T){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,T){if(o=+o,u=u>>>0,!T){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 M(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,T,N,K){if(m+T>o.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function ue(o,u,m,T,N){return u=+u,m=m>>>0,N||Z(o,u,m,4),h.write(o,u,m,T,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,T,N){return u=+u,m=m>>>0,N||Z(o,u,m,8),h.write(o,u,m,T,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,T){if(!r.isBuffer(o))throw new TypeError("argument should be a Buffer");if(m||(m=0),!T&&T!==0&&(T=this.length),u>=o.length&&(u=o.length),u||(u=0),T>0&&T=this.length)throw new RangeError("Index out of range");if(T<0)throw new RangeError("sourceEnd out of bounds");T>this.length&&(T=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"),T+=` It must be ${u}. Received ${N}`,T},RangeError);function oe(o){let u="",m=o.length,T=o[0]==="-"?1:0;for(;m>=T+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,T,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(T,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,T=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===T){(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(T);return K}function ve(o){return f.toByteArray(L(o))}function Ee(o,u,m,T){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 T=m*16;for(let N=0;N<16;++N)u[T+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 C=[],w=[],I=[];for(let j of v)d(typeof j=="string","All expected entries have to be of type string"),t.includes(j)?C.push(j.toLowerCase()):e.test(j)?w.push(j):(d(j!=="object",'The value "object" should be written as "Object"'),I.push(j));if(w.length>0){let j=C.indexOf("object");j!==-1&&(C.splice(C,j,1),w.push("Object"))}if(C.length>0){switch(C.length){case 1:_+=`of type ${C[0]}`;break;case 2:_+=`one of type ${C[0]} or ${C[1]}`;break;default:{let j=C.pop();_+=`one of type ${C.join(", ")}, or ${j}`}}(w.length>0||I.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 j=w.pop();_+=`an instance of ${w.join(", ")}, or ${j}`}}I.length>0&&(_+=" or ")}switch(I.length){case 0:break;case 1:I[0].toLowerCase()!==I[0]&&(_+="an "),_+=`${I[0]}`;break;case 2:_+=`one of ${I[0]} or ${I[1]}`;break;default:{let j=I.pop();_+=`one of ${I.join(", ")}, or ${j}`}}if(A==null)_+=`. Received ${A}`;else if(typeof A=="function"&&A.name)_+=`. Received function ${A.name}`;else if(typeof A=="object"){var k;if((k=A.constructor)!==null&&k!==void 0&&k.name)_+=`. Received an instance of ${A.constructor.name}`;else{let j=a(A,{depth:-1});_+=`. Received ${j}`}}else{let j=a(A,{colors:!1});j.length>25&&(j=`${j.slice(0,25)}...`),_+=`. Received type ${typeof A} (${j})`}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 C=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 ${C}.`},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 C=BigInt(2)**BigInt(32);(A>C||A<-C)&&(_=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,_,C){return Function.prototype.apply.call(A,_,C)},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 _=[],C=1;C0&&(k=_[0]),k instanceof Error)throw k;var j=new Error("Unhandled error."+(k?" ("+k.message+")":""));throw j.context=k,j}var U=I[A];if(U===void 0)return!1;if(typeof U=="function")h(U,this,_);else for(var P=U.length,z=b(U,P),C=0;C0&&j.length>I&&!j.warned){j.warned=!0;var U=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(_)+" listeners added. Use emitter.setMaxListeners() to increase limit");U.name="MaxListenersExceededWarning",U.emitter=A,U.type=_,U.count=j.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,_,C){var w={fired:!1,wrapFn:void 0,target:A,type:_,listener:C},I=l.bind(w);return I.listener=C,w.wrapFn=I,I}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 C,w,I,k,j;if(t(_),w=this._events,w===void 0)return this;if(C=w[A],C===void 0)return this;if(C===_||C.listener===_)--this._eventsCount===0?this._events=Object.create(null):(delete w[A],w.removeListener&&this.emit("removeListener",A,C.listener||_));else if(typeof C!="function"){for(I=-1,k=C.length-1;k>=0;k--)if(C[k]===_||C[k].listener===_){j=C[k].listener,I=k;break}if(I<0)return this;I===0?C.shift():E(C,I),C.length===1&&(w[A]=C[0]),w.removeListener!==void 0&&this.emit("removeListener",A,j||_)}return this},n.prototype.off=n.prototype.removeListener,n.prototype.removeAllListeners=function(A){var _,C,w;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[A]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete C[A]),this;if(arguments.length===0){var I=Object.keys(C),k;for(w=0;w=0;w--)this.removeListener(A,_[w]);return this};function p(A,_,C){var w=A._events;if(w===void 0)return[];var I=w[_];return I===void 0?[]:typeof I=="function"?C?[I.listener||I]:[I]:C?S(I):b(I,I.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 C=_[A];if(typeof C=="function")return 1;if(C!==void 0)return C.length}return 0}n.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]};function b(A,_){for(var C=new Array(_),w=0;w<_;++w)C[w]=A[w];return C}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:C}=gt(),{isAsyncFunction:w,isArrayBufferView:I}=gt().types,k={};function j(Q){return Q===(Q|0)}function U(Q){return Q===Q>>>0}var P=/^[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(P,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 M(Q,_e,Oe){return Q==null||!d(Q,_e)?Oe:Q[_e]}var ee=S((Q,_e,Oe=null)=>{let fe=M(Oe,"allowArray",!1),Be=M(Oe,"allowFunction",!1);if(!M(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(!I(Q))throw new y(_e,["Buffer","TypedArray","DataView"],Q)});function J(Q,_e){let Oe=C(_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:j,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(M,ee=!1){var Z;return!!(M&&typeof M.pipe=="function"&&typeof M.on=="function"&&(!ee||typeof M.pause=="function"&&typeof M.resume=="function")&&(!M._writableState||((Z=M._readableState)===null||Z===void 0?void 0:Z.readable)!==!1)&&(!M._writableState||M._readableState))}function g(M){var ee;return!!(M&&typeof M.write=="function"&&typeof M.on=="function"&&(!M._readableState||((ee=M._writableState)===null||ee===void 0?void 0:ee.writable)!==!1))}function b(M){return!!(M&&typeof M.pipe=="function"&&M._readableState&&typeof M.on=="function"&&typeof M.write=="function")}function E(M){return M&&(M._readableState||M._writableState||typeof M.write=="function"&&typeof M.on=="function"||typeof M.pipe=="function"&&typeof M.on=="function")}function S(M){return!!(M&&!E(M)&&typeof M.pipeThrough=="function"&&typeof M.getReader=="function"&&typeof M.cancel=="function")}function x(M){return!!(M&&!E(M)&&typeof M.getWriter=="function"&&typeof M.abort=="function")}function y(M){return!!(M&&!E(M)&&typeof M.readable=="object"&&typeof M.writable=="object")}function v(M){return S(M)||x(M)||y(M)}function A(M,ee){return M==null?!1:ee===!0?typeof M[s]=="function":ee===!1?typeof M[a]=="function":typeof M[s]=="function"||typeof M[a]=="function"}function _(M){if(!E(M))return null;let ee=M._writableState,Z=M._readableState,ue=ee||Z;return!!(M.destroyed||M[n]||ue!=null&&ue.destroyed)}function C(M){if(!g(M))return null;if(M.writableEnded===!0)return!0;let ee=M._writableState;return ee!=null&&ee.errored?!1:typeof ee?.ended!="boolean"?null:ee.ended}function w(M,ee){if(!g(M))return null;if(M.writableFinished===!0)return!0;let Z=M._writableState;return Z!=null&&Z.errored?!1:typeof Z?.finished!="boolean"?null:!!(Z.finished||ee===!1&&Z.ended===!0&&Z.length===0)}function I(M){if(!p(M))return null;if(M.readableEnded===!0)return!0;let ee=M._readableState;return!ee||ee.errored?!1:typeof ee?.ended!="boolean"?null:ee.ended}function k(M,ee){if(!p(M))return null;let Z=M._readableState;return Z!=null&&Z.errored?!1:typeof Z?.endEmitted!="boolean"?null:!!(Z.endEmitted||ee===!1&&Z.ended===!0&&Z.length===0)}function j(M){return M&&M[t]!=null?M[t]:typeof M?.readable!="boolean"?null:_(M)?!1:p(M)&&M.readable&&!k(M)}function U(M){return M&&M[e]!=null?M[e]:typeof M?.writable!="boolean"?null:_(M)?!1:g(M)&&M.writable&&!C(M)}function P(M,ee){return E(M)?_(M)?!0:!(ee?.readable!==!1&&j(M)||ee?.writable!==!1&&U(M)):null}function z(M){var ee,Z;return E(M)?M.writableErrored?M.writableErrored:(ee=(Z=M._writableState)===null||Z===void 0?void 0:Z.errored)!==null&&ee!==void 0?ee:null:null}function G(M){var ee,Z;return E(M)?M.readableErrored?M.readableErrored:(ee=(Z=M._readableState)===null||Z===void 0?void 0:Z.errored)!==null&&ee!==void 0?ee:null:null}function q(M){if(!E(M))return null;if(typeof M.closed=="boolean")return M.closed;let ee=M._writableState,Z=M._readableState;return typeof ee?.closed=="boolean"||typeof Z?.closed=="boolean"?ee?.closed||Z?.closed:typeof M._closed=="boolean"&&he(M)?M._closed:null}function he(M){return typeof M._closed=="boolean"&&typeof M._defaultKeepAlive=="boolean"&&typeof M._removedConnection=="boolean"&&typeof M._removedContLen=="boolean"}function ne(M){return typeof M._sent100=="boolean"&&he(M)}function te(M){var ee;return typeof M._consuming=="boolean"&&typeof M._dumped=="boolean"&&((ee=M.req)===null||ee===void 0?void 0:ee.upgradeOrConnect)===void 0}function ce(M){if(!E(M))return null;let ee=M._writableState,Z=M._readableState,ue=ee||Z;return!ue&&ne(M)||!!(ue&&ue.autoDestroy&&ue.emitClose&&ue.closed===!1)}function V(M){var ee;return!!(M&&((ee=M[i])!==null&&ee!==void 0?ee:M.readableDidRead||M.readableAborted))}function le(M){var ee,Z,ue,Ae,Y,W,oe,X,J,re;return!!(M&&((ee=(Z=(ue=(Ae=(Y=(W=M[r])!==null&&W!==void 0?W:M.readableErrored)!==null&&Y!==void 0?Y:M.writableErrored)!==null&&Ae!==void 0?Ae:(oe=M._readableState)===null||oe===void 0?void 0:oe.errorEmitted)!==null&&ue!==void 0?ue:(X=M._writableState)===null||X===void 0?void 0:X.errorEmitted)!==null&&Z!==void 0?Z:(J=M._readableState)===null||J===void 0?void 0:J.errored)!==null&&ee!==void 0?ee:!((re=M._writableState)===null||re===void 0)&&re.errored))}h.exports={isDestroyed:_,kIsDestroyed:n,isDisturbed:V,kIsDisturbed:i,isErrored:le,kIsErrored:r,isReadable:j,kIsReadable:t,kIsClosedPromise:l,kControllerErrorFunction:d,kIsWritable:e,isClosed:q,isDuplexNodeStream:b,isFinished:P,isIterable:A,isReadableNodeStream:p,isReadableStream:S,isReadableEnded:I,isReadableFinished:k,isReadableErrored:G,isNodeStream:E,isWebStream:v,isWritable:U,isWritableNodeStream:g,isWritableStream:x,isWritableEnded:C,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:C,isWritableNodeStream:w,isWritableStream:I,isWritableFinished:k,isWritableErrored:j,isNodeStream:U,willEmitClose:P,kIsClosedPromise:z}=Ct(),G;function q(V){return V.setHeader&&typeof V.abort=="function"}var he=()=>{};function ne(V,le,M){var ee,Z;if(arguments.length===2?(M=le,le=t):le==null?le=t:d(le,"options"),l(M,"callback"),i(le.signal,"options.signal"),M=e(M),v(V)||I(V))return te(V,le,M);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=P(V)&&y(V)===ue&&w(V)===Ae,J=k(V,!1),re=()=>{J=!0,V.destroyed&&(X=!1),!(X&&(!V.readable||ue))&&(!ue||we)&&M.call(V)},we=A(V,!1),pe=()=>{we=!0,V.destroyed&&(X=!1),!(X&&(!V.writable||Ae))&&(!Ae||J)&&M.call(V)},L=Q=>{M.call(V,Q)},H=S(V),se=()=>{H=!0;let Q=j(V)||_(V);if(Q&&typeof Q!="boolean")return M.call(V,Q);if(ue&&!we&&y(V,!0)&&!A(V,!1))return M.call(V,new r);if(Ae&&!J&&!k(V,!1))return M.call(V,new r);M.call(V)},be=()=>{H=!0;let Q=j(V)||_(V);if(Q&&typeof Q!="boolean")return M.call(V,Q);M.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||C(V)===!1)||!Ae&&(!X||C(V))&&(we||x(V)===!1)||W&&V.req&&V.aborted)&&s.nextTick(be);let Ee=()=>{M=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=M;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=M;M=e((...fe)=>{_e[E](),Oe.apply(V,fe)})}}return Ee}function te(V,le,M){let ee=!1,Z=he;if(le.signal)if(Z=()=>{ee=!0,M.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=M;M=e((...W)=>{Ae[E](),Y.apply(V,W)})}let ue=(...Ae)=>{ee||s.nextTick(()=>M.apply(V,Ae))};return b(V[z].promise,ue,ue),he}function ce(V,le){var M;let ee=!1;return le===null&&(le=t),(M=le)!==null&&M!==void 0&&M.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(P,z,G){P&&(P.stack,z&&!z.errored&&(z.errored=P),G&&!G.errored&&(G.errored=P))}function b(P,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(P,q,G),q&&(q.destroyed=!0),G&&(G.destroyed=!0),he.constructed?E(this,P,z):this.once(d,function(ne){E(this,a(ne,P),z)}),this)}function E(P,z,G){let q=!1;function he(ne){if(q)return;q=!0;let te=P._readableState,ce=P._writableState;g(ne,ce,te),ce&&(ce.closed=!0),te&&(te.closed=!0),typeof G=="function"&&G(ne),ne?s.nextTick(S,P,ne):s.nextTick(x,P)}try{P._destroy(z||null,he)}catch(ne){he(ne)}}function S(P,z){y(P,z),x(P)}function x(P){let z=P._readableState,G=P._writableState;G&&(G.closeEmitted=!0),z&&(z.closeEmitted=!0),(G!=null&&G.emitClose||z!=null&&z.emitClose)&&P.emit("close")}function y(P,z){let G=P._readableState,q=P._writableState;q!=null&&q.errorEmitted||G!=null&&G.errorEmitted||(q&&(q.errorEmitted=!0),G&&(G.errorEmitted=!0),P.emit("error",z))}function v(){let P=this._readableState,z=this._writableState;P&&(P.constructed=!0,P.closed=!1,P.closeEmitted=!1,P.destroyed=!1,P.errored=null,P.errorEmitted=!1,P.reading=!1,P.ended=P.readable===!1,P.endEmitted=P.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(P,z,G){let q=P._readableState,he=P._writableState;if(he!=null&&he.destroyed||q!=null&&q.destroyed)return this;q!=null&&q.autoDestroy||he!=null&&he.autoDestroy?P.destroy(z):z&&(z.stack,he&&!he.errored&&(he.errored=z),q&&!q.errored&&(q.errored=z),G?s.nextTick(y,P,z):y(P,z))}function _(P,z){if(typeof P._construct!="function")return;let G=P._readableState,q=P._writableState;G&&(G.constructed=!1),q&&(q.constructed=!1),P.once(p,z),!(P.listenerCount(p)>1)&&s.nextTick(C,P)}function C(P){let z=!1;function G(q){if(z){A(P,q??new c);return}z=!0;let he=P._readableState,ne=P._writableState,te=ne||he;he&&(he.constructed=!0),ne&&(ne.constructed=!0),te.destroyed?P.emit(d,q):q?A(P,q,!0):s.nextTick(w,P)}try{P._construct(q=>{s.nextTick(G,q)})}catch(q){s.nextTick(G,q)}}function w(P){P.emit(p)}function I(P){return P?.setHeader&&typeof P.abort=="function"}function k(P){P.emit("close")}function j(P,z){P.emit("error",z),s.nextTick(k,P)}function U(P,z){!P||e(P)||(!z&&!i(P)&&(z=new n),l(P)?(P.socket=null,P.destroy(z)):I(P)?P.abort():I(P.req)?P.req.abort():typeof P.destroy=="function"?P.destroy(z):typeof P.close=="function"?P.close():z?s.nextTick(j,P,z):s.nextTick(k,P),P.destroyed||(P[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?(C>0&&(y.lastNeed=C-1),C):--_=0?(C>0&&(y.lastNeed=C-2),C):--_=0?(C>0&&(C===2?C=0:y.lastNeed=C-3),C):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:C,done:w}=await g.throw(v);if(await C,w)return}if(typeof g.return=="function"){let{value:C}=await g.return();await C}}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",R=>{_=R}),C=Hl(),w=sr(),{getHighWaterMark:I,getDefaultHighWaterMark:k}=Jr(),{aggregateTwoErrors:j,codes:{ERR_INVALID_ARG_TYPE:U,ERR_METHOD_NOT_IMPLEMENTED:P,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:M}=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(R){return{enumerable:!1,get(){return(this.state&R)!==0},set(F){F?this.state|=R:this.state&=~R}}}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(R,F,Pe){typeof Pe!="boolean"&&(Pe=F instanceof kt()),this.state=pe|L|Y|W,R&&R.objectMode&&(this.state|=ee),Pe&&R&&R.readableObjectMode&&(this.state|=ee),this.highWaterMark=R?I(this,R,"readableHighWaterMark",Pe):k(!1),this.buffer=new C,this.length=0,this.pipes=[],this.flowing=null,this[te]=null,R&&R.emitClose===!1&&(this.state&=~pe),R&&R.autoDestroy===!1&&(this.state&=~L),this.errored=null,this.defaultEncoding=R&&R.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,R&&R.encoding&&(this.decoder=new ce(R.encoding),this.encoding=R.encoding)}function fe(R){if(!(this instanceof fe))return new fe(R);let F=this instanceof kt();this._readableState=new Oe(R,this,F),R&&(typeof R.read=="function"&&(this._read=R.read),typeof R.destroy=="function"&&(this._destroy=R.destroy),typeof R.construct=="function"&&(this._construct=R.construct),R.signal&&!F&&v(R.signal,this)),S.call(this,R),w.construct(this,()=>{this._readableState.needReadable&&$(this,this._readableState)})}fe.prototype.destroy=w.destroy,fe.prototype._undestroy=w.undestroy,fe.prototype._destroy=function(R,F){F(R)},fe.prototype[E.captureRejectionSymbol]=function(R){this.destroy(R)},fe.prototype[p]=function(){let R;return this.destroyed||(R=this.readableEnded?null:new he,this.destroy(R)),new l((F,Pe)=>A(this,Te=>Te&&Te!==R?Pe(Te):F(null)))},fe.prototype.push=function(R,F){return Be(this,R,F,!1)},fe.prototype.unshift=function(R,F){return Be(this,R,F,!0)};function Be(R,F,Pe,Te){_("readableAddChunk",F);let Me=R._readableState,rt;if((Me.state&ee)===0&&(typeof F=="string"?(Pe=Pe||Me.defaultEncoding,Me.encoding!==Pe&&(Te&&Me.encoding?F=y.from(F,Pe).toString(Me.encoding):(F=y.from(F,Pe),Pe=""))):F instanceof y?Pe="":S._isUint8Array(F)?(F=S._uint8ArrayToBuffer(F),Pe=""):F!=null&&(rt=new U("chunk",["string","Buffer","Uint8Array"],F))),rt)M(R,rt);else if(F===null)Me.state&=~Ae,N(R,Me);else if((Me.state&ee)!==0||F&&F.length>0)if(Te)if((Me.state&ue)!==0)M(R,new q);else{if(Me.destroyed||Me.errored)return!1;o(R,Me,F,!0)}else if(Me.ended)M(R,new G);else{if(Me.destroyed||Me.errored)return!1;Me.state&=~Ae,Me.decoder&&!Pe?(F=Me.decoder.write(F),Me.objectMode||F.length!==0?o(R,Me,F,!1):$(R,Me)):o(R,Me,F,!1)}else Te||(Me.state&=~Ae,$(R,Me));return!Me.ended&&(Me.length0?((F.state&ve)!==0?F.awaitDrainWriters.clear():F.awaitDrainWriters=null,F.dataEmitted=!0,R.emit("data",Pe)):(F.length+=F.objectMode?1:Pe.length,Te?F.buffer.unshift(Pe):F.buffer.push(Pe),(F.state&oe)!==0&&K(R)),$(R,F)}fe.prototype.isPaused=function(){let R=this._readableState;return R[te]===!0||R.flowing===!1},fe.prototype.setEncoding=function(R){let F=new ce(R);this._readableState.decoder=F,this._readableState.encoding=this._readableState.decoder.encoding;let Pe=this._readableState.buffer,Te="";for(let Me of Pe)Te+=F.write(Me);return Pe.clear(),Te!==""&&Pe.push(Te),this._readableState.length=Te.length,this};var u=1073741824;function m(R){if(R>u)throw new z("size","<= 1GiB",R);return R--,R|=R>>>1,R|=R>>>2,R|=R>>>4,R|=R>>>8,R|=R>>>16,R++,R}function T(R,F){return R<=0||F.length===0&&F.ended?0:(F.state&ee)!==0?1:n(R)?F.flowing&&F.length?F.buffer.first().length:F.length:R<=F.length?R:F.ended?F.length:0}fe.prototype.read=function(R){_("read",R),R===void 0?R=NaN:c(R)||(R=r(R,10));let F=this._readableState,Pe=R;if(R>F.highWaterMark&&(F.highWaterMark=m(R)),R!==0&&(F.state&=~X),R===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(R=T(R,F),R===0&&F.ended)return F.length===0&&He(this),null;let Te=(F.state&oe)!==0;if(_("need readable",Te),(F.length===0||F.length-R0?Me=tt(R,F):Me=null,Me===null?(F.needReadable=F.length<=F.highWaterMark,R=0):(F.length-=R,F.multiAwaitDrain?F.awaitDrainWriters.clear():F.awaitDrainWriters=null),F.length===0&&(F.ended||(F.needReadable=!0),Pe!==R&&F.ended&&He(this)),Me!==null&&!F.errorEmitted&&!F.closeEmitted&&(F.dataEmitted=!0,this.emit("data",Me)),Me};function N(R,F){if(_("onEofChunk"),!F.ended){if(F.decoder){let Pe=F.decoder.end();Pe&&Pe.length&&(F.buffer.push(Pe),F.length+=F.objectMode?1:Pe.length)}F.ended=!0,F.sync?K(R):(F.needReadable=!1,F.emittedReadable=!0,de(R))}}function K(R){let F=R._readableState;_("emitReadable",F.needReadable,F.emittedReadable),F.needReadable=!1,F.emittedReadable||(_("emitReadable",F.flowing),F.emittedReadable=!0,s.nextTick(de,R))}function de(R){let F=R._readableState;_("emitReadable_",F.destroyed,F.length,F.ended),!F.destroyed&&!F.errored&&(F.length||F.ended)&&(R.emit("readable"),F.emittedReadable=!1),F.needReadable=!F.flowing&&!F.ended&&F.length<=F.highWaterMark,Fe(R)}function $(R,F){!F.readingMore&&F.constructed&&(F.readingMore=!0,s.nextTick(ie,R,F))}function ie(R,F){for(;!F.reading&&!F.ended&&(F.length1&&Te.pipes.includes(R)&&(_("false write response, pause",Te.awaitDrainWriters.size),Te.awaitDrainWriters.add(R)),Pe.pause()),mt||(mt=Re(Pe,R),R.on("drain",mt))}Pe.on("data",Ht);function Ht(Qe){_("ondata");let wt=R.write(Qe);_("dest.write",wt),wt===!1&&Kt()}function Et(Qe){if(_("onerror",Qe),At(),R.removeListener("error",Et),R.listenerCount("error")===0){let wt=R._writableState||R._readableState;wt&&!wt.errorEmitted?M(R,Qe):R.emit("error",Qe)}}x(R,"error",Et);function ze(){R.removeListener("finish",bt),At()}R.once("close",ze);function bt(){_("onfinish"),R.removeListener("close",ze),At()}R.once("finish",bt);function At(){_("unpipe"),Pe.unpipe(R)}return R.emit("pipe",Pe),R.writableNeedDrain===!0?Kt():Te.flowing||(_("pipe resume"),Pe.resume()),R};function Re(R,F){return function(){let Pe=R._readableState;Pe.awaitDrainWriters===F?(_("pipeOnDrain",1),Pe.awaitDrainWriters=null):Pe.multiAwaitDrain&&(_("pipeOnDrain",Pe.awaitDrainWriters.size),Pe.awaitDrainWriters.delete(F)),(!Pe.awaitDrainWriters||Pe.awaitDrainWriters.size===0)&&R.listenerCount("data")&&R.resume()}}fe.prototype.unpipe=function(R){let F=this._readableState,Pe={hasUnpiped:!1};if(F.pipes.length===0)return this;if(!R){let Me=F.pipes;F.pipes=[],this.pause();for(let rt=0;rt0,Te.flowing!==!1&&this.resume()):R==="readable"&&!Te.endEmitted&&!Te.readableListening&&(Te.readableListening=Te.needReadable=!0,Te.flowing=!1,Te.emittedReadable=!1,_("on readable",Te.length,Te.reading),Te.length?K(this):Te.reading||s.nextTick(Le,this)),Pe},fe.prototype.addListener=fe.prototype.on,fe.prototype.removeListener=function(R,F){let Pe=S.prototype.removeListener.call(this,R,F);return R==="readable"&&s.nextTick(ke,this),Pe},fe.prototype.off=fe.prototype.removeListener,fe.prototype.removeAllListeners=function(R){let F=S.prototype.removeAllListeners.apply(this,arguments);return(R==="readable"||R===void 0)&&s.nextTick(ke,this),F};function ke(R){let F=R._readableState;F.readableListening=R.listenerCount("readable")>0,F.resumeScheduled&&F[te]===!1?F.flowing=!0:R.listenerCount("data")>0?R.resume():F.readableListening||(F.flowing=null)}function Le(R){_("readable nexttick read 0"),R.read(0)}fe.prototype.resume=function(){let R=this._readableState;return R.flowing||(_("resume"),R.flowing=!R.readableListening,Ue(this,R)),R[te]=!1,this};function Ue(R,F){F.resumeScheduled||(F.resumeScheduled=!0,s.nextTick(Xe,R,F))}function Xe(R,F){_("resume",F.reading),F.reading||R.read(0),F.resumeScheduled=!1,R.emit("resume"),Fe(R),F.flowing&&!F.reading&&R.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(R){let F=R._readableState;for(_("flow",F.flowing);F.flowing&&R.read()!==null;);}fe.prototype.wrap=function(R){let F=!1;R.on("data",Te=>{!this.push(Te)&&R.pause&&(F=!0,R.pause())}),R.on("end",()=>{this.push(null)}),R.on("error",Te=>{M(this,Te)}),R.on("close",()=>{this.destroy()}),R.on("destroy",()=>{this.destroy()}),this._read=()=>{F&&R.resume&&(F=!1,R.resume())};let Pe=e(R);for(let Te=1;Te{Me=at?j(Me,at):null,Pe(),Pe=le});try{for(;;){let at=R.destroyed?null:R.read();if(at!==null)yield at;else{if(Me)throw Me;if(Me===null)return;await new l(Te)}}}catch(at){throw Me=j(Me,at),Me}finally{(Me||F?.destroyOnReturn!==!1)&&(Me===void 0||R._readableState.autoDestroy)?w.destroyer(R,null):(R.off("readable",Te),rt())}}t(fe.prototype,{readable:{__proto__:null,get(){let R=this._readableState;return!!R&&R.readable!==!1&&!R.destroyed&&!R.errorEmitted&&!R.endEmitted},set(R){this._readableState&&(this._readableState.readable=!!R)}},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(R){this._readableState&&(this._readableState.flowing=R)}},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(R){this._readableState&&(this._readableState.destroyed=R)}},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(R){this[te]=!!R}}}),fe._fromList=tt;function tt(R,F){if(F.length===0)return null;let Pe;return F.objectMode?Pe=F.buffer.shift():!R||R>=F.length?(F.decoder?Pe=F.buffer.join(""):F.buffer.length===1?Pe=F.buffer.first():Pe=F.buffer.concat(F.length),F.buffer.clear()):Pe=F.buffer.consume(R,F.decoder),Pe}function He(R){let F=R._readableState;_("endReadable",F.endEmitted),F.endEmitted||(F.ended=!0,s.nextTick($e,F,R))}function $e(R,F){if(_("endReadableNT",R.endEmitted,R.length),!R.errored&&!R.closeEmitted&&!R.endEmitted&&R.length===0){if(R.endEmitted=!0,F.emit("end"),F.writable&&F.allowHalfOpen===!1)s.nextTick(nt,F);else if(R.autoDestroy){let Pe=F._writableState;(!Pe||Pe.autoDestroy&&(Pe.finished||Pe.writable===!1))&&F.destroy()}}}function nt(R){R.writable&&!R.writableEnded&&!R.destroyed&&R.end()}fe.from=function(R,F){return V(fe,R,F)};var dt;function lt(){return dt===void 0&&(dt={}),dt}fe.fromWeb=function(R,F){return lt().newStreamReadableFromReadableStream(R,F)},fe.toWeb=function(R,F){return lt().newReadableStreamFromStreamReadable(R,F)},fe.wrap=function(R,F){var Pe,Te;return new fe({objectMode:(Pe=(Te=R.readableObjectMode)!==null&&Te!==void 0?Te:R.objectMode)!==null&&Pe!==void 0?Pe:!0,...F,destroy(Me,rt){w.destroyer(R,Me),rt(Me)}}).wrap(R)}}),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:C,ERR_STREAM_DESTROYED:w,ERR_STREAM_ALREADY_FINISHED:I,ERR_STREAM_NULL_VALUES:k,ERR_STREAM_WRITE_AFTER_END:j,ERR_UNKNOWN_ENCODING:U}=pt().codes,{errorOrDestroy:P}=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 kt()),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=M.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 kt();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(){P(this,new C)};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 k;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 j:ve.destroyed&&(Ee=new w("write")),Ee?(s.nextTick(be,Ee),P(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 I("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){P(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=kt(),v=Xr(),A=ho(),{createDeferredPromise:_}=gt(),C=ra(),w=globalThis.Blob||a.Blob,I=typeof w<"u"?function(G){return G instanceof w}:function(G){return!1},k=globalThis.AbortController||gr().AbortController,{FunctionPrototypeCall:j}=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}=P(q);if(r(te))return C(U,te,{objectMode:!0,write:ce,final:V,destroy:le});let M=te?.then;if(typeof M=="function"){let ee,Z=j(M,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(I(q))return G(q.arrayBuffer());if(r(q))return C(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 j(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 P(G){let{promise:q,resolve:he}=_(),ne=new k,te=ne.signal;return{value:G((async function*(){for(;;){let ce=q;q=null;let{chunk:V,done:le,cb:M}=await ce;if(s.nextTick(M),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 M=he;he=null,M({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,M,ee;function Z(ue){let Ae=M;M=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&&M!==null&&(ue=new b),le=null,ce=null,V=null,M===null?Ae(ue):(M=Ae,x(he,ue),x(q,ue))},ee}}),kt=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=kt(),{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=kt(),{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:C,isNodeStream:w,isTransformStream:I,isWebStream:k,isReadableStream:j,isReadableFinished:U}=Ct(),P=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(C(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}){I(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 M(...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 P,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 T=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",T),_(fe)&&m&&J.push(()=>{fe.removeListener("error",T)})}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)||C(fe)||I(fe)?Ee=fe:Ee=l.from(fe);else if(typeof fe=="function"){if(I(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 T=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&&T.write($),u&&T.end(),s.nextTick(be)},$=>{T.destroy($),s.nextTick(be,$)});else if(A(Ee,!0))se++,V(Ee,T,be,{end:u});else if(j(Ee)||I(Ee)){let $=Ee.readable||Ee;se++,V($,T,be,{end:u})}else throw new g("AsyncIterable or Promise","destination",Ee);Ee=T;let{destroy:K,cleanup:de}=he(Ee,!1,!0);H.push(K),m&&J.push(de)}}else if(w(fe)){if(C(Ee)){se+=2;let T=Z(Ee,fe,be,{end:u});_(fe)&&m&&J.push(T)}else if(I(Ee)||j(Ee)){let T=Ee.readable||Ee;se++,V(T,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(k(fe)){if(C(Ee))se++,le(te(Ee),fe,be,{end:u});else if(j(Ee)||A(Ee))se++,le(Ee,fe,be,{end:u});else if(I(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:M}}),oa=Se((f,h)=>{ge(),me(),ye();var{pipeline:s}=fo(),a=kt(),{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 P=S.length-1;S[P]=a.from(S[P])}for(let P=0;P0&&!(t(S[P])||l(S[P])||i(S[P])))throw new g(`streams[${P}]`,x[P],"must be writable")}let y,v,A,_,C;function w(P){let z=_;_=null,z?z(P):P?C.destroy(P):!U&&!j&&C.destroy()}let I=S[0],k=s(S,w),j=!!(t(I)||l(I)||i(I)),U=!!(r(k)||d(k)||i(k));if(C=new a({writableObjectMode:!!(I!=null&&I.writableObjectMode),readableObjectMode:!!(k!=null&&k.readableObjectMode),writable:j,readable:U}),j){if(n(I))C._write=function(z,G,q){I.write(z,G)?q():y=q},C._final=function(z){I.end(),v=z},I.on("drain",function(){if(y){let z=y;y=null,z()}});else if(e(I)){let z=(i(I)?I.writable:I).getWriter();C._write=async function(G,q,he){try{await z.ready,z.write(G).catch(()=>{}),he()}catch(ne){he(ne)}},C._final=async function(G){try{await z.ready,z.close().catch(()=>{}),v=G}catch(q){G(q)}}}let P=i(k)?k.readable:k;E(P,()=>{if(v){let z=v;v=null,z()}})}if(U){if(n(k))k.on("readable",function(){if(A){let P=A;A=null,P()}}),k.on("end",function(){C.push(null)}),C._read=function(){for(;;){let P=k.read();if(P===null){A=C._read;return}if(!C.push(P))return}};else if(e(k)){let P=(i(k)?k.readable:k).getReader();C._read=async function(){for(;;)try{let{value:z,done:G}=await P.read();if(!C.push(z))return;if(G){C.push(null);return}}catch{return}}}}return C._destroy=function(P,z){!P&&_!==null&&(P=new p),A=null,y=null,v=null,_===null?z(P):(_=z,n(k)&&c(k,P))},C}}),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:C,NumberIsNaN:w,Promise:I,PromiseReject:k,PromiseResolve:j,PromisePrototypeThen:U,Symbol:P}=Ze(),z=P("kEmpty"),G=P("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 I(u=>{ve=u})}H.push(G)}catch(o){let u=k(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 I(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 M.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 M.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 M(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=C(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:M,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(C,this,w))},C=t[A];a(_,"name",{__proto__:null,value:C.name}),a(_,"length",{__proto__:null,value:C.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(C,this,w)},C=e[A];a(_,"name",{__proto__:null,value:C.name}),a(_,"length",{__proto__:null,value:C.length}),a(y.Readable.prototype,A,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}y.Writable=ho(),y.Duplex=kt(),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(I==="%%")return"%";w++;let j=n.formatters[k];if(typeof j=="function"){let U=v[w];I=j.call(A,U),v.splice(w,1),w--}return I}),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}),Tt=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=Tt()("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=Tt()("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 C(Y,W,oe);case"suback":return w(Y,W,oe);case"unsubscribe":return I(Y,W,oe);case"unsuback":return k(Y,W,oe);case"pingreq":case"pingresp":return j(Y,W);case"disconnect":return U(Y,W,oe);case"auth":return P(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=M(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 C(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,_,C,w,I,k,j,U,P,z,G,q,he,ne,te,ce,V,le,M,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,C);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,I);qe(this,k);qe(this,j);qe(this,U);qe(this,P);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,M);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,T)=>{if(m||T)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:T=1,ttlAutopurge:N,updateAgeOnGet:K,updateAgeOnHas:de,allowStale:$,dispose:ie,disposeAfter:Re,noDisposeOnSet:ke,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,C,je),We!==void 0&&typeof We!="function")throw new TypeError("fetchMethod must be a function if specified");if(De(this,_,We),De(this,M,!!We),De(this,k,new Map),De(this,j,new Array(u).fill(void 0)),De(this,U,new Array(u).fill(void 0)),De(this,P,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,I,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=!!ke,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(T)||T===0?T: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 R="LRU_CACHE_UNBOUNDED";t(R)&&(s.add(R),c("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",R,fe))}}static unsafeExposeInternals(o){return{starts:D(o,ce),ttls:D(o,V),sizes:D(o,te),keyMap:D(o,k),keyList:D(o,j),valList:D(o,U),next:D(o,P),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,T,N)=>{var K;return Ne(K=o,Z,Ar).call(K,u,m,T,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,I)}get size(){return D(this,w)}get fetchMethod(){return D(this,_)}get memoMethod(){return D(this,C)}get dispose(){return D(this,v)}get disposeAfter(){return D(this,A)}getRemainingTTL(o){return D(this,k).has(o)?1/0:0}*entries(){for(let o of Ne(this,Z,Lt).call(this))D(this,U)[o]!==void 0&&D(this,j)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield[D(this,j)[o],D(this,U)[o]])}*rentries(){for(let o of Ne(this,Z,Dt).call(this))D(this,U)[o]!==void 0&&D(this,j)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield[D(this,j)[o],D(this,U)[o]])}*keys(){for(let o of Ne(this,Z,Lt).call(this)){let u=D(this,j)[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,j)[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 T=D(this,U)[m],N=Ne(this,Z,Ye).call(this,T)?T.__staleWhileFetching:T;if(N!==void 0&&o(N,D(this,j)[m],this))return this.get(D(this,j)[m],u)}}forEach(o,u=this){for(let m of Ne(this,Z,Lt).call(this)){let T=D(this,U)[m],N=Ne(this,Z,Ye).call(this,T)?T.__staleWhileFetching:T;N!==void 0&&o.call(u,N,D(this,j)[m],this)}}rforEach(o,u=this){for(let m of Ne(this,Z,Dt).call(this)){let T=D(this,U)[m],N=Ne(this,Z,Ye).call(this,T)?T.__staleWhileFetching:T;N!==void 0&&o.call(u,N,D(this,j)[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,j)[u],"expire"),o=!0);return o}info(o){let u=D(this,k).get(o);if(u===void 0)return;let m=D(this,U)[u],T=Ne(this,Z,Ye).call(this,m)?m.__staleWhileFetching:m;if(T===void 0)return;let N={value:T};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,j)[u],T=D(this,U)[u],N=Ne(this,Z,Ye).call(this,T)?T.__staleWhileFetching:T;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 T=Date.now()-m.start;m.start=h.now()-T}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:T=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 ke=D(this,w)===0?void 0:D(this,k).get(o);if(ke===void 0)ke=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,j)[ke]=o,D(this,U)[ke]=u,D(this,k).set(o,ke),D(this,P)[D(this,q)]=ke,D(this,z)[ke]=D(this,q),De(this,q,ke),br(this,w)._++,D(this,re).call(this,ke,Re,$),$&&($.set="add"),ie=!1;else{Ne(this,Z,fr).call(this,ke);let Fe=D(this,U)[ke];if(u!==Fe){if(D(this,M)&&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,ke),D(this,re).call(this,ke,Re,$),D(this,U)[ke]=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(T!==0&&!D(this,V)&&Ne(this,Z,yi).call(this),D(this,V)&&(ie||D(this,W).call(this,ke,T,N),$&&D(this,Y).call(this,$,ke)),!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:T}=u,N=D(this,k).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))T&&(T.has="stale",D(this,Y).call(this,T,N));else return m&&D(this,Ae).call(this,N),T&&(T.has="hit",D(this,Y).call(this,T,N)),!0}else T&&(T.has="miss");return!1}peek(o,u={}){let{allowStale:m=this.allowStale}=u,T=D(this,k).get(o);if(T===void 0||!m&&D(this,oe).call(this,T))return;let N=D(this,U)[T];return Ne(this,Z,Ye).call(this,N)?N.__staleWhileFetching:N}async fetch(o,u={}){let{allowStale:m=this.allowStale,updateAgeOnGet:T=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:ke=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,M))return je&&(je.fetch="get"),this.get(o,{allowStale:m,updateAgeOnGet:T,noDeleteOnStaleGet:N,status:je});let He={allowStale:m,updateAgeOnGet:T,noDeleteOnStaleGet:N,ttl:K,noDisposeOnSet:de,size:$,sizeCalculation:ie,noUpdateTTL:Re,noDeleteOnFetchRejection:ke,allowStaleOnFetchRejection:Le,allowStaleOnFetchAbort:Xe,ignoreFetchAbort:Ue,status:je,signal:tt},$e=D(this,k).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),T&&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),R=lt.__staleWhileFetching!==void 0&&m;return je&&(je.fetch=dt?"stale":"refresh",R&&dt&&(je.returnedStale=!0)),R?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,C);if(!m)throw new Error("no memoMethod provided to constructor");let{context:T,forceRefresh:N,...K}=u,de=this.get(o,K);if(!N&&de!==void 0)return de;let $=m(o,de,{options:K,context:T});return this.set(o,$,K),$}get(o,u={}){let{allowStale:m=this.allowStale,updateAgeOnGet:T=this.updateAgeOnGet,noDeleteOnStaleGet:N=this.noDeleteOnStaleGet,status:K}=u,de=D(this,k).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),T&&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,C=new WeakMap,w=new WeakMap,I=new WeakMap,k=new WeakMap,j=new WeakMap,U=new WeakMap,P=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,M=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,j)[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||T();let ie=N.now-$;N.remainingTTL=de-ie}});let m=0,T=()=>{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,k).get(N);if(K===void 0)return 0;let de=o[K],$=u[K];if(!de||!$)return 1/0;let ie=(m||T())-$;return de-ie},De(this,oe,N=>{let K=u[N],de=o[N];return!!de&&!!K&&(m||T())-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,I,0),De(this,te,o),De(this,J,u=>{De(this,I,D(this,I)-o[u]),o[u]=0}),De(this,we,(u,m,T,N)=>{if(Ne(this,Z,Ye).call(this,m))return 0;if(!e(T))if(N){if(typeof N!="function")throw new TypeError("sizeCalculation must be a function");if(T=N(m,u),!e(T))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 T}),De(this,re,(u,m,T)=>{if(o[u]=m,D(this,y)){let N=D(this,y)-o[u];for(;D(this,I)>N;)Ne(this,Z,Er).call(this,!0)}De(this,I,D(this,I)+o[u]),T&&(T.entrySize=m,T.totalCalculatedSize=D(this,I))})},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,P)[u]},mi=function(o){return o!==void 0&&D(this,k).get(D(this,j)[o])===o},Er=function(o){var N;let u=D(this,G),m=D(this,j)[u],T=D(this,U)[u];return D(this,M)&&Ne(this,Z,Ye).call(this,T)?T.__abortController.abort(new Error("evicted")):(D(this,le)||D(this,ee))&&(D(this,le)&&((N=D(this,v))==null||N.call(this,T,m,"evict")),D(this,ee)&&D(this,ne)?.push([T,m,"evict"])),D(this,J).call(this,u),o&&(D(this,j)[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,P)[u]),D(this,k).delete(m),br(this,w)._--,u},Ar=function(o,u,m,T){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:T},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 ke(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),ke(Fe)),ke=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,k).get(o)):D(this,U)[u]=Xe,Xe},Ye=function(o){if(!D(this,M))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,P)[o]=u},fr=function(o){o!==D(this,q)&&(o===D(this,G)?De(this,G,D(this,P)[o]):Ne(this,Z,bi).call(this,D(this,z)[o],D(this,P)[o]),Ne(this,Z,bi).call(this,D(this,q),o),De(this,q,o))},Ft=function(o,u){var T,N;let m=!1;if(D(this,w)!==0){let K=D(this,k).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)&&((T=D(this,v))==null||T.call(this,de,o,u)),D(this,ee)&&D(this,ne)?.push([de,o,u])),D(this,k).delete(o),D(this,j)[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,P)[K]);else{let $=D(this,z)[K];D(this,P)[$]=D(this,P)[K];let ie=D(this,P)[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 T of Ne(this,Z,Dt).call(this,{allowStale:!0})){let N=D(this,U)[T];if(Ne(this,Z,Ye).call(this,N))N.__abortController.abort(new Error("deleted"));else{let K=D(this,j)[T];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,k).clear(),D(this,U).fill(void 0),D(this,j).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,I,0),De(this,w,0),D(this,ee)&&D(this,ne)){let T=D(this,ne),N;for(;N=T?.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}}}),Pu=Se((f,h)=>{ge(),me(),ye();var s=Ou().OrderedSet,a=Tt()("number-allocator:trace"),c=Tt()("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(){""+this.ss.size();for(let t of this.ss);},h.exports=r}),Ia=Se((f,h)=>{ge(),me(),ye();var s=Pu();h.exports.NumberAllocator=s}),ku=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}),Tu=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(ku()),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(Tu()),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}),Pa=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}),ka=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}),Ta=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=Ta();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,C=Object.create(_.prototype);return s(C,"_invoke",(function(w,I,k){var j,U,P,z=0,G=k||[],q=!1,he={p:0,n:0,v:c,a:ne,f:ne.bind(c,4),d:function(te,ce){return j=te,U=0,P=c,he.n=ce,l}};function ne(te,ce){for(U=te,P=ce,n=0;!q&&z&&!V&&n3?(V=ee===ce)&&(P=le[(U=le[4])?5:(U=3,3)],le[4]=le[5]=c):le[0]<=M&&((V=te<2&&Mce||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,P=V;(n=U<2?c:P)||!q;){j||(U?U<3?(U>1&&(he.n=-1),ne(U,P)):he.n=P:he.v=P);try{if(z=2,j){if(U||(te="next"),n=j[te]){if(!(n=n.call(j,P)))throw TypeError("iterator result is not an object");if(!n.done)return n;P=n.value,U<2&&(U=0)}else U===1&&(n=j.return)&&n.call(j),U<2&&(P=TypeError("The iterator does not provide a '"+te+"' method"),U=1);j=c}else if((n=(q=he.n<0)?P:w.call(I,he))!==l)break}catch(le){j=c,U=1,P=le}finally{z=1}}return{value:n,done:q}}})(x,v,A),!0),C}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=ka(),a=Ta();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=ka(),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,_,C){return x.resultName=_,y(v.d,e(A),C)},finish:function(A){return y(v.f,A)}},y=function(A,_,C){v.p=x.prev,v.n=x.next;try{return A(_,C)}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(),Pa(),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(C){return Object.getOwnPropertyDescriptor(y,C).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)},I={},k=0,j=Object.entries(v);k{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,en(),Yu(),Pa()):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(C,w,I,k){k===void 0&&(k=I);var j=Object.getOwnPropertyDescriptor(w,I);(!j||("get"in j?!w.__esModule:j.writable||j.configurable))&&(j={enumerable:!0,get:function(){return w[I]}}),Object.defineProperty(C,k,j)}:function(C,w,I,k){k===void 0&&(k=I),C[k]=w[I]}),s=f&&f.__setModuleDefault||(Object.create?function(C,w){Object.defineProperty(C,"default",{enumerable:!0,value:w})}:function(C,w){C.default=w}),a=f&&f.__importStar||(function(){var C=function(w){return C=Object.getOwnPropertyNames||function(I){var k=[];for(var j in I)Object.prototype.hasOwnProperty.call(I,j)&&(k[k.length]=j);return k},C(w)};return function(w){if(w&&w.__esModule)return w;var I={};if(w!=null)for(var k=C(w),j=0;j{let w=C.shift();(0,b.nextTick)(()=>{w(...C)})}),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,I){super(),this.options=I||{};for(let k in v)typeof this.options[k]>"u"?this.options[k]=v[k]:this.options[k]=I[k];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",I.protocol),this.log("MqttClient :: options.protocolVersion",I.protocolVersion),this.log("MqttClient :: options.username",I.username),this.log("MqttClient :: options.keepalive",I.keepalive),this.log("MqttClient :: options.reconnectPeriod",I.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",I.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",I.properties?I.properties.topicAliasMaximum:void 0),this.options.clientId=typeof I.clientId=="string"?I.clientId:_.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=I.protocolVersion===5&&I.customHandleAcks?I.customHandleAcks:(...k)=>{k[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=I.outgoingStore||new l.default,this.incomingStore=I.incomingStore||new l.default,this.queueQoSZero=I.queueQoSZero===void 0?!0:I.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,I.properties&&I.properties.topicAliasMaximum>0&&(I.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new g.default(I.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:k}=this,j=()=>{let U=k.shift();this.log("deliver :: entry %o",U);let P=null;if(!U){this._resubscribe();return}P=U.packet,this.log("deliver :: call _sendPacket for %o",P);let z=!0;P.messageId&&P.messageId!==0&&(this.messageIdProvider.register(P.messageId)||(z=!1)),z?this._sendPacket(P,G=>{U.cb&&U.cb(G),j()}):(this.log("messageId: %d has already used. The message is skipped and removed.",P.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(w,I){I()}handleMessage(w,I){I()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){let w=new r.Writable,I=n.default.parser(this.options),k=null,j=[];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),I.on("packet",q=>{this.log("parser :: on packet push to packets array."),j.push(q)});let U=()=>{this.log("work :: getting next packet in queue");let q=j.shift();if(q)this.log("work :: packet pulled from queue"),(0,d.default)(this,q,P);else{this.log("work :: no packets in queue");let he=k;k=null,this.log("work :: done flag is %s",!!he),he&&he()}},P=()=>{if(j.length)(0,b.nextTick)(U);else{let q=k;k=null,q()}};w._write=(q,he,ne)=>{k=ne,this.log("writable stream :: parsing buffer"),I.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),I.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,I,k,j){this.log("publish :: message `%s` to topic `%s`",I,w);let{options:U}=this;typeof k=="function"&&(j=k,k=null),k=k||{},k={qos:0,retain:!1,dup:!1,...k};let{qos:P,retain:z,dup:G,properties:q,cbStorePut:he}=k;if(this._checkDisconnecting(j))return this;let ne=()=>{let te=0;if((P===1||P===2)&&(te=this._nextId(),te===null))return this.log("No messageId left"),!1;let ce={cmd:"publish",topic:w,payload:I,qos:P,retain:z,messageId:te,dup:G};switch(U.protocolVersion===5&&(ce.properties=q),this.log("publish :: qos",P),P){case 1:case 2:this.outgoing[ce.messageId]={volatile:!1,cb:j||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,j,he);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ne())&&this._storeProcessingQueue.push({invoke:ne,cbStorePut:k.cbStorePut,callback:j}),this}publishAsync(w,I,k){return new Promise((j,U)=>{this.publish(w,I,k,(P,z)=>{P?U(P):j(z)})})}subscribe(w,I,k){let j=this.options.protocolVersion;typeof I=="function"&&(k=I),k=k||this.noop;let U=!1,P=[];typeof w=="string"?(w=[w],P=w):Array.isArray(w)?P=w:typeof w=="object"&&(U=w.resubscribe,delete w.resubscribe,P=Object.keys(w));let z=i.validateTopics(P);if(z!==null)return y(k,new Error(`Invalid topic ${z}`)),this;if(this._checkDisconnecting(k))return this.log("subscribe: discconecting true"),this;let G={qos:0};j===5&&(G.nl=!1,G.rap=!1,G.rh=0),I={...G,...I};let{properties:q}=I,he=[],ne=(V,le)=>{if(le=le||I,!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 k(null,[]),this;let te=(V,le)=>{let M={cmd:"subscribe",subscriptions:V,messageId:le};if(q&&(M.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};j===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[M.messageId]=Z}let ee=new Promise((Z,ue)=>{this.outgoing[M.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 M=0;M{k(null,he,M.at(-1))}).catch(M=>{k(M,he,M.packet)}),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ce())&&this._storeProcessingQueue.push({invoke:ce,callback:k}),this}subscribeAsync(w,I){return new Promise((k,j)=>{this.subscribe(w,I,(U,P)=>{U?j(U):k(P)})})}unsubscribe(w,I,k){typeof w=="string"&&(w=[w]),typeof I=="function"&&(k=I),k=k||this.noop;let j=i.validateTopics(w);if(j!==null)return y(k,new Error(`Invalid topic ${j}`)),this;if(this._checkDisconnecting(k))return this;let U=()=>{let P=this._nextId();if(P===null)return this.log("No messageId left"),!1;let z={cmd:"unsubscribe",messageId:P,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 I=="object"&&I.properties&&(z.properties=I.properties),this.outgoing[z.messageId]={volatile:!0,cb:k},this.log("unsubscribe: call _sendPacket"),this._sendPacket(z),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!U())&&this._storeProcessingQueue.push({invoke:U,callback:k}),this}unsubscribeAsync(w,I){return new Promise((k,j)=>{this.unsubscribe(w,I,(U,P)=>{U?j(U):k(P)})})}end(w,I,k){this.log("end :: (%s)",this.options.clientId),(w==null||typeof w!="boolean")&&(k=k||I,I=w,w=!1),typeof I!="object"&&(k=k||I,I=null),this.log("end :: cb? %s",!!k),(!k||typeof k!="function")&&(k=this.noop);let j=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(P=>{this.outgoingStore.close(z=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),k){let G=P||z;this.log("end :: closeStores: invoking callback with args"),k(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)(j)},I)};return this.disconnecting?(k(),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,I){return new Promise((k,j)=>{this.end(w,I,U=>{U?j(U):k()})})}removeOutgoingMessage(w){if(this.outgoing[w]){let{cb:I}=this.outgoing[w];this._removeOutgoingAndStoreMessage(w,()=>{I(new Error("Message removed"))})}return this}reconnect(w){this.log("client reconnect");let I=()=>{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=I:I(),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 I;w.properties&&(I=w.properties.topicAlias);let k=w.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",I,k),k.length===0){if(typeof I>"u")return new Error("Unregistered Topic Alias");if(k=this.topicAliasSend.getTopicByAlias(I),typeof k>"u")return new Error("Unregistered Topic Alias");w.topic=k}I&&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,I,k={}){if(I&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",I)),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 j={cmd:"disconnect",...k};this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(j,()=>{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(),I&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",I),I())}_storeAndSend(w,I,k){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",w.cmd);let j=w,U;if(j.cmd==="publish"&&(j=(0,t.default)(w),U=this._removeTopicAliasAndRecoverTopicName(j),U))return I&&I(U);this.outgoingStore.put(j,P=>{if(P)return I&&I(P);k(),this._writePacket(w,I)})}_applyTopicAlias(w){if(this.options.protocolVersion===5&&w.cmd==="publish"){let I;w.properties&&(I=w.properties.topicAlias);let k=w.topic.toString();if(this.topicAliasSend)if(I){if(k.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",k,I),!this.topicAliasSend.put(k,I)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",k,I),new Error("Sending Topic Alias out of range")}else k.length!==0&&(this.options.autoAssignTopicAlias?(I=this.topicAliasSend.getAliasByTopic(k),I?(w.topic="",w.properties={...w.properties,topicAlias:I},this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",k,I)):(I=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(k,I),w.properties={...w.properties,topicAlias:I},this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",k,I))):this.options.autoUseTopicAlias&&(I=this.topicAliasSend.getAliasByTopic(k),I&&(w.topic="",w.properties={...w.properties,topicAlias:I},this.log("applyTopicAlias :: auto use topic: %s - alias: %d",k,I))));else if(I)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",k,I),new Error("Sending Topic Alias out of range")}}_noop(w){this.log("noop ::",w)}_writePacket(w,I){this.log("_writePacket :: packet: %O",w),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",w),this.log("_writePacket :: writing to stream");let k=n.default.writeToStream(w,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",k),!k&&I&&I!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",I)):I&&(this.log("_writePacket :: invoking cb"),I())}_sendPacket(w,I,k,j){this.log("_sendPacket :: (%s) :: start",this.options.clientId),k=k||this.noop,I=I||this.noop;let U=this._applyTopicAlias(w);if(U){I(U);return}if(!this.connected){if(w.cmd==="auth"){this._writePacket(w,I);return}this.log("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(w,I,k);return}if(j){this._writePacket(w,I);return}switch(w.cmd){case"publish":break;case"pubrel":this._storeAndSend(w,I,k);return;default:this._writePacket(w,I);return}switch(w.qos){case 2:case 1:this._storeAndSend(w,I,k);break;case 0:default:this._writePacket(w,I);break}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}_storePacket(w,I,k){this.log("_storePacket :: packet: %o",w),this.log("_storePacket :: cb? %s",!!I),k=k||this.noop;let j=w;if(j.cmd==="publish"){j=(0,t.default)(w);let P=this._removeTopicAliasAndRecoverTopicName(j);if(P)return I&&I(P)}let U=j.qos||0;U===0&&this.queueQoSZero||j.cmd!=="publish"?this.queue.push({packet:j,cb:I}):U>0?(I=this.outgoing[j.messageId]?this.outgoing[j.messageId].cb:null,this.outgoingStore.put(j,P=>{if(P)return I&&I(P);k()})):I&&I(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 I=0;I{let k=this.outgoingStore.createStream(),j=()=>{k.destroy(),k=null,this._flushStoreProcessingQueue(),U()},U=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",j),k.on("error",z=>{U(),this._flushStoreProcessingQueue(),this.removeListener("close",j),this.emit("error",z)});let P=()=>{if(!k)return;let z=k.read(1),G;if(!z){k.once("readable",P);return}if(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[z.messageId]){P();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),P()}},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)):k.destroy&&k.destroy()};k.on("end",()=>{let z=!0;for(let G in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[G]){z=!1;break}this.removeListener("close",j),z?(U(),this._invokeAllStoreProcessingQueue(),this.emit("connect",w)):I()}),P()};I()}_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,I){delete this.outgoing[w],this.outgoingStore.del({messageId:w},(k,j)=>{I(k,j),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(j){throw new RangeError(p[j])}function x(j,U){let P=[],z=j.length;for(;z--;)P[z]=U(j[z]);return P}function y(j,U){let P=j.split("@"),z="";P.length>1&&(z=P[0]+"@",j=P[1]),j=j.replace(d,".");let G=j.split("."),q=x(G,U).join(".");return z+q}function v(j){let U=[],P=0,z=j.length;for(;P=55296&&G<=56319&&PString.fromCodePoint(...j),_=function(j){return j>=48&&j<58?26+(j-48):j>=65&&j<91?j-65:j>=97&&j<123?j-97:h},C=function(j,U){return j+22+75*(j<26)-((U!=0)<<5)},w=function(j,U,P){let z=0;for(j=P?b(j/n):j>>1,j+=b(j/U);j>g*a>>1;z+=h)j=b(j/g);return b(z+(g+1)*j/(j+c))},I=function(j){let U=[],P=j.length,z=0,G=t,q=r,he=j.lastIndexOf(e);he<0&&(he=0);for(let ne=0;ne=128&&S("not-basic"),U.push(j.charCodeAt(ne));for(let ne=he>0?he+1:0;ne=P&&S("invalid-input");let M=_(j.charCodeAt(ne++));M>=h&&S("invalid-input"),M>b((f-z)/V)&&S("overflow"),z+=M*V;let ee=le<=q?s:le>=q+a?a:le-q;if(Mb(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)},k=function(j){let U=[];j=v(j);let P=j.length,z=t,G=0,q=r;for(let te of j)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 j)if(Vf&&S("overflow"),V===z){let le=G;for(let M=h;;M+=h){let ee=M<=q?s:M>=q+a?a:M-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 ki||(ki=!0,Pi=RangeError),Pi}function ac(){return Ci||(Ci=!0,Ti=ReferenceError),Ti}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 Pr;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"]},C=go(),w=fc(),I=C.call(Function.call,Array.prototype.concat),k=C.call(Function.apply,Array.prototype.splice),j=C.call(Function.call,String.prototype.replace),U=C.call(Function.call,String.prototype.slice),P=C.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 j(ne,z,function(le,M,ee,Z){V[V.length]=ee?j(Z,G,"$1"):M||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(P(/^%?[^%]*%?$/,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),M=le.name,ee=le.value,Z=!1,ue=le.alias;ue&&(V=ue[0],k(ce,I([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[M]=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,Pi,ki,Ti,Ci,Ri,ji,Mi,Bi,Ni,Ui,Ir,Li,Or,Di,Pr,Fi,kr,Wi,Tr,$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,Pi={},ki=!1,Ti={},Ci=!1,Ri={},ji=!1,Mi={},Bi=!1,Ni={},Ui=!1,Ir={},Li=!1,Or={},Di=!1,Pr={},Fi=!1,kr={},Wi=!1,Tr={},$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",Po="x64",ko="browser",To={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,Pt={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},Pt.now===void 0&&(sn=Date.now(),Pt.timing&&Pt.timing.navigationStart&&(sn=Pt.timing.navigationStart),Pt.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,Ps=Nt,ks=Nt,bo={version:jo,versions:Mo,arch:Po,platform:ko,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:Ps,prependOnceListener:ks,listeners:Pc,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:To,title:Oo,argv:Co,execArgv:Ro,pid:fs,ppid:ps,execPath:ds,debugPort:gs,hrtime:on,argv0:ys,_preload_modules:ms,setSourceMapsEnabled:bs}});function kc(){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,Tc=yt(()=>{ge(),me(),ye(),Da(),Dr={},Ji=!1,Xi=kc()}),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,C=RegExp.prototype.test,w=Array.prototype.concat,I=Array.prototype.join,k=Array.prototype.slice,j=Math.floor,U=typeof BigInt=="function"?BigInt.prototype.valueOf:null,P=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||C.call(/e/,ie))return ie;var Re=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof $=="number"){var ke=$<0?-j(-$):j($);if(ke!==$){var Le=String(ke),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,ke,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 ke>"u"&&(ke=0),ke>=tt&&tt>0&&typeof ie=="object")return Z(ie)?"[Array]":"[Object]";var He=N(Ue,ke);if(typeof Le>"u")Le=[];else if(se(Le,ie)>=0)return"[Circular]";function $e(ze,bt,At){if(bt&&(Le=k.call(Le),Le.push(bt)),At){var Qe={depth:Ue.depth};return pe(Ue,"quoteStyle")&&(Qe.quoteStyle=Ue.quoteStyle),$(ze,Qe,ke+1,Le)}return $(ze,Ue,ke+1,Le)}if(typeof ie=="function"&&!Ae(ie)){var nt=H(ie),dt=de(ie,$e);return"[Function"+(nt?": "+nt:" (anonymous)")+"]"+(dt.length>0?" { "+I.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 R="<"+_.call(String(ie.nodeName)),F=ie.attributes||[],Pe=0;Pe",R}if(Z(ie)){if(ie.length===0)return"[]";var Te=de(ie,$e);return He&&!T(Te)?"["+K(Te,He)+"]":"[ "+I.call(Te,", ")+" ]"}if(Y(ie)){var Me=de(ie,$e);return!("cause"in Error.prototype)&&"cause"in ie&&!he.call(ie,"cause")?"{ ["+String(ie)+"] "+I.call(w.call("[cause]: "+$e(ie.cause),Me),", ")+" }":Me.length===0?"["+String(ie)+"]":"{ ["+String(ie)+"] "+I.call(Me,", ")+" }"}if(typeof ie=="object"&&Xe){if(le&&typeof ie[le]=="function"&&ce)return ce(ie,{depth:tt-ke});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?"["+I.call(w.call([],Kt||[],zt||[]),": ")+"] ":"");return mt.length===0?Et+"{}":He?Et+"{"+K(mt,He)+"}":Et+"{ "+I.call(mt,", ")+" }"}return String(ie)};function M($,ie,Re){var ke=(Re.quoteStyle||ie)==="double"?'"':"'";return ke+$+ke}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,ke=$.length;Reie.maxStringLength){var Re=$.length-ie.maxStringLength,ke="... "+Re+" more character"+(Re>1?"s":"");return fe(y.call($,0,ie.maxStringLength),ie)+ke}var Le=v.call(v.call($,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Be);return M(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,ke){var Le=ke?K(Re,ke):I.call(Re,", ");return $+" ("+ie+") {"+Le+"}"}function T($){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=I.call(Array($.indent+1)," ");else return null;return{base:Re,prev:I.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-BPiEnDMl.js b/packages/modules/web_themes/koala/web/assets/store-init-BPiEnDMl.js deleted file mode 100644 index ec02ff289f..0000000000 --- a/packages/modules/web_themes/koala/web/assets/store-init-BPiEnDMl.js +++ /dev/null @@ -1 +0,0 @@ -import{b as t}from"./index-CmDneGoC.js";import{u as o}from"./mqtt-store-CdQu5WWJ.js";const s=t(()=>{o().initialize()});export{s as default}; diff --git a/packages/modules/web_themes/koala/web/assets/store-init-DiIPoOnm.js b/packages/modules/web_themes/koala/web/assets/store-init-DiIPoOnm.js new file mode 100644 index 0000000000..5ed76f06d6 --- /dev/null +++ b/packages/modules/web_themes/koala/web/assets/store-init-DiIPoOnm.js @@ -0,0 +1 @@ +import{b as t}from"./index-BH3GZeBO.js";import{u as o}from"./mqtt-store-CmJDUm41.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 50f524e84d..e4ad43d2f6 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 diff --git a/packages/modules/web_themes/standard_legacy/web/index.html b/packages/modules/web_themes/standard_legacy/web/index.html index 401c6bc794..3582aaf2e2 100644 --- a/packages/modules/web_themes/standard_legacy/web/index.html +++ b/packages/modules/web_themes/standard_legacy/web/index.html @@ -1086,7 +1086,7 @@

Einstellungen für "Eco"

- +
({...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 x}from"./vendor-fortawesome-a02b6813.js";import{_ as E,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-1763d060.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:x},mixins:[W],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{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=E(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-81df253b.js b/web/settings/assets/ChargePointInstallation-81df253b.js new file mode 100644 index 0000000000..b2bd9ee326 --- /dev/null +++ b/web/settings/assets/ChargePointInstallation-81df253b.js @@ -0,0 +1 @@ +import{l as O,ab as N,al as R,G as Z,am as j,an as $,F as H,d as ee,Q as te,ao as ne,M as ae}from"./vendor-fortawesome-a02b6813.js";import{_ as L,C as J}from"./index-1763d060.js";import{_ as T}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 M,a3 as F,N as A,q as oe,y as D,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(t,e=void 0){this.$emit("update:configuration",{value:t,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(t,e,c,P,_,n){const w=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",ue,[Object.keys(t.chargePoint.configuration).length==0?(l(),h(w,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+v(t.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(t.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":t.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=C=>t.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(t.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(t,e,c,P,_,n){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}`),M({loader:()=>T(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-cb81d9a1.js"),["assets/chargePoint-cb81d9a1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-013b9c93.js"),["assets/chargePoint-013b9c93.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-cdbe6c33.js"),["assets/chargePoint-cdbe6c33.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-6002b2a8.js"),["assets/chargePoint-6002b2a8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-1f275da7.js"),["assets/chargePoint-1f275da7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-e75ab42a.js"),["assets/chargePoint-e75ab42a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-06c4ea45.js"),["assets/chargePoint-06c4ea45.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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}`),M({loader:()=>T(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-99f720c8.js"),["assets/commands-99f720c8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-ca6dcfe0.js"),["assets/commands-ca6dcfe0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/commands.vue`),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ve(t,e,c,P,_,n){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(F(n.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>n.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(F(n.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"]]);O.add(N,R,Z,j,$);const ye={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:H},mixins:[J],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(t){this.$emit("update:modelValue",t)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(t){this.showRemoveModal=!1,t=="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(t,e,c,P,_,n){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:n.removePlan},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+v(n.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:n.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:oe(["pill clickable",n.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=D(k=>n.plan.active=!n.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+v(n.plan.time[0])+" - "+v(n.plan.time[1])+" ",1),n.plan.frequency.selected=="once"?(l(),u("span",Ce,[a(f,{icon:["fas","calendar-day"]}),i(" "+v(t.formatDate(n.plan.frequency.once[0])==t.formatDate(n.plan.frequency.once[1])?t.formatDate(n.plan.frequency.once[0]):t.formatDate(n.plan.frequency.once[0])+" - "+t.formatDate(n.plan.frequency.once[1])),1)])):g("",!0),n.plan.frequency.selected=="daily"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),n.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]=D(k=>n.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]=D(k=>n.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(y,{modelValue:n.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>n.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:n.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>n.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:n.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>n.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(y,{modelValue:n.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>n.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:n.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>n.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"]),n.plan.frequency.selected=="once"?(l(),h(y,{key:0,modelValue:n.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>n.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),n.plan.frequency.selected=="once"?(l(),h(y,{key:1,modelValue:n.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>n.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:n.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("div",Be,[(l(!0),u(A,null,S(t.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:n.plan.frequency.weekly[k],"onUpdate:modelValue":V=>n.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"]]);O.add(ee,N,R,Z,j,$,te,ne);const ze={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:H,FontAwesomeLayers:ae,OpenwbChargePointProxy:we,TemplateAutoLockPlan:Ae},mixins:[J],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 t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,P]of Object.entries(t))(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 t=[];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;t.push({value:c,text:P})}),t}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(t,e){t.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(t,e){this.showChargePointModal=!1,t=="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(t){return this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"].name:"Ladepunkt "+t},getChargePointTemplateIndex(t){return parseInt(t.match(/([^/]+)$/)[0])},getChargePointTemplateName(t){return this.$store.state.mqtt["openWB/chargepoint/template/"+t]?this.$store.state.mqtt["openWB/chargepoint/template/"+t].name:"Profil "+t},addChargePointTemplate(t,e){t.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(t,e){t.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(t,e){this.showChargePointTemplateModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(t){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(t)}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},Ie={class:"chargePointInstallation"},Ue={name:"chargePointInstallationForm"},De={key:0},Se={key:2},Ee={key:0},xe={key:0,class:"border-secondary"},qe={key:0},Te={key:1},Me={key:1},Fe={key:0},Oe={key:0},Ne={key:1},Re={key:2},Ze={key:1},je={key:0},$e={key:2},He={key:4};function Je(t,e,c,P,_,n){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"),U=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=>n.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+v(n.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=>n.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+v(n.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",Ue,[a(U,{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(n.installedChargePoints,(s,d)=>(l(),h(U,{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=>n.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=>t.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[d].type},null,8,["model-value"]),s.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",De,[a(I,{title:"Ladepunkt-Profil",options:n.chargePointTemplateList,"model-value":t.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>t.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),t.$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=>t.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=>n.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s.type!=="internal_openwb"||t.$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=>t.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=>t.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=>t.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=>t.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(n.installedChargePoints).length>0?(l(),u("hr",Ee)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:n.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":n.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"]),t.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",xe)):g("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(U,{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(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:n.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[t.$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",Te,[(l(!0),u(A,null,S(n.chargePointTemplates,(s,d)=>(l(),h(U,{key:d,title:`${s.name} (ID: ${n.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>n.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:2},1032,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(y,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>n.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=>t.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"]),n.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=>t.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",Me,[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)),t.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Oe," Ladepunkte mit diesem Profil werden automatisch beim Abstecken eines Fahrzeugs gesperrt und müssen für den nächsten Ladevorgang mit einem ID-Tag entsperrt werden. ")):t.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(l(),u("div",Ne," Die Zugangskontrolle ist aktuell deaktiviert. ")):(l(),u("div",Re," Die Zugangskontrolle ist aktiviert, jedoch werden Ladepunkte mit diesem Profil nicht automatisch nach dem Abstecken eines Fahrzeugs gesperrt. "))]),_:2,__:[22,23]},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":s.valid_tags},{help:o(()=>[...e[24]||(e[24]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Ladepunkt-Profil zugeordnet sind. Nur mit diesen ID-Tags können Ladepunkte, denen dieses Profil zugeordnet ist, entsperrt werden. ",-1)])]),_:2},1032,["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"||n.dcChargingEnabled!==!0?(l(),u("div",$e,[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=>t.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=>t.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":t.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>t.updateState(d,t.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",He,[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=>t.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=>t.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:D(r=>n.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":E=>t.updateState(d,E,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=E=>t.$emit("sendCommand",E))},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=>t.$emit("save")),onReset:e[5]||(e[5]=s=>t.$emit("reset")),onDefaults:e[6]||(e[6]=s=>t.$emit("defaults"))})])])],64)}const Ge=z(ze,[["render",Je],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),et=Object.freeze(Object.defineProperty({__proto__:null,default:Ge},Symbol.toStringTag,{value:"Module"}));export{se as C,ce as a,Ge as b,et as c}; diff --git a/web/settings/assets/ChargePointInstallation-abc8fd1a.js b/web/settings/assets/ChargePointInstallation-abc8fd1a.js deleted file mode 100644 index 0d5d5185cc..0000000000 --- a/web/settings/assets/ChargePointInstallation-abc8fd1a.js +++ /dev/null @@ -1 +0,0 @@ -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-1cca615d.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-4e7aabf2.js"),["assets/chargePoint-4e7aabf2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-a3dbf064.js"),["assets/chargePoint-a3dbf064.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-1380d772.js"),["assets/chargePoint-1380d772.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-55ea4a64.js"),["assets/chargePoint-55ea4a64.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-6d6ffaac.js"),["assets/chargePoint-6d6ffaac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-b36330dc.js"),["assets/chargePoint-b36330dc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-75b4dc86.js"),["assets/chargePoint-75b4dc86.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-e7fd4d3e.js"),["assets/commands-e7fd4d3e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-b7a7f39e.js"),["assets/commands-b7a7f39e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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:1},Oe={key:0},Fe={key:0},Re={key:1},Ne={key:1},Ze={key:0},je={key:2},Je={key:4};function $e(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(),h(y,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>t.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:2},1032,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(y,{key:1,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",Te,[a(k,null,{default:o(()=>[...e[20]||(e[20]=[i(" Zugangskontrolle ",-1)])]),_:1,__:[20]}),s.valid_tags.length>0?(l(),u("div",Oe,[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",Fe," Die Option ist aktiv. Ladepunkte denen dieses Ladepunkt-Profil zugeordnet ist müssen per ID-Tag entsperrt werden. ")):(l(),u("div",Re,"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",Ne,[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",Ze," 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",Je,[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 He=z(ze,[["render",$e],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),Ke=Object.freeze(Object.defineProperty({__proto__:null,default:He},Symbol.toStringTag,{value:"Module"}));export{se as C,ce as a,He as b,Ke as c}; diff --git a/web/settings/assets/Chart-00144058.js b/web/settings/assets/Chart-924a1291.js similarity index 99% rename from web/settings/assets/Chart-00144058.js rename to web/settings/assets/Chart-924a1291.js index d9b83230e5..ca10b266ec 100644 --- a/web/settings/assets/Chart-00144058.js +++ b/web/settings/assets/Chart-924a1291.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-1cca615d.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-1763d060.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-7177175f.js b/web/settings/assets/CloudConfig-46b82849.js similarity index 99% rename from web/settings/assets/CloudConfig-7177175f.js rename to web/settings/assets/CloudConfig-46b82849.js index 48571945c5..2ae78ad6ff 100644 --- a/web/settings/assets/CloudConfig-7177175f.js +++ b/web/settings/assets/CloudConfig-46b82849.js @@ -1 +1 @@ -import{l as q,aa as S,F as z}from"./vendor-fortawesome-a02b6813.js";import{C as P}from"./index-1cca615d.js";import{_ as h,u as a,l,m as C,G as s,E as t,A as i,x as p,z as m,D as Z,N as I,B as r,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";q.add(S);const M={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,w]of Object.entries(n))w.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)}}},K={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:2,name:"cloudConfigured"},N={class:"row justify-content-center"};function F(n,e,w,j,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),b=a("openwb-base-text-input"),B=a("openwb-base-button-group-input"),f=a("font-awesome-icon"),_=a("openwb-base-array-input"),y=a("openwb-base-click-button"),v=a("openwb-base-card"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),C(I,null,[s(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]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])),_:1,__:[13]},8,["show"]),i("div",K,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])),_:1,__:[14]}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1,__:[15,16]})):(l(),C("div",x,[s(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])),_:1,__:[17]}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1,__:[18,19]}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[20]})),d.cloudBridgeKey?m("",!0):(l(),C("form",R,[s(v,{title:"Vorhandenen Zugang einrichten"},Z({default:t(()=>[s(g,{subtype:"info"},{default:t(()=>e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:faq:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])),_:1,__:[21]}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{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]=[r(" 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(_,{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(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>e[23]||(e[23]=[r(" 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"])):m("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[i("div",U,[s(y,{class:k(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])),_:1,__:[24]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),C("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[25]})):m("",!0),s(v,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[i("div",N,[s(y,{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]=[r(" Zugang löschen ",-1)])),_:1,__:[29]},8,["class","disabled"])])]),default:t(()=>[s(V,null,{default:t(()=>e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])),_:1,__:[26]}),s(b,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{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]=i("hr",null,null,-1)),s(B,{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]=[r(" 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(_,{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(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>e[28]||(e[28]=[r(" 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"])):m("",!0)]),_:1,__:[30]})])):m("",!0),d.cloudBridgeKey?(l(),p(W,{key:3,"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"))})):m("",!0)]))])],64)}const Q=h(M,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{Q as default}; +import{l as q,aa as S,F as z}from"./vendor-fortawesome-a02b6813.js";import{C as P}from"./index-1763d060.js";import{_ as h,u as a,l,m as C,G as s,E as t,A as i,x as p,z as m,D as Z,N as I,B as r,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";q.add(S);const M={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,w]of Object.entries(n))w.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)}}},K={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:2,name:"cloudConfigured"},N={class:"row justify-content-center"};function F(n,e,w,j,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),b=a("openwb-base-text-input"),B=a("openwb-base-button-group-input"),f=a("font-awesome-icon"),_=a("openwb-base-array-input"),y=a("openwb-base-click-button"),v=a("openwb-base-card"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),C(I,null,[s(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]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])),_:1,__:[13]},8,["show"]),i("div",K,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])),_:1,__:[14]}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1,__:[15,16]})):(l(),C("div",x,[s(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])),_:1,__:[17]}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1,__:[18,19]}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[20]})),d.cloudBridgeKey?m("",!0):(l(),C("form",R,[s(v,{title:"Vorhandenen Zugang einrichten"},Z({default:t(()=>[s(g,{subtype:"info"},{default:t(()=>e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:faq:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])),_:1,__:[21]}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{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]=[r(" 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(_,{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(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>e[23]||(e[23]=[r(" 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"])):m("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[i("div",U,[s(y,{class:k(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])),_:1,__:[24]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),C("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[25]})):m("",!0),s(v,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[i("div",N,[s(y,{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]=[r(" Zugang löschen ",-1)])),_:1,__:[29]},8,["class","disabled"])])]),default:t(()=>[s(V,null,{default:t(()=>e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])),_:1,__:[26]}),s(b,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{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]=i("hr",null,null,-1)),s(B,{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]=[r(" 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(_,{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(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>e[28]||(e[28]=[r(" 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"])):m("",!0)]),_:1,__:[30]})])):m("",!0),d.cloudBridgeKey?(l(),p(W,{key:3,"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"))})):m("",!0)]))])],64)}const Q=h(M,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{Q as default}; diff --git a/web/settings/assets/DataManagement-148ac42e.js b/web/settings/assets/DataManagement-49c08fca.js similarity index 97% rename from web/settings/assets/DataManagement-148ac42e.js rename to web/settings/assets/DataManagement-49c08fca.js index ede91f4c2f..612db9cf9b 100644 --- a/web/settings/assets/DataManagement-148ac42e.js +++ b/web/settings/assets/DataManagement-49c08fca.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-1cca615d.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-97f86ae2.js"),["assets/backup_cloud-97f86ae2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-61b06768.js"),["assets/backup_cloud-61b06768.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-9efdae31.js"),["assets/backup_cloud-9efdae31.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-84f48d09.js"),["assets/backup_cloud-84f48d09.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-b2641cdd.js"),["assets/monitoring-b2641cdd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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"},xe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Re={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:"monitoringForm"},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"),x=d("openwb-base-button-input"),R=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(x,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=f=>r.sendSystemCommand("createCloudBackup",{}))}),t(R,{"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",xe,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]=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":"monitoringForm","hide-defaults":!0,onSave:e[19]||(e[19]=g=>n.$emit("save")),onReset:e[20]||(e[20]=g=>n.$emit("reset"))})]),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-1763d060.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-1b513a09.js"),["assets/backup_cloud-1b513a09.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-06a1adf9.js"),["assets/backup_cloud-06a1adf9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-fbc8740b.js"),["assets/backup_cloud-fbc8740b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-8b70c07d.js"),["assets/backup_cloud-8b70c07d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-97e3024f.js"),["assets/monitoring-97e3024f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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"},xe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Re={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:"monitoringForm"},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"),x=d("openwb-base-button-input"),R=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(x,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=f=>r.sendSystemCommand("createCloudBackup",{}))}),t(R,{"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",xe,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]=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":"monitoringForm","hide-defaults":!0,onSave:e[19]||(e[19]=g=>n.$emit("save")),onReset:e[20]||(e[20]=g=>n.$emit("reset"))})]),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-65c695f7.js b/web/settings/assets/DebugConfig-8f83347c.js similarity index 99% rename from web/settings/assets/DebugConfig-65c695f7.js rename to web/settings/assets/DebugConfig-8f83347c.js index 36cecbf686..e331f24779 100644 --- a/web/settings/assets/DebugConfig-65c695f7.js +++ b/web/settings/assets/DebugConfig-8f83347c.js @@ -1,2 +1,2 @@ -import{C as x}from"./index-1cca615d.js";import{l as B,ac as W,ad as V,k as z,ae as P,g as N,F as M}from"./vendor-fortawesome-a02b6813.js";import{a as y}from"./vendor-axios-ac33d60c.js";import{_ as F,a4 as S,u as l,l as u,x as p,E as r,q as f,y as L,G as g,z as m,B as h,F as v,A as b,m as C,N as T,M as q}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(W,V,z,P,N);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:M},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-1763d060.js";import{l as B,ac as W,ad as V,k as z,ae as P,g as N,F as M}from"./vendor-fortawesome-a02b6813.js";import{a as y}from"./vendor-axios-ac33d60c.js";import{_ as F,a4 as S,u as l,l as u,x as p,E as r,q as f,y as L,G as g,z as m,B as h,F as v,A as b,m as C,N as T,M as q}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(W,V,z,P,N);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:M},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=S.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(),p(k,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?m("",!0):(u(),p(c,{key:0,class:f(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[g(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(),p(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(()=>[g(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(),p(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(()=>[g(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(),p(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)),g(_,{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 Sicherung",fileName:"/openWB/data/log/backup.log"},{title:"Protokoll der Wiederherstellung",fileName:"/openWB/data/log/restore.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-Errors",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,[g(_,{title:"Protokollierung"},{default:r(()=>[g(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"]),g(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}),g(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(T,null,q(t.logFiles,i=>(u(),p(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-1c17bcad.js b/web/settings/assets/GeneralChargeConfig-485520cc.js similarity index 91% rename from web/settings/assets/GeneralChargeConfig-1c17bcad.js rename to web/settings/assets/GeneralChargeConfig-485520cc.js index 52ea15926d..e3d878fa84 100644 --- a/web/settings/assets/GeneralChargeConfig-1c17bcad.js +++ b/web/settings/assets/GeneralChargeConfig-485520cc.js @@ -1 +1 @@ -import{_ as f,C as q}from"./index-1cca615d.js";import{_ as D}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as L,a7 as A,F}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u,l as a,m as s,x as _,E as r,B as i,F as h,G as n,A as d,a2 as U,a3 as N,N as I,z as m}from"./vendor-25d394b4.js";const R={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=B(R,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),j={name:"ElectricityTariffConfigFallback",mixins:[Z]},H={class:"backup-cloud-fallback"},G={key:1};function M(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),_(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+h(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",G,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+h(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]=v=>t.updateConfiguration(v,"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,h(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(j,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);O.add(L,A);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:F},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>D(Object.assign({"./awattar/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-b7d0ce5d.js"),["assets/electricity_tariff-b7d0ce5d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1cca615d.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-c2b24c2d.js"),["assets/electricity_tariff-c2b24c2d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1cca615d.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-fa08cfc7.js"),["assets/electricity_tariff-fa08cfc7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-3b46be15.js"),["assets/electricity_tariff-3b46be15.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1cca615d.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-ff53512d.js"),["assets/electricity_tariff-ff53512d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1cca615d.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-ed7c4c08.js"),["assets/electricity_tariff-ed7c4c08.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1cca615d.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-aa5b1a6a.js"),["assets/electricity_tariff-aa5b1a6a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1cca615d.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-6e0171ef.js"),["assets/electricity_tariff-6e0171ef.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1cca615d.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Q(t,e,g,W,z,c){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),v=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),_(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(v,null,{default:r(()=>[i(' Einstellungen für Modul "'+h(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),_(N(c.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=b=>c.updateConfiguration(b))},null,40,["electricity-tariff"]))],64)}const X=B(K,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),Y={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:X},mixins:[q],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)}}},x={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:0},pe={key:1},ge={key:2},fe={key:1},me={key:0},ce={key:1},be={key:0};function _e(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),v=u("openwb-base-range-input"),b=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),V=u("openwb-electricity-tariff-proxy"),C=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",x,[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(),_(v,{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"])):m("",!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 beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])),_:1},8,["model-value"]),n(b,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,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(),_(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]})):m("",!0),n(b,{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(b,{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(b,{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:c.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=>c.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(V,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>c.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):m("",!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:"Speichersteuerung",buttons:[{buttonValue:"no_limit",text:"Aus"},{buttonValue:"limit_stop",text:"volle Entladesperre"},{buttonValue:"limit_to_home_consumption",text:"Entladung in Fahrzeuge sperren"}],"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(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="no_limit"?(a(),s("div",de," Der Speicher regelt eigenständig und wird nicht gesteuert. Es greift nur die konfigurierte Speicherbeachtung (Modus-PV). ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_stop"?(a(),s("div",pe," Die Speicherentladung wird komplett gesperrt, sobald ein Fahrzeug lädt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom versorgt. ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_to_home_consumption"?(a(),s("div",ge,' Fahrzeugladung erzeugt Netzbezug statt Speicherentladung. Weitere Verbraucher (bspw. Hausverbrauch) werden durch den Speicher ausgeglichen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):m("",!0)]),_:1},8,["model-value"])])):(a(),s("div",fe,[n(l,{subtype:"info"},{default:r(()=>e[32]||(e[32]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])),_:1,__:[32]})]))])):m("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,$;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",me,[n(l,{subtype:"info"},{default:r(()=>e[33]||(e[33]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[33]})])):(a(),s("div",ce,[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]=y=>t.updateState("openWB/optional/ocpp/config",y,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",be,[n(l,{subtype:"info"},{default:r(()=>e[34]||(e[34]=[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,__:[34]}),n(C,{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]=y=>t.updateState("openWB/optional/ocpp/config",y,"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":($=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:$.version,"onUpdate:modelValue":e[13]||(e[13]=y=>t.updateState("openWB/optional/ocpp/config",y,"version"))},null,8,["model-value"])])):m("",!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 he=B(Y,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ke=Object.freeze(Object.defineProperty({__proto__:null,default:he},Symbol.toStringTag,{value:"Module"}));export{Z as E,ke as G}; +import{_ as f,C as q}from"./index-1763d060.js";import{_ as D}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as L,a7 as A,F}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u,l as a,m as s,x as _,E as r,B as i,F as h,G as n,A as d,a2 as U,a3 as N,N as I,z as m}from"./vendor-25d394b4.js";const R={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=B(R,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),j={name:"ElectricityTariffConfigFallback",mixins:[Z]},H={class:"backup-cloud-fallback"},G={key:1};function M(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),_(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+h(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",G,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+h(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]=v=>t.updateConfiguration(v,"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,h(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(j,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);O.add(L,A);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:F},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>D(Object.assign({"./awattar/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-0d3fcc40.js"),["assets/electricity_tariff-0d3fcc40.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1763d060.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-8bfda04c.js"),["assets/electricity_tariff-8bfda04c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1763d060.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-c80b1808.js"),["assets/electricity_tariff-c80b1808.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-f4342cf4.js"),["assets/electricity_tariff-f4342cf4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1763d060.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-8939638d.js"),["assets/electricity_tariff-8939638d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1763d060.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-7a26b10b.js"),["assets/electricity_tariff-7a26b10b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1763d060.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-4e1932a1.js"),["assets/electricity_tariff-4e1932a1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1763d060.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-849a1d20.js"),["assets/electricity_tariff-849a1d20.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1763d060.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Q(t,e,g,W,z,c){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),v=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),_(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(v,null,{default:r(()=>[i(' Einstellungen für Modul "'+h(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),_(N(c.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=b=>c.updateConfiguration(b))},null,40,["electricity-tariff"]))],64)}const X=B(K,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),Y={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:X},mixins:[q],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)}}},x={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:0},pe={key:1},ge={key:2},fe={key:1},me={key:0},ce={key:1},be={key:0};function _e(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),v=u("openwb-base-range-input"),b=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),V=u("openwb-electricity-tariff-proxy"),C=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",x,[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(),_(v,{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"])):m("",!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 beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])),_:1},8,["model-value"]),n(b,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,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(),_(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]})):m("",!0),n(b,{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(b,{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(b,{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:c.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=>c.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(V,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>c.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):m("",!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:"Speichersteuerung",buttons:[{buttonValue:"no_limit",text:"Aus"},{buttonValue:"limit_stop",text:"volle Entladesperre"},{buttonValue:"limit_to_home_consumption",text:"Entladung in Fahrzeuge sperren"}],"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(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="no_limit"?(a(),s("div",de," Der Speicher regelt eigenständig und wird nicht gesteuert. Es greift nur die konfigurierte Speicherbeachtung (Modus-PV). ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_stop"?(a(),s("div",pe," Die Speicherentladung wird komplett gesperrt, sobald ein Fahrzeug lädt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom versorgt. ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_to_home_consumption"?(a(),s("div",ge,' Fahrzeugladung erzeugt Netzbezug statt Speicherentladung. Weitere Verbraucher (bspw. Hausverbrauch) werden durch den Speicher ausgeglichen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):m("",!0)]),_:1},8,["model-value"])])):(a(),s("div",fe,[n(l,{subtype:"info"},{default:r(()=>e[32]||(e[32]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])),_:1,__:[32]})]))])):m("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,$;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",me,[n(l,{subtype:"info"},{default:r(()=>e[33]||(e[33]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[33]})])):(a(),s("div",ce,[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]=y=>t.updateState("openWB/optional/ocpp/config",y,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",be,[n(l,{subtype:"info"},{default:r(()=>e[34]||(e[34]=[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,__:[34]}),n(C,{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]=y=>t.updateState("openWB/optional/ocpp/config",y,"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":($=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:$.version,"onUpdate:modelValue":e[13]||(e[13]=y=>t.updateState("openWB/optional/ocpp/config",y,"version"))},null,8,["model-value"])])):m("",!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 he=B(Y,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ke=Object.freeze(Object.defineProperty({__proto__:null,default:he},Symbol.toStringTag,{value:"Module"}));export{Z as E,ke as G}; diff --git a/web/settings/assets/GeneralConfig-38b6a47c.js b/web/settings/assets/GeneralConfig-2436dcce.js similarity index 98% rename from web/settings/assets/GeneralConfig-38b6a47c.js rename to web/settings/assets/GeneralConfig-2436dcce.js index f5fe6cf6bf..fa13c2f1a9 100644 --- a/web/settings/assets/GeneralConfig-38b6a47c.js +++ b/web/settings/assets/GeneralConfig-2436dcce.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-1cca615d.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-8f09ae08.js"),["assets/webTheme-8f09ae08.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-0483cecc.js"),["assets/webTheme-0483cecc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-1763d060.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-c934cd52.js"),["assets/webTheme-c934cd52.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-632880d9.js"),["assets/webTheme-632880d9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-9e2c000c.js b/web/settings/assets/HardwareInstallation-a602f648.js similarity index 68% rename from web/settings/assets/HardwareInstallation-9e2c000c.js rename to web/settings/assets/HardwareInstallation-a602f648.js index 3e584c4c53..3971ee8090 100644 --- a/web/settings/assets/HardwareInstallation-9e2c000c.js +++ b/web/settings/assets/HardwareInstallation-a602f648.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-1cca615d.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-439a69d3.js"),["assets/device-439a69d3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-e8bb4147.js"),["assets/device-e8bb4147.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-53d2fd16.js"),["assets/device-53d2fd16.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-da62e9d2.js"),["assets/counter-da62e9d2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-8c3ab9e0.js"),["assets/device-8c3ab9e0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-8dc26392.js"),["assets/device-8dc26392.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-51f1003a.js"),["assets/device-51f1003a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-d4934670.js"),["assets/device-d4934670.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-a02ddf60.js"),["assets/inverter-a02ddf60.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-b03b502e.js"),["assets/device-b03b502e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-866fb333.js"),["assets/counter-866fb333.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-ddd381cb.js"),["assets/device-ddd381cb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-471c0e25.js"),["assets/bat-471c0e25.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-4aa73968.js"),["assets/counter-4aa73968.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-0c04654c.js"),["assets/device-0c04654c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-d50c3fcc.js"),["assets/inverter-d50c3fcc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-6e069a0e.js"),["assets/counter-6e069a0e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-d648e8b1.js"),["assets/device-d648e8b1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-c92a1393.js"),["assets/inverter-c92a1393.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-54256645.js"),["assets/device-54256645.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-6bb7f4ce.js"),["assets/device-6bb7f4ce.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-f0fe66a4.js"),["assets/counter-f0fe66a4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-2b41f049.js"),["assets/device-2b41f049.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-706dbcb9.js"),["assets/inverter-706dbcb9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-9ed440f1.js"),["assets/bat-9ed440f1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-83751355.js"),["assets/device-83751355.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-dacb14f0.js"),["assets/bat-dacb14f0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-fe777704.js"),["assets/counter-fe777704.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-2c93924a.js"),["assets/device-2c93924a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-c3edd984.js"),["assets/inverter-c3edd984.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-518cb9f0.js"),["assets/bat-518cb9f0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-64f8d067.js"),["assets/counter_sm-64f8d067.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-807f54c8.js"),["assets/device-807f54c8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-ffc37327.js"),["assets/inverter_secondary-ffc37327.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-b117bef9.js"),["assets/bat-b117bef9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-ddf6a39a.js"),["assets/counter-ddf6a39a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-a3df49fa.js"),["assets/device-a3df49fa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-105b9b5c.js"),["assets/inverter-105b9b5c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-3065d325.js"),["assets/bat-3065d325.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-34c648be.js"),["assets/counter-34c648be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-ae8768b0.js"),["assets/device-ae8768b0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-75fcbf5b.js"),["assets/inverter-75fcbf5b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-51a7cb14.js"),["assets/bat-51a7cb14.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-1b10d5ad.js"),["assets/counter-1b10d5ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-e72282ad.js"),["assets/device-e72282ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-257464d1.js"),["assets/inverter-257464d1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-8944b7f7.js"),["assets/counter-8944b7f7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-fa3de5c3.js"),["assets/bat-fa3de5c3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-ca48bc84.js"),["assets/device-ca48bc84.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-a865ff54.js"),["assets/device-a865ff54.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-9860159d.js"),["assets/device-9860159d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-217557f3.js"),["assets/device-217557f3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-a430f22c.js"),["assets/bat-a430f22c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-20aa575c.js"),["assets/counter-20aa575c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-580d433d.js"),["assets/device-580d433d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-3fc331d2.js"),["assets/inverter-3fc331d2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-51dba821.js"),["assets/counter-51dba821.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-ea044e8b.js"),["assets/device-ea044e8b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-1af14c2d.js"),["assets/device-1af14c2d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-4f9c8b79.js"),["assets/inverter-4f9c8b79.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-1de87a86.js"),["assets/counter-1de87a86.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-593985f3.js"),["assets/device-593985f3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-9575a220.js"),["assets/inverter-9575a220.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-0417bc62.js"),["assets/device-0417bc62.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-b0660df4.js"),["assets/counter-b0660df4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-b1e74030.js"),["assets/device-b1e74030.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-58f04b45.js"),["assets/counter-58f04b45.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-a4db94b7.js"),["assets/device-a4db94b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-9a6724b0.js"),["assets/device-9a6724b0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-83f20051.js"),["assets/inverter-83f20051.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-c5c08de7.js"),["assets/device-c5c08de7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-55f2db19.js"),["assets/bat-55f2db19.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-d2373930.js"),["assets/counter-d2373930.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-f6c6ada6.js"),["assets/device-f6c6ada6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-5f05dcda.js"),["assets/inverter-5f05dcda.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-c8d98c4f.js"),["assets/device-c8d98c4f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-415af765.js"),["assets/counter-415af765.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-64aa9baa.js"),["assets/device-64aa9baa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-2727533f.js"),["assets/device-2727533f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-04008ff3.js"),["assets/inverter-04008ff3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-a81a696b.js"),["assets/bat-a81a696b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-9201860e.js"),["assets/bat-9201860e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-07b3d245.js"),["assets/counter-07b3d245.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-7043df37.js"),["assets/inverter-7043df37.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-61d34295.js"),["assets/bat-61d34295.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-537a995c.js"),["assets/consumption_counter-537a995c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-49ce1d44.js"),["assets/counter-49ce1d44.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-067bd2b4.js"),["assets/device-067bd2b4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-2978fa86.js"),["assets/inverter-2978fa86.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-e9ab724f.js"),["assets/inverter-e9ab724f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-46c29613.js"),["assets/counter-46c29613.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-84d29faf.js"),["assets/device-84d29faf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-34a636e7.js"),["assets/counter-34a636e7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-4949af42.js"),["assets/device-4949af42.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-e2a233f6.js"),["assets/counter-e2a233f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-8b3c6b93.js"),["assets/device-8b3c6b93.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-d04f666a.js"),["assets/inverter-d04f666a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-7b7a6795.js"),["assets/device-7b7a6795.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-934c7c46.js"),["assets/device-934c7c46.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-c754a9de.js"),["assets/device-c754a9de.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-c18e2423.js"),["assets/counter-c18e2423.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-ce70648b.js"),["assets/device-ce70648b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-8208ec49.js"),["assets/device-8208ec49.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-ea46c01b.js"),["assets/device-ea46c01b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-63c29973.js"),["assets/bat-63c29973.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-8bfd68a1.js"),["assets/counter-8bfd68a1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-0af3a888.js"),["assets/device-0af3a888.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-a94b43da.js"),["assets/inverter-a94b43da.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-d61a43b7.js"),["assets/counter-d61a43b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-e4e059e4.js"),["assets/inverter-e4e059e4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-3f2f83be.js"),["assets/bat-3f2f83be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-98a66675.js"),["assets/bat_smart_energy-98a66675.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-7a6e0ddb.js"),["assets/counter-7a6e0ddb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-90fd7b10.js"),["assets/device-90fd7b10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-1ba5162f.js"),["assets/inverter-1ba5162f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-a96ba0c1.js"),["assets/bat-a96ba0c1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-97b2fd4c.js"),["assets/device-97b2fd4c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-793f6594.js"),["assets/device-793f6594.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-5b027233.js"),["assets/counter-5b027233.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-314b37f4.js"),["assets/device-314b37f4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-bc68a9ad.js"),["assets/inverter-bc68a9ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-fe29c517.js"),["assets/device-fe29c517.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-daa3f4b4.js"),["assets/device-daa3f4b4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-81b91b58.js"),["assets/counter-81b91b58.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-0e3d5ead.js"),["assets/device-0e3d5ead.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-d043355a.js"),["assets/device-d043355a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-fe7ee084.js"),["assets/inverter-fe7ee084.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-968321b7.js"),["assets/device-968321b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-fd3d383f.js"),["assets/device-fd3d383f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-3a58db64.js"),["assets/bat-3a58db64.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-189cca4e.js"),["assets/counter-189cca4e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-36b0e353.js"),["assets/device-36b0e353.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-64f7c7b1.js"),["assets/external_inverter-64f7c7b1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-2ca4a156.js"),["assets/inverter-2ca4a156.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-4cc0b78b.js"),["assets/bat-4cc0b78b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-f3a038ab.js"),["assets/device-f3a038ab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-634f7fdb.js"),["assets/inverter-634f7fdb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-f22ddd6a.js"),["assets/device-f22ddd6a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-5736d426.js"),["assets/bat-5736d426.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-b3825ae6.js"),["assets/counter-b3825ae6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-b0695a55.js"),["assets/device-b0695a55.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-5988b757.js"),["assets/inverter-5988b757.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-81ea4914.js"),["assets/bat-81ea4914.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-6fc0090e.js"),["assets/counter-6fc0090e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-c2a98f0a.js"),["assets/counter_consumption-c2a98f0a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-a5aa6912.js"),["assets/device-a5aa6912.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-4ef4dab1.js"),["assets/bat-4ef4dab1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-9a0eb853.js"),["assets/device-9a0eb853.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-cc55220f.js"),["assets/inverter-cc55220f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-321a3131.js"),["assets/device-321a3131.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-5b177486.js"),["assets/device-5b177486.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-efb7cbd7.js"),["assets/device-efb7cbd7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-ee4893b7.js"),["assets/counter-ee4893b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-1c0ca81c.js"),["assets/device-1c0ca81c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-6a27006a.js"),["assets/counter-6a27006a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-5ab46dd2.js"),["assets/device-5ab46dd2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-a744f1a9.js"),["assets/device-a744f1a9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-db9e27e0.js"),["assets/device-db9e27e0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-a61d5df2.js"),["assets/inverter-a61d5df2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-fe0aa657.js"),["assets/bat-fe0aa657.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-690aec70.js"),["assets/counter-690aec70.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-f4a747e4.js"),["assets/device-f4a747e4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-baf97dc9.js"),["assets/inverter-baf97dc9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-7baae710.js"),["assets/counter-7baae710.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-6dc3cbcf.js"),["assets/device-6dc3cbcf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-236c5abf.js"),["assets/inverter-236c5abf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-ce0da382.js"),["assets/device-ce0da382.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-e9dc42fc.js"),["assets/inverter-e9dc42fc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-439a69d3.js"),["assets/device-439a69d3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-e8bb4147.js"),["assets/device-e8bb4147.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-53d2fd16.js"),["assets/device-53d2fd16.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-8c3ab9e0.js"),["assets/device-8c3ab9e0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-8dc26392.js"),["assets/device-8dc26392.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-51f1003a.js"),["assets/device-51f1003a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-d4934670.js"),["assets/device-d4934670.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-b03b502e.js"),["assets/device-b03b502e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-ddd381cb.js"),["assets/device-ddd381cb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-0c04654c.js"),["assets/device-0c04654c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-d648e8b1.js"),["assets/device-d648e8b1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-54256645.js"),["assets/device-54256645.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-6bb7f4ce.js"),["assets/device-6bb7f4ce.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-2b41f049.js"),["assets/device-2b41f049.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-83751355.js"),["assets/device-83751355.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-2c93924a.js"),["assets/device-2c93924a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-807f54c8.js"),["assets/device-807f54c8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-a3df49fa.js"),["assets/device-a3df49fa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-ae8768b0.js"),["assets/device-ae8768b0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-e72282ad.js"),["assets/device-e72282ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-ca48bc84.js"),["assets/device-ca48bc84.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-a865ff54.js"),["assets/device-a865ff54.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-9860159d.js"),["assets/device-9860159d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-217557f3.js"),["assets/device-217557f3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-580d433d.js"),["assets/device-580d433d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-ea044e8b.js"),["assets/device-ea044e8b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-1af14c2d.js"),["assets/device-1af14c2d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-593985f3.js"),["assets/device-593985f3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-0417bc62.js"),["assets/device-0417bc62.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-b1e74030.js"),["assets/device-b1e74030.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-a4db94b7.js"),["assets/device-a4db94b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-9a6724b0.js"),["assets/device-9a6724b0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-c5c08de7.js"),["assets/device-c5c08de7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-f6c6ada6.js"),["assets/device-f6c6ada6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-c8d98c4f.js"),["assets/device-c8d98c4f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-64aa9baa.js"),["assets/device-64aa9baa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-2727533f.js"),["assets/device-2727533f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-067bd2b4.js"),["assets/device-067bd2b4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-84d29faf.js"),["assets/device-84d29faf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-4949af42.js"),["assets/device-4949af42.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-8b3c6b93.js"),["assets/device-8b3c6b93.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-7b7a6795.js"),["assets/device-7b7a6795.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-934c7c46.js"),["assets/device-934c7c46.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-c754a9de.js"),["assets/device-c754a9de.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-ce70648b.js"),["assets/device-ce70648b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-8208ec49.js"),["assets/device-8208ec49.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-ea46c01b.js"),["assets/device-ea46c01b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-0af3a888.js"),["assets/device-0af3a888.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-90fd7b10.js"),["assets/device-90fd7b10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-97b2fd4c.js"),["assets/device-97b2fd4c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-793f6594.js"),["assets/device-793f6594.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-314b37f4.js"),["assets/device-314b37f4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-fe29c517.js"),["assets/device-fe29c517.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-daa3f4b4.js"),["assets/device-daa3f4b4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-0e3d5ead.js"),["assets/device-0e3d5ead.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-d043355a.js"),["assets/device-d043355a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-968321b7.js"),["assets/device-968321b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-fd3d383f.js"),["assets/device-fd3d383f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-36b0e353.js"),["assets/device-36b0e353.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-f3a038ab.js"),["assets/device-f3a038ab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-f22ddd6a.js"),["assets/device-f22ddd6a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-b0695a55.js"),["assets/device-b0695a55.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-a5aa6912.js"),["assets/device-a5aa6912.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-9a0eb853.js"),["assets/device-9a0eb853.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-321a3131.js"),["assets/device-321a3131.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-5b177486.js"),["assets/device-5b177486.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-efb7cbd7.js"),["assets/device-efb7cbd7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-1c0ca81c.js"),["assets/device-1c0ca81c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-5ab46dd2.js"),["assets/device-5ab46dd2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-a744f1a9.js"),["assets/device-a744f1a9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-db9e27e0.js"),["assets/device-db9e27e0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-f4a747e4.js"),["assets/device-f4a747e4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-6dc3cbcf.js"),["assets/device-6dc3cbcf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-ce0da382.js"),["assets/device-ce0da382.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-1763d060.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-5240b4cd.js"),["assets/device-5240b4cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-9da23c88.js"),["assets/device-9da23c88.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-cbfc3bcf.js"),["assets/device-cbfc3bcf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-f6f4b717.js"),["assets/counter-f6f4b717.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-1650b898.js"),["assets/device-1650b898.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-6951647c.js"),["assets/device-6951647c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-1ba6fbd1.js"),["assets/device-1ba6fbd1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-bb93e0c5.js"),["assets/device-bb93e0c5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-6cdc58ad.js"),["assets/inverter-6cdc58ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-ba80e8bc.js"),["assets/device-ba80e8bc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-b8465e85.js"),["assets/counter-b8465e85.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-91766407.js"),["assets/device-91766407.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-85c27770.js"),["assets/bat-85c27770.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-bd72fc69.js"),["assets/counter-bd72fc69.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-80f3c53d.js"),["assets/device-80f3c53d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-978340ad.js"),["assets/inverter-978340ad.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-b55343be.js"),["assets/counter-b55343be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-976c3ed0.js"),["assets/device-976c3ed0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-d37e3a89.js"),["assets/inverter-d37e3a89.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-94b7690a.js"),["assets/device-94b7690a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-26e5779e.js"),["assets/device-26e5779e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-731bba6c.js"),["assets/counter-731bba6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-6eebc26d.js"),["assets/device-6eebc26d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-03536592.js"),["assets/inverter-03536592.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-7085cfa5.js"),["assets/bat-7085cfa5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-f5bb0927.js"),["assets/device-f5bb0927.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-603e297b.js"),["assets/bat-603e297b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-dc2fbcd4.js"),["assets/counter-dc2fbcd4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-f81c8fe3.js"),["assets/device-f81c8fe3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-7bfc46a9.js"),["assets/inverter-7bfc46a9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-963195ec.js"),["assets/bat-963195ec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-f0cf2ba8.js"),["assets/counter_sm-f0cf2ba8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-db799536.js"),["assets/device-db799536.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-beef74aa.js"),["assets/inverter_secondary-beef74aa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-bf76ab5b.js"),["assets/bat-bf76ab5b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-635ec6a1.js"),["assets/counter-635ec6a1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-7deac388.js"),["assets/device-7deac388.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-ecb017d5.js"),["assets/inverter-ecb017d5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-5f428f2c.js"),["assets/bat-5f428f2c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-d37b7967.js"),["assets/counter-d37b7967.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-9978add8.js"),["assets/device-9978add8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-8852b294.js"),["assets/inverter-8852b294.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-5a9e05bd.js"),["assets/bat-5a9e05bd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-9af42dfd.js"),["assets/counter-9af42dfd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-daae64af.js"),["assets/device-daae64af.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-53303433.js"),["assets/inverter-53303433.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-c5f6630c.js"),["assets/counter-c5f6630c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-0079b7c4.js"),["assets/bat-0079b7c4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-b1552895.js"),["assets/device-b1552895.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-e0a42828.js"),["assets/device-e0a42828.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-273c2917.js"),["assets/device-273c2917.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-0f286f24.js"),["assets/device-0f286f24.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-4bb974ac.js"),["assets/bat-4bb974ac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-7b069dd4.js"),["assets/counter-7b069dd4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-7edd017e.js"),["assets/device-7edd017e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-88249932.js"),["assets/inverter-88249932.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-e85518bd.js"),["assets/counter-e85518bd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-4b087be4.js"),["assets/device-4b087be4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-88b46fef.js"),["assets/device-88b46fef.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-4627e308.js"),["assets/inverter-4627e308.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-de1ec1b6.js"),["assets/counter-de1ec1b6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-02198499.js"),["assets/device-02198499.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-caf37eee.js"),["assets/inverter-caf37eee.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-859da7f4.js"),["assets/device-859da7f4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-b048df1e.js"),["assets/counter-b048df1e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-18097e2d.js"),["assets/device-18097e2d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-40864be2.js"),["assets/counter-40864be2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-0bc384b5.js"),["assets/device-0bc384b5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-1d428e9d.js"),["assets/device-1d428e9d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-a6cec0ba.js"),["assets/inverter-a6cec0ba.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-0213ecc8.js"),["assets/device-0213ecc8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-1743b14c.js"),["assets/bat-1743b14c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-7f86e28b.js"),["assets/counter-7f86e28b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-5eeef515.js"),["assets/device-5eeef515.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-caa14dff.js"),["assets/inverter-caa14dff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-ef3a1ae0.js"),["assets/device-ef3a1ae0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-5764cfa6.js"),["assets/counter-5764cfa6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-c093f507.js"),["assets/device-c093f507.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-460cf214.js"),["assets/device-460cf214.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-73d53863.js"),["assets/inverter-73d53863.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-b7119d36.js"),["assets/bat-b7119d36.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-24752ba6.js"),["assets/bat-24752ba6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-76defcac.js"),["assets/counter-76defcac.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-3b43cf62.js"),["assets/inverter-3b43cf62.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-eb43a2dd.js"),["assets/bat-eb43a2dd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-4b0981c8.js"),["assets/consumption_counter-4b0981c8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-16521b19.js"),["assets/counter-16521b19.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-a10f2b43.js"),["assets/device-a10f2b43.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-245394b4.js"),["assets/inverter-245394b4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-6544fcc7.js"),["assets/inverter-6544fcc7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-0ec7a0df.js"),["assets/counter-0ec7a0df.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-72338768.js"),["assets/device-72338768.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-98320830.js"),["assets/counter-98320830.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-60aeaee1.js"),["assets/device-60aeaee1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-e1f3b953.js"),["assets/counter-e1f3b953.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-dba34848.js"),["assets/device-dba34848.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-24ad1813.js"),["assets/inverter-24ad1813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-f86e50f5.js"),["assets/device-f86e50f5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-5e9634b3.js"),["assets/device-5e9634b3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-a725aeb2.js"),["assets/device-a725aeb2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-d5fff003.js"),["assets/counter-d5fff003.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-fb3f0638.js"),["assets/device-fb3f0638.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-7cbf9e1b.js"),["assets/device-7cbf9e1b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-01b22385.js"),["assets/device-01b22385.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-01f5909c.js"),["assets/bat-01f5909c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-19fe2ebe.js"),["assets/counter-19fe2ebe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-543c7cf1.js"),["assets/device-543c7cf1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-2b890ac2.js"),["assets/inverter-2b890ac2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-7d67f5a4.js"),["assets/counter-7d67f5a4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-aef1263c.js"),["assets/inverter-aef1263c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-6280a033.js"),["assets/bat-6280a033.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-7bd1be99.js"),["assets/bat_smart_energy-7bd1be99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-6569a0ee.js"),["assets/counter-6569a0ee.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-bff17bf9.js"),["assets/device-bff17bf9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-45b9dfd5.js"),["assets/inverter-45b9dfd5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-0fe2ce12.js"),["assets/bat-0fe2ce12.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-2d94ba41.js"),["assets/device-2d94ba41.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-3262b3d0.js"),["assets/device-3262b3d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-305725ef.js"),["assets/counter-305725ef.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-f540e28b.js"),["assets/device-f540e28b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-38b9aa2f.js"),["assets/inverter-38b9aa2f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-dc079100.js"),["assets/device-dc079100.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-e839e7b2.js"),["assets/device-e839e7b2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-2ded04bf.js"),["assets/counter-2ded04bf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-f9d125b7.js"),["assets/device-f9d125b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-925a2214.js"),["assets/device-925a2214.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-d21871b8.js"),["assets/inverter-d21871b8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-0f7b2e78.js"),["assets/device-0f7b2e78.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-2e032031.js"),["assets/device-2e032031.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-7c50b216.js"),["assets/bat-7c50b216.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-8ad87846.js"),["assets/counter-8ad87846.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-37c5ba29.js"),["assets/device-37c5ba29.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-ffb002d6.js"),["assets/external_inverter-ffb002d6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-78c7be59.js"),["assets/inverter-78c7be59.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-6970d920.js"),["assets/bat-6970d920.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-5cd2d133.js"),["assets/device-5cd2d133.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-5832877f.js"),["assets/inverter-5832877f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-0bf5a4ff.js"),["assets/device-0bf5a4ff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-86de24dd.js"),["assets/bat-86de24dd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-210d0471.js"),["assets/counter-210d0471.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-792ba59b.js"),["assets/device-792ba59b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-d3468ee1.js"),["assets/inverter-d3468ee1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-cdf1c2b8.js"),["assets/bat-cdf1c2b8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-43d19e90.js"),["assets/counter-43d19e90.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-e52440f6.js"),["assets/counter_consumption-e52440f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-71124548.js"),["assets/device-71124548.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-5bea14b5.js"),["assets/bat-5bea14b5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-370d755b.js"),["assets/device-370d755b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-620105cf.js"),["assets/inverter-620105cf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-2367d534.js"),["assets/device-2367d534.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-caceef31.js"),["assets/device-caceef31.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-70a820fe.js"),["assets/device-70a820fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-7e6b0880.js"),["assets/counter-7e6b0880.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-de18fd76.js"),["assets/device-de18fd76.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-5a9cf87f.js"),["assets/counter-5a9cf87f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-26b9e44a.js"),["assets/device-26b9e44a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-e44093db.js"),["assets/device-e44093db.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-3bf9a466.js"),["assets/device-3bf9a466.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-a3c08770.js"),["assets/inverter-a3c08770.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-a147c976.js"),["assets/bat-a147c976.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-dbab9da7.js"),["assets/counter-dbab9da7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-598f2bfc.js"),["assets/device-598f2bfc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-6b4811b8.js"),["assets/inverter-6b4811b8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-7abb53f8.js"),["assets/counter-7abb53f8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-42d8e6a7.js"),["assets/device-42d8e6a7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-cbb4bfca.js"),["assets/inverter-cbb4bfca.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-63654d04.js"),["assets/device-63654d04.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-abc3d758.js"),["assets/inverter-abc3d758.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-5240b4cd.js"),["assets/device-5240b4cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-9da23c88.js"),["assets/device-9da23c88.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-cbfc3bcf.js"),["assets/device-cbfc3bcf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-1650b898.js"),["assets/device-1650b898.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-6951647c.js"),["assets/device-6951647c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-1ba6fbd1.js"),["assets/device-1ba6fbd1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-bb93e0c5.js"),["assets/device-bb93e0c5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-ba80e8bc.js"),["assets/device-ba80e8bc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-91766407.js"),["assets/device-91766407.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-80f3c53d.js"),["assets/device-80f3c53d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-976c3ed0.js"),["assets/device-976c3ed0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-94b7690a.js"),["assets/device-94b7690a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-26e5779e.js"),["assets/device-26e5779e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-6eebc26d.js"),["assets/device-6eebc26d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-f5bb0927.js"),["assets/device-f5bb0927.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-f81c8fe3.js"),["assets/device-f81c8fe3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-db799536.js"),["assets/device-db799536.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-7deac388.js"),["assets/device-7deac388.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-9978add8.js"),["assets/device-9978add8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-daae64af.js"),["assets/device-daae64af.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-b1552895.js"),["assets/device-b1552895.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-e0a42828.js"),["assets/device-e0a42828.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-273c2917.js"),["assets/device-273c2917.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-0f286f24.js"),["assets/device-0f286f24.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-7edd017e.js"),["assets/device-7edd017e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-4b087be4.js"),["assets/device-4b087be4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-88b46fef.js"),["assets/device-88b46fef.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-02198499.js"),["assets/device-02198499.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-859da7f4.js"),["assets/device-859da7f4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-18097e2d.js"),["assets/device-18097e2d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-0bc384b5.js"),["assets/device-0bc384b5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-1d428e9d.js"),["assets/device-1d428e9d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-0213ecc8.js"),["assets/device-0213ecc8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-5eeef515.js"),["assets/device-5eeef515.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-ef3a1ae0.js"),["assets/device-ef3a1ae0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-c093f507.js"),["assets/device-c093f507.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-460cf214.js"),["assets/device-460cf214.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-a10f2b43.js"),["assets/device-a10f2b43.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-72338768.js"),["assets/device-72338768.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-60aeaee1.js"),["assets/device-60aeaee1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-dba34848.js"),["assets/device-dba34848.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-f86e50f5.js"),["assets/device-f86e50f5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-5e9634b3.js"),["assets/device-5e9634b3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-a725aeb2.js"),["assets/device-a725aeb2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-fb3f0638.js"),["assets/device-fb3f0638.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-7cbf9e1b.js"),["assets/device-7cbf9e1b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-01b22385.js"),["assets/device-01b22385.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-543c7cf1.js"),["assets/device-543c7cf1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-bff17bf9.js"),["assets/device-bff17bf9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-2d94ba41.js"),["assets/device-2d94ba41.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-3262b3d0.js"),["assets/device-3262b3d0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-f540e28b.js"),["assets/device-f540e28b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-dc079100.js"),["assets/device-dc079100.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-e839e7b2.js"),["assets/device-e839e7b2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-f9d125b7.js"),["assets/device-f9d125b7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-925a2214.js"),["assets/device-925a2214.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-0f7b2e78.js"),["assets/device-0f7b2e78.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-2e032031.js"),["assets/device-2e032031.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-37c5ba29.js"),["assets/device-37c5ba29.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-5cd2d133.js"),["assets/device-5cd2d133.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-0bf5a4ff.js"),["assets/device-0bf5a4ff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-792ba59b.js"),["assets/device-792ba59b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-71124548.js"),["assets/device-71124548.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-370d755b.js"),["assets/device-370d755b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-2367d534.js"),["assets/device-2367d534.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-caceef31.js"),["assets/device-caceef31.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-70a820fe.js"),["assets/device-70a820fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-de18fd76.js"),["assets/device-de18fd76.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-26b9e44a.js"),["assets/device-26b9e44a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-e44093db.js"),["assets/device-e44093db.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-3bf9a466.js"),["assets/device-3bf9a466.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-598f2bfc.js"),["assets/device-598f2bfc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-42d8e6a7.js"),["assets/device-42d8e6a7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-63654d04.js"),["assets/device-63654d04.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-f12ad3da.js b/web/settings/assets/IdentificationConfig-a593a783.js similarity index 99% rename from web/settings/assets/IdentificationConfig-f12ad3da.js rename to web/settings/assets/IdentificationConfig-a593a783.js index 80f72ddb84..3cd74c3092 100644 --- a/web/settings/assets/IdentificationConfig-f12ad3da.js +++ b/web/settings/assets/IdentificationConfig-a593a783.js @@ -1,2 +1,2 @@ -import{C as $}from"./index-1cca615d.js";import{_ as D,u as m,l as i,m as u,A as r,G as s,E as o,B as a,x as l,z as g,N as B,M as W,F as b}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 I={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/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}}},y={class:"optionalComponents"},F={name:"optionalComponentsForm"},L={key:2},q={key:0},S={key:2},T={key:0};function V(e,t,E,C,A,f){const d=m("openwb-base-alert"),c=m("openwb-base-button-group-input"),z=m("openwb-base-textarea"),v=m("openwb-base-card"),h=m("openwb-base-heading"),_=m("openwb-base-array-input"),w=m("openwb-base-submit-buttons");return i(),u("div",y,[r("form",F,[s(v,{title:"Identifikation"},{default:o(()=>[s(d,{subtype:"info"},{default:o(()=>t[4]||(t[4]=[r("p",null,[a(" Eine ausführliche Anleitung findest Du hier: "),r("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:software:identifikation",target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Identifikation ")],-1),a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),r("ul",null,[r("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),r("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),r("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),r("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1),r("p",null,[a(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein Fragezeichen (?) entspricht dabei einem Zeichen, ein Stern (*) beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),r("br"),a(" Es wird davon abgeraten, Muster für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1)])),_:1,__:[4]}),s(c,{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?(i(),l(d,{key:0,subtype:"info",class:"mt-3"},{default:o(()=>t[5]||(t[5]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[5]})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),l(z,{key:1,title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":f.idTagList.join(` +import{C as $}from"./index-1763d060.js";import{_ as D,u as m,l as i,m as u,A as r,G as s,E as o,B as a,x as l,z as g,N as B,M as W,F as b}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 I={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/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}}},y={class:"optionalComponents"},F={name:"optionalComponentsForm"},L={key:2},q={key:0},S={key:2},T={key:0};function V(e,t,E,C,A,f){const d=m("openwb-base-alert"),c=m("openwb-base-button-group-input"),z=m("openwb-base-textarea"),v=m("openwb-base-card"),h=m("openwb-base-heading"),_=m("openwb-base-array-input"),w=m("openwb-base-submit-buttons");return i(),u("div",y,[r("form",F,[s(v,{title:"Identifikation"},{default:o(()=>[s(d,{subtype:"info"},{default:o(()=>t[4]||(t[4]=[r("p",null,[a(" Eine ausführliche Anleitung findest Du hier: "),r("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:software:identifikation",target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Identifikation ")],-1),a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),r("ul",null,[r("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),r("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),r("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),r("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1),r("p",null,[a(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein Fragezeichen (?) entspricht dabei einem Zeichen, ein Stern (*) beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),r("br"),a(" Es wird davon abgeraten, Muster für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1)])),_:1,__:[4]}),s(c,{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?(i(),l(d,{key:0,subtype:"info",class:"mt-3"},{default:o(()=>t[5]||(t[5]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[5]})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),l(z,{key:1,title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":f.idTagList.join(` `)},null,8,["model-value"])):g("",!0)]),_:1}),s(h,null,{default:o(()=>t[6]||(t[6]=[a(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])),_:1,__:[6]}),s(v,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),l(d,{key:0,subtype:"info"},{default:o(()=>t[7]||(t[7]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' 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?(i(),l(d,{key:1,subtype:"info"},{default:o(()=>t[8]||(t[8]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[8]})):(i(),u("div",L,[s(d,{subtype:"info"},{default:o(()=>t[9]||(t[9]=[a(" 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]}),(i(!0),u(B,null,W(f.chargePointTemplates,(n,p)=>(i(),u("div",{key:p},[f.getChargePointTemplateIndex(p)!=0?(i(),u("hr",q)):g("",!0),s(h,{class:"mt-0"},{default:o(()=>[a(b(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),l(_,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":n.valid_tags,"onUpdate:modelValue":k=>e.updateState(p,k,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),s(c,{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":k=>e.updateState(p,k,"disable_after_unplug")},{help:o(()=>[a(' Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+b(n.name)+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt. ',1)]),_:2},1032,["model-value","onUpdate:modelValue"])]))),128))]))]),_:1}),s(h,null,{default:o(()=>t[10]||(t[10]=[a(" Zuordnung von Fahrzeugen ",-1)])),_:1,__:[10]}),s(v,{title:"Fahrzeuge",subtype:"info",collapsible:!0,collapsed:!0},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),l(d,{key:0,subtype:"info"},{default:o(()=>t[11]||(t[11]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])),_:1,__:[11]})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(i(),l(d,{key:1,subtype:"info"},{default:o(()=>t[12]||(t[12]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[12]})):(i(),u("div",S,[s(d,{subtype:"info"},{default:o(()=>t[13]||(t[13]=[a(" 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 5 Minuten verworfen wird. ",-1)])),_:1,__:[13]}),(i(!0),u(B,null,W(f.vehicleIndexes,n=>(i(),u("div",{key:n},[n!=f.vehicleIndexes[0]?(i(),u("hr",T)):g("",!0),s(h,{class:"mt-0"},{default:o(()=>[a(b(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),l(_,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":p=>e.updateState("openWB/vehicle/"+n+"/tag_id",p)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),n!=0?(i(),l(c,{key:2,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":p=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],p,"load_default")},{help:o(()=>[a(' Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name)+'" gespeichert.',1),t[14]||(t[14]=r("br",null,null,-1)),a(' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge '+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?"aktiviert":"deaktiviert")+" , denen dieses Lade-Profil zugeordnet wurde. ",1)]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0)]))),128))]))]),_:1}),s(w,{"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 R=D(I,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfig.vue"]]);export{R as default}; diff --git a/web/settings/assets/InstallAssistant-89be276b.js b/web/settings/assets/InstallAssistant-222a118e.js similarity index 64% rename from web/settings/assets/InstallAssistant-89be276b.js rename to web/settings/assets/InstallAssistant-222a118e.js index 4b44b73c65..b57b0f5f17 100644 --- a/web/settings/assets/InstallAssistant-89be276b.js +++ b/web/settings/assets/InstallAssistant-222a118e.js @@ -1 +1 @@ -import{C as r,_ as t}from"./index-1cca615d.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-7699c5e7.js"),["assets/InstallAssistantStep0-7699c5e7.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-fa47b5b7.js"),["assets/InstallAssistantStep1-fa47b5b7.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-148ac42e.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-8c130020.js"),["assets/InstallAssistantStep10-8c130020.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-48b200f1.js"),["assets/InstallAssistantStep2-48b200f1.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-8af1b8d1.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-16bcd83c.js"),["assets/InstallAssistantStep3-16bcd83c.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-38b6a47c.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.1.vue":()=>t(()=>import("./InstallAssistantStep4.1-0269ceef.js"),["assets/InstallAssistantStep4.1-0269ceef.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/IoConfig-32908457.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-a98a2003.js"),["assets/InstallAssistantStep4-a98a2003.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-abc8fd1a.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-3bcdac85.js"),["assets/InstallAssistantStep5-3bcdac85.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-9e2c000c.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-9666928a.js"),["assets/InstallAssistantStep6-9666928a.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-abc8fd1a.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-45444eab.js"),["assets/InstallAssistantStep7-45444eab.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-1fb6d009.js","assets/OpenwbSortableList-55fee6ec.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-2890a9f7.js"),["assets/InstallAssistantStep8-2890a9f7.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-efa0f512.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-471bd7de.js"),["assets/InstallAssistantStep9-471bd7de.js","assets/index-1cca615d.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-322df0b0.css","assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-148ac42e.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-fa6a19b1.js"),["assets/InstallAssistantStepTemplate-fa6a19b1.js","assets/index-1cca615d.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-322df0b0.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-1763d060.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-d5298e4e.js"),["assets/InstallAssistantStep0-d5298e4e.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-7d34113d.js"),["assets/InstallAssistantStep1-7d34113d.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-49c08fca.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-674104cf.js"),["assets/InstallAssistantStep10-674104cf.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-c38540c8.js"),["assets/InstallAssistantStep2-c38540c8.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-c491751c.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-82865372.js"),["assets/InstallAssistantStep3-82865372.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-2436dcce.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.1.vue":()=>t(()=>import("./InstallAssistantStep4.1-7a3d6115.js"),["assets/InstallAssistantStep4.1-7a3d6115.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/IoConfig-ec9426ac.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-4c30a436.js"),["assets/InstallAssistantStep4-4c30a436.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-81df253b.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-00390292.js"),["assets/InstallAssistantStep5-00390292.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-a602f648.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-c0ffead4.js"),["assets/InstallAssistantStep6-c0ffead4.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-81df253b.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-dfff052b.js"),["assets/InstallAssistantStep7-dfff052b.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-15c67f12.js","assets/OpenwbSortableList-32687724.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-1ceca463.js"),["assets/InstallAssistantStep8-1ceca463.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-81c923a6.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-9d45c078.js"),["assets/InstallAssistantStep9-9d45c078.js","assets/index-1763d060.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-322df0b0.css","assets/InstallAssistantStepTemplate-75182c41.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-49c08fca.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-75182c41.js"),["assets/InstallAssistantStepTemplate-75182c41.js","assets/index-1763d060.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-322df0b0.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-7699c5e7.js b/web/settings/assets/InstallAssistantStep0-d5298e4e.js similarity index 95% rename from web/settings/assets/InstallAssistantStep0-7699c5e7.js rename to web/settings/assets/InstallAssistantStep0-d5298e4e.js index 8b80de69df..63337e30bd 100644 --- a/web/settings/assets/InstallAssistantStep0-7699c5e7.js +++ b/web/settings/assets/InstallAssistantStep0-d5298e4e.js @@ -1 +1 @@ -import{C as m}from"./index-1cca615d.js";import g from"./InstallAssistantStepTemplate-fa6a19b1.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-1763d060.js";import g from"./InstallAssistantStepTemplate-75182c41.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-fa47b5b7.js b/web/settings/assets/InstallAssistantStep1-7d34113d.js similarity index 89% rename from web/settings/assets/InstallAssistantStep1-fa47b5b7.js rename to web/settings/assets/InstallAssistantStep1-7d34113d.js index b7446e6a84..30bd1a21b0 100644 --- a/web/settings/assets/InstallAssistantStep1-fa47b5b7.js +++ b/web/settings/assets/InstallAssistantStep1-7d34113d.js @@ -1 +1 @@ -import{C as m}from"./index-1cca615d.js";import p from"./InstallAssistantStepTemplate-fa6a19b1.js";import{D as l}from"./DataManagement-148ac42e.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-1763d060.js";import p from"./InstallAssistantStepTemplate-75182c41.js";import{D as l}from"./DataManagement-49c08fca.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-8c130020.js b/web/settings/assets/InstallAssistantStep10-674104cf.js similarity index 91% rename from web/settings/assets/InstallAssistantStep10-8c130020.js rename to web/settings/assets/InstallAssistantStep10-674104cf.js index f0563a1ec4..81fc8d400e 100644 --- a/web/settings/assets/InstallAssistantStep10-8c130020.js +++ b/web/settings/assets/InstallAssistantStep10-674104cf.js @@ -1 +1 @@ -import{C as a}from"./index-1cca615d.js";import o from"./InstallAssistantStepTemplate-fa6a19b1.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-1763d060.js";import o from"./InstallAssistantStepTemplate-75182c41.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-48b200f1.js b/web/settings/assets/InstallAssistantStep2-c38540c8.js similarity index 90% rename from web/settings/assets/InstallAssistantStep2-48b200f1.js rename to web/settings/assets/InstallAssistantStep2-c38540c8.js index 56261244b8..50b7a264fb 100644 --- a/web/settings/assets/InstallAssistantStep2-48b200f1.js +++ b/web/settings/assets/InstallAssistantStep2-c38540c8.js @@ -1 +1 @@ -import{C as l}from"./index-1cca615d.js";import p from"./InstallAssistantStepTemplate-fa6a19b1.js";import d from"./System-8af1b8d1.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-1763d060.js";import p from"./InstallAssistantStepTemplate-75182c41.js";import d from"./System-c491751c.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-16bcd83c.js b/web/settings/assets/InstallAssistantStep3-82865372.js similarity index 91% rename from web/settings/assets/InstallAssistantStep3-16bcd83c.js rename to web/settings/assets/InstallAssistantStep3-82865372.js index 666123a099..0a6e36fe4b 100644 --- a/web/settings/assets/InstallAssistantStep3-16bcd83c.js +++ b/web/settings/assets/InstallAssistantStep3-82865372.js @@ -1 +1 @@ -import{C as p}from"./index-1cca615d.js";import d from"./InstallAssistantStepTemplate-fa6a19b1.js";import{G as m}from"./GeneralConfig-38b6a47c.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 secondary betrieben 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-1763d060.js";import d from"./InstallAssistantStepTemplate-75182c41.js";import{G as m}from"./GeneralConfig-2436dcce.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 secondary betrieben 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-a98a2003.js b/web/settings/assets/InstallAssistantStep4-4c30a436.js similarity index 91% rename from web/settings/assets/InstallAssistantStep4-a98a2003.js rename to web/settings/assets/InstallAssistantStep4-4c30a436.js index 28301ca4d6..a4fa23913e 100644 --- a/web/settings/assets/InstallAssistantStep4-a98a2003.js +++ b/web/settings/assets/InstallAssistantStep4-4c30a436.js @@ -1 +1 @@ -import{C as l}from"./index-1cca615d.js";import d from"./InstallAssistantStepTemplate-fa6a19b1.js";import{b as m}from"./ChargePointInstallation-abc8fd1a.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-1763d060.js";import d from"./InstallAssistantStepTemplate-75182c41.js";import{b as m}from"./ChargePointInstallation-81df253b.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-0269ceef.js b/web/settings/assets/InstallAssistantStep4.1-7a3d6115.js similarity index 90% rename from web/settings/assets/InstallAssistantStep4.1-0269ceef.js rename to web/settings/assets/InstallAssistantStep4.1-7a3d6115.js index 39d20595a7..5ebbe815ab 100644 --- a/web/settings/assets/InstallAssistantStep4.1-0269ceef.js +++ b/web/settings/assets/InstallAssistantStep4.1-7a3d6115.js @@ -1 +1 @@ -import{C as l}from"./index-1cca615d.js";import p from"./InstallAssistantStepTemplate-fa6a19b1.js";import{I as d}from"./IoConfig-32908457.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-1763d060.js";import p from"./InstallAssistantStepTemplate-75182c41.js";import{I as d}from"./IoConfig-ec9426ac.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-3bcdac85.js b/web/settings/assets/InstallAssistantStep5-00390292.js similarity index 92% rename from web/settings/assets/InstallAssistantStep5-3bcdac85.js rename to web/settings/assets/InstallAssistantStep5-00390292.js index d2666b0d63..21b4a7561d 100644 --- a/web/settings/assets/InstallAssistantStep5-3bcdac85.js +++ b/web/settings/assets/InstallAssistantStep5-00390292.js @@ -1 +1 @@ -import{C as d}from"./index-1cca615d.js";import m from"./InstallAssistantStepTemplate-fa6a19b1.js";import{H as p}from"./HardwareInstallation-9e2c000c.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-1763d060.js";import m from"./InstallAssistantStepTemplate-75182c41.js";import{H as p}from"./HardwareInstallation-a602f648.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-9666928a.js b/web/settings/assets/InstallAssistantStep6-c0ffead4.js similarity index 94% rename from web/settings/assets/InstallAssistantStep6-9666928a.js rename to web/settings/assets/InstallAssistantStep6-c0ffead4.js index 325a7434ae..061c8787a6 100644 --- a/web/settings/assets/InstallAssistantStep6-9666928a.js +++ b/web/settings/assets/InstallAssistantStep6-c0ffead4.js @@ -1 +1 @@ -import{C as d}from"./index-1cca615d.js";import u from"./InstallAssistantStepTemplate-fa6a19b1.js";import{b as p}from"./ChargePointInstallation-abc8fd1a.js";import{_ as m,u as a,l as h,x as g,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 c(t,e,f,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(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 openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-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 Abschnitt "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",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; +import{C as d}from"./index-1763d060.js";import u from"./InstallAssistantStepTemplate-75182c41.js";import{b as p}from"./ChargePointInstallation-81df253b.js";import{_ as m,u as a,l as h,x as g,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 c(t,e,f,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(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 openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-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 Abschnitt "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",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep7-45444eab.js b/web/settings/assets/InstallAssistantStep7-dfff052b.js similarity index 91% rename from web/settings/assets/InstallAssistantStep7-45444eab.js rename to web/settings/assets/InstallAssistantStep7-dfff052b.js index a98f98bcd1..c522e6b9bb 100644 --- a/web/settings/assets/InstallAssistantStep7-45444eab.js +++ b/web/settings/assets/InstallAssistantStep7-dfff052b.js @@ -1 +1 @@ -import{C as l}from"./index-1cca615d.js";import m from"./InstallAssistantStepTemplate-fa6a19b1.js";import p from"./LoadManagementConfig-1fb6d009.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-55fee6ec.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-1763d060.js";import m from"./InstallAssistantStepTemplate-75182c41.js";import p from"./LoadManagementConfig-15c67f12.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-32687724.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-2890a9f7.js b/web/settings/assets/InstallAssistantStep8-1ceca463.js similarity index 93% rename from web/settings/assets/InstallAssistantStep8-2890a9f7.js rename to web/settings/assets/InstallAssistantStep8-1ceca463.js index 2bd07213d6..de239a2625 100644 --- a/web/settings/assets/InstallAssistantStep8-2890a9f7.js +++ b/web/settings/assets/InstallAssistantStep8-1ceca463.js @@ -1 +1 @@ -import{C as g}from"./index-1cca615d.js";import p from"./InstallAssistantStepTemplate-fa6a19b1.js";import{a as h}from"./VehicleConfig-efa0f512.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-1763d060.js";import p from"./InstallAssistantStepTemplate-75182c41.js";import{a as h}from"./VehicleConfig-81c923a6.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-471bd7de.js b/web/settings/assets/InstallAssistantStep9-9d45c078.js similarity index 90% rename from web/settings/assets/InstallAssistantStep9-471bd7de.js rename to web/settings/assets/InstallAssistantStep9-9d45c078.js index 684c73e148..ab86a8a786 100644 --- a/web/settings/assets/InstallAssistantStep9-471bd7de.js +++ b/web/settings/assets/InstallAssistantStep9-9d45c078.js @@ -1 +1 @@ -import{C as l}from"./index-1cca615d.js";import p from"./InstallAssistantStepTemplate-fa6a19b1.js";import{D as u}from"./DataManagement-148ac42e.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-1763d060.js";import p from"./InstallAssistantStepTemplate-75182c41.js";import{D as u}from"./DataManagement-49c08fca.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-fa6a19b1.js b/web/settings/assets/InstallAssistantStepTemplate-75182c41.js similarity index 97% rename from web/settings/assets/InstallAssistantStepTemplate-fa6a19b1.js rename to web/settings/assets/InstallAssistantStepTemplate-75182c41.js index 4019ef5c0d..20c458faf2 100644 --- a/web/settings/assets/InstallAssistantStepTemplate-fa6a19b1.js +++ b/web/settings/assets/InstallAssistantStepTemplate-75182c41.js @@ -1 +1 @@ -import{C as g}from"./index-1cca615d.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-1763d060.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-32908457.js b/web/settings/assets/IoConfig-ec9426ac.js similarity index 93% rename from web/settings/assets/IoConfig-32908457.js rename to web/settings/assets/IoConfig-ec9426ac.js index e0eea6d2ef..f273ad868b 100644 --- a/web/settings/assets/IoConfig-32908457.js +++ b/web/settings/assets/IoConfig-ec9426ac.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-1cca615d.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-1241e1de.js"),["assets/io_device-1241e1de.js","assets/index-1cca615d.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-bf86df01.js"),["assets/io_device-bf86df01.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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[2]||(e[2]=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[3]||(e[3]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=w("br",null,null,-1)),e[5]||(e[5]=d(" Beispiel: ",-1)),e[6]||(e[6]=w("span",{class:"text-info"},"false",-1))]),_:1,__:[2,3,4,5,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-147091c0.js"),["assets/io_action-147091c0.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-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-09e473e1.js"),["assets/io_action-09e473e1.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-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-79128142.js"),["assets/io_action-79128142.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-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-c4d216cf.js"),["assets/io_action-c4d216cf.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-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-1763d060.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-f9bf8194.js"),["assets/io_device-f9bf8194.js","assets/index-1763d060.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-243d33bb.js"),["assets/io_device-243d33bb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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[2]||(e[2]=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[3]||(e[3]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=w("br",null,null,-1)),e[5]||(e[5]=d(" Beispiel: ",-1)),e[6]||(e[6]=w("span",{class:"text-info"},"false",-1))]),_:1,__:[2,3,4,5,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-3196d93c.js"),["assets/io_action-3196d93c.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-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-b7470969.js"),["assets/io_action-b7470969.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-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-b2215ceb.js"),["assets/io_action-b2215ceb.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-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-fb688837.js"),["assets/io_action-fb688837.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-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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-918cb89b.js b/web/settings/assets/LegalSettings-6bf68911.js similarity index 97% rename from web/settings/assets/LegalSettings-918cb89b.js rename to web/settings/assets/LegalSettings-6bf68911.js index e205b79f12..374204fe76 100644 --- a/web/settings/assets/LegalSettings-918cb89b.js +++ b/web/settings/assets/LegalSettings-6bf68911.js @@ -1 +1 @@ -import{l as f,af as k,F as v}from"./vendor-fortawesome-a02b6813.js";import{C as y}from"./index-1cca615d.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-1763d060.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-1fb6d009.js b/web/settings/assets/LoadManagementConfig-15c67f12.js similarity index 98% rename from web/settings/assets/LoadManagementConfig-1fb6d009.js rename to web/settings/assets/LoadManagementConfig-15c67f12.js index 95a30f70af..8dceaf4682 100644 --- a/web/settings/assets/LoadManagementConfig-1fb6d009.js +++ b/web/settings/assets/LoadManagementConfig-15c67f12.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-1cca615d.js";import{S as q}from"./OpenwbSortableList-55fee6ec.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-1763d060.js";import{S as q}from"./OpenwbSortableList-32687724.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-99007312.js b/web/settings/assets/MqttBridgeConfig-2bd2a268.js similarity index 99% rename from web/settings/assets/MqttBridgeConfig-99007312.js rename to web/settings/assets/MqttBridgeConfig-2bd2a268.js index 0de07aa765..b8a869075c 100644 --- a/web/settings/assets/MqttBridgeConfig-99007312.js +++ b/web/settings/assets/MqttBridgeConfig-2bd2a268.js @@ -1 +1 @@ -import{l as x,d as z,ab as D,F as A}from"./vendor-fortawesome-a02b6813.js";import{C}from"./index-1cca615d.js";import{_ as W,u,l as m,m as b,G as a,E as o,A as g,N as V,B as s,F as q,x as M,z as B,M as E}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(z,D);const Q={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:A},mixins:[C],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}}},Z={class:"mqttBridgeConfiguration"},L={key:0},I={key:1},N=["name"];function y(t,e,v,P,f,i){const T=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),w=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),_=u("openwb-base-heading"),S=u("openwb-base-number-input"),U=u("openwb-base-submit-buttons"),k=u("openwb-base-card");return m(),b(V,null,[a(T,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+q(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Z,[a(c,{subtype:"danger"},{default:o(()=>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),g("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]}),a(k,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),M(w,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",L,[a(c,{subtype:"info"},{default:o(()=>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",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),M(c,{key:0,subtype:"info"},{default:o(()=>e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])),_:1,__:[3]})):B("",!0),(m(!0),b(V,null,E(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(k,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(w,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:o(()=>[a(U,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(_,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1,__:[5]}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(S,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...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"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...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"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l.remote.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(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":l.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...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"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.remote.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...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]=g("hr",null,null,-1)),a(_,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1,__:[10]}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(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":l.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2,__:[14,15]},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=W(Q,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; +import{l as x,d as z,ab as D,F as A}from"./vendor-fortawesome-a02b6813.js";import{C}from"./index-1763d060.js";import{_ as W,u,l as m,m as b,G as a,E as o,A as g,N as V,B as s,F as q,x as M,z as B,M as E}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(z,D);const Q={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:A},mixins:[C],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}}},Z={class:"mqttBridgeConfiguration"},L={key:0},I={key:1},N=["name"];function y(t,e,v,P,f,i){const T=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),w=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),_=u("openwb-base-heading"),S=u("openwb-base-number-input"),U=u("openwb-base-submit-buttons"),k=u("openwb-base-card");return m(),b(V,null,[a(T,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+q(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Z,[a(c,{subtype:"danger"},{default:o(()=>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),g("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]}),a(k,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),M(w,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",L,[a(c,{subtype:"info"},{default:o(()=>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",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),M(c,{key:0,subtype:"info"},{default:o(()=>e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])),_:1,__:[3]})):B("",!0),(m(!0),b(V,null,E(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(k,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(w,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:o(()=>[a(U,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(_,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1,__:[5]}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(S,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...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"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...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"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l.remote.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(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":l.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...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"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.remote.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...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]=g("hr",null,null,-1)),a(_,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1,__:[10]}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(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":l.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2,__:[14,15]},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=W(Q,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; diff --git a/web/settings/assets/OpenwbSortableList-55fee6ec.js b/web/settings/assets/OpenwbSortableList-32687724.js similarity index 97% rename from web/settings/assets/OpenwbSortableList-55fee6ec.js rename to web/settings/assets/OpenwbSortableList-32687724.js index 6508e8443c..3db7afab7d 100644 --- a/web/settings/assets/OpenwbSortableList-55fee6ec.js +++ b/web/settings/assets/OpenwbSortableList-32687724.js @@ -1 +1 @@ -import{O as v}from"./index-1cca615d.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-1763d060.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-c036d511.js b/web/settings/assets/OptionalComponents-8784bcad.js similarity index 95% rename from web/settings/assets/OptionalComponents-c036d511.js rename to web/settings/assets/OptionalComponents-8784bcad.js index 143f10c73a..f17cbf43e0 100644 --- a/web/settings/assets/OptionalComponents-c036d511.js +++ b/web/settings/assets/OptionalComponents-8784bcad.js @@ -1 +1 @@ -import{_ as T,C as $}from"./index-1cca615d.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-ef3b682f.js"),["assets/displayTheme-ef3b682f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1cca615d.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-4e07af56.js"),["assets/displayTheme-4e07af56.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1cca615d.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-322df0b0.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-1763d060.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-62bb8bc1.js"),["assets/displayTheme-62bb8bc1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1763d060.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-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-5185be76.js"),["assets/displayTheme-5185be76.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-1763d060.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-322df0b0.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-414cfbfd.js b/web/settings/assets/PVChargeConfig-53be3418.js similarity index 99% rename from web/settings/assets/PVChargeConfig-414cfbfd.js rename to web/settings/assets/PVChargeConfig-53be3418.js index 38555ef53c..c80594110c 100644 --- a/web/settings/assets/PVChargeConfig-414cfbfd.js +++ b/web/settings/assets/PVChargeConfig-53be3418.js @@ -1 +1 @@ -import{C as S}from"./index-1cca615d.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-1763d060.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-a7349646.js b/web/settings/assets/Status-681ea506.js similarity index 99% rename from web/settings/assets/Status-a7349646.js rename to web/settings/assets/Status-681ea506.js index 0dcdf8a9aa..62396ec497 100644 --- a/web/settings/assets/Status-a7349646.js +++ b/web/settings/assets/Status-681ea506.js @@ -1 +1 @@ -import{C as k}from"./index-1cca615d.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-1763d060.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-e1083739.js b/web/settings/assets/Support-89ca8162.js similarity index 99% rename from web/settings/assets/Support-e1083739.js rename to web/settings/assets/Support-89ca8162.js index c711e3db38..7abdab7a19 100644 --- a/web/settings/assets/Support-e1083739.js +++ b/web/settings/assets/Support-89ca8162.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-1cca615d.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-1763d060.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-8af1b8d1.js b/web/settings/assets/System-c491751c.js similarity index 99% rename from web/settings/assets/System-8af1b8d1.js rename to web/settings/assets/System-c491751c.js index 9a2e917f06..11f997b1db 100644 --- a/web/settings/assets/System-8af1b8d1.js +++ b/web/settings/assets/System-c491751c.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-1cca615d.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}),r(f,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:i(()=>[a("form",N,[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:"/System/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-1763d060.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}),r(f,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:i(()=>[a("form",N,[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:"/System/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-65e8fa9e.js b/web/settings/assets/TestingStore-213a57db.js similarity index 98% rename from web/settings/assets/TestingStore-65e8fa9e.js rename to web/settings/assets/TestingStore-213a57db.js index 488fa6a61f..9314ea3614 100644 --- a/web/settings/assets/TestingStore-65e8fa9e.js +++ b/web/settings/assets/TestingStore-213a57db.js @@ -1 +1 @@ -import{C as B}from"./index-1cca615d.js";import{S as O}from"./OpenwbSortableList-55fee6ec.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-1763d060.js";import{S as O}from"./OpenwbSortableList-32687724.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-81c923a6.js b/web/settings/assets/VehicleConfig-81c923a6.js new file mode 100644 index 0000000000..f0d8c156c2 --- /dev/null +++ b/web/settings/assets/VehicleConfig-81c923a6.js @@ -0,0 +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 de,a0 as oe,ao as se,R as me,M as ge}from"./vendor-fortawesome-a02b6813.js";import{_ as k,C as Y}from"./index-1763d060.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as b,l as o,m as p,x as c,E as a,B as i,F as w,G as l,A as g,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=b("openwb-base-alert"),h=b("openwb-base-textarea");return o(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(o(),c(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),p("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(()=>[g("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-b3dabea7.js"),["assets/vehicle-b3dabea7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-c4ab7d9f.js"),["assets/vehicle-c4ab7d9f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-8d8ec137.js"),["assets/vehicle-8d8ec137.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-b7b67d07.js"),["assets/vehicle-b7b67d07.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-dac193d6.js"),["assets/vehicle-dac193d6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-425ad7a8.js"),["assets/vehicle-425ad7a8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-fe0cd714.js"),["assets/vehicle-fe0cd714.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-64a3f2b3.js"),["assets/vehicle-64a3f2b3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-ca6ab3a7.js"),["assets/vehicle-ca6ab3a7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-b3e4e926.js"),["assets/vehicle-b3e4e926.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-5d1017e5.js"),["assets/vehicle-5d1017e5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-a5530aec.js"),["assets/vehicle-a5530aec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-11965fde.js"),["assets/vehicle-11965fde.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-7307a31c.js"),["assets/vehicle-7307a31c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-5af4243c.js"),["assets/vehicle-5af4243c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-02f318fa.js"),["assets/vehicle-02f318fa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-2004f3f9.js"),["assets/vehicle-2004f3f9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-2a84e047.js"),["assets/vehicle-2a84e047.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-bf8e52f9.js"),["assets/vehicle-bf8e52f9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/index-1763d060.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-e0592cce.js"),["assets/vehicle-e0592cce.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-c842cea3.js"),["assets/vehicle-c842cea3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1763d060.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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=b("font-awesome-icon"),h=b("openwb-base-alert"),z=b("openwb-base-heading");return o(),p(W,null,[f.vehicle.official?(o(),c(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})):(o(),c(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}),(o(),c(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=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-alert"),v=b("openwb-base-card");return o(),p(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?(o(),p("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"?(o(),p("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"?(o(),p("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"?(o(),p("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Le,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(o(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(o(),p("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"?(o(),c(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"?(o(),c(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"?(o(),c(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]=g("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"?(o(),c(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"?(o(),p("div",Be,[(o(!0),p(W,null,D(n.weekdays,(s,_)=>(o(),c(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]=g("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)?(o(),c(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?(o(),c(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"?(o(),p("div",Me,[e[30]||(e[30]=g("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),g("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?(o(),c(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?(o(),c(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=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-card");return o(),p(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?(o(),p("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"?(o(),p("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("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"?(o(),p("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"?(o(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(o(),p("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?(o(),c(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]=g("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"?(o(),c(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"?(o(),c(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"?(o(),p("div",He,[(o(!0),p(W,null,D(n.weekdays,(v,s)=>(o(),c(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]=g("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(de,X,j,G,J,H,R,I,oe,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},dn={key:0},on={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,P,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-alert"),C=b("openwb-base-text-input"),F=b("openwb-base-select-input"),S=b("openwb-base-heading"),M=b("router-link"),v=b("openwb-base-array-input"),s=b("openwb-base-button-group-input"),_=b("openwb-base-number-input"),N=b("openwb-vehicle-proxy"),U=b("openwb-base-card"),K=b("font-awesome-layers"),L=b("openwb-base-range-input"),ne=b("charge-template-scheduled-charging-plan"),te=b("charge-template-time-charging-plan"),le=b("openwb-base-submit-buttons");return o(),p(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]=r=>t.removeVehicle(r,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]=r=>t.removeEvTemplate(r,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]=r=>t.removeChargeTemplate(r,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"]),g("div",Qe,[g("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?(o(),c(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?(o(),p("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]})])):(o(),p("div",Ke,[(o(!0),p(W,null,D(t.vehicleIndexes,r=>(o(),c(U,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/name",d)},Z({_:2},[r===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"]),r!==0?(o(),c(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].manufacturer,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"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),r!==0?(o(),c(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].model,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("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/"+r+"/ev_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/ev_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/charge_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(o(),p("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/"+r+"/tag_id"].length>0?(o(),p("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?(o(),p("div",nn," Aktuell ist die Identifikation in den Einstellungen deaktiviert. ")):(o(),p("div",tn," Die Identifikation ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. "))]),_:1,__:[16,17]}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},{help:a(()=>[...e[18]||(e[18]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Fahrzeug zugeordnet sind. Mit diesen ID-Tags kann dieses Fahrzeug an Ladepunkten automatisch zugeordnet werden. ",-1)])]),_:2},1032,["model-value"])])):(o(),p("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]=g("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]=g("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/"+r+"/soc_module/config"].type,"onUpdate:modelValue":d=>t.updateSelectedSocModule(r,d)},{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),g("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),g("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),g("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/"+r+"/soc_module/config"].type?(o(),p("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/"+r+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"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,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*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:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*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/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"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":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":d=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",d)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(d=>[d.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{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]=g("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?(o(),c(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?(o(),p("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]})])):(o(),p("div",rn,[l(V,{subtype:"info"},{default:a(()=>e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),g("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]}),(o(!0),p(W,null,D(t.evTemplates,(r,d)=>(o(),c(U,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.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":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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):(o(),p("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(d,u,"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),g("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),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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":r.bidi,"onUpdate:modelValue":u=>n.updateState(d,u,"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?(o(),p("div",on,[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(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"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?(o(),p("span",sn," (AC) ")):m("",!0)]),_:1,__:[43]}),l(L,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(d,u,"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?(o(),p("span",mn," (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":r.max_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(o(),c(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.phase_switch_pause,"onUpdate:modelValue":u=>n.updateState(d,u,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"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(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,d)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),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?(o(),c(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?(o(),p("div",pn,[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]})])):(o(),p("div",hn,[(o(!0),p(W,null,D(t.chargeTemplates,(r,d)=>(o(),c(U,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.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":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(d,u)},{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),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:2},1032,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(o(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.load_default,"onUpdate:modelValue":u=>n.updateState(d,u,"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]=g("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-${d}-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":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"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":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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-${d}-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":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"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?(o(),c(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"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":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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),g("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":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(d,u,"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?(o(),c(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"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":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(d,u,"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-${d}-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(u=>t.addChargeTemplateSchedulePlan(r.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),g("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),g("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),r.chargemode.scheduled_charging.plans.length==0?(o(),c(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),(o(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,A)=>(o(),c(ne,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,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-${d}-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":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen bei Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"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),g("br",null,null,-1),i(" Wird die eingestellte Preisgrenze unterschritten, wird immer mit der maximalen Anzahl Phasen geladen. ",-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":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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?(o(),c(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":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(d,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(o(),p("div",bn,[e[92]||(e[92]=g("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":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(d,u,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[g("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),g("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-${d}-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(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(o(),c(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),(o(!0),p(W,null,D(r.time_charging.plans??[],(u,A)=>(o(),c(te,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,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]=r=>n.$emit("save")),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; diff --git a/web/settings/assets/VehicleConfig-efa0f512.js b/web/settings/assets/VehicleConfig-efa0f512.js deleted file mode 100644 index 757a8eb334..0000000000 --- a/web/settings/assets/VehicleConfig-efa0f512.js +++ /dev/null @@ -1 +0,0 @@ -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 de,a0 as oe,ao as se,R as me,M as ge}from"./vendor-fortawesome-a02b6813.js";import{_ as k,C as Y}from"./index-1cca615d.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as b,l as o,m as p,x as c,E as a,B as i,F as w,G as l,A as g,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,U,y,t){const E=b("openwb-base-alert"),h=b("openwb-base-textarea");return o(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(o(),c(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),p("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(()=>[g("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-4b9183d1.js"),["assets/vehicle-4b9183d1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-64419ad6.js"),["assets/vehicle-64419ad6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-d5404980.js"),["assets/vehicle-d5404980.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-0f98217e.js"),["assets/vehicle-0f98217e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-639219f4.js"),["assets/vehicle-639219f4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-ef066406.js"),["assets/vehicle-ef066406.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-5d983a49.js"),["assets/vehicle-5d983a49.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-73e5c35f.js"),["assets/vehicle-73e5c35f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-40c4c072.js"),["assets/vehicle-40c4c072.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-d64ab485.js"),["assets/vehicle-d64ab485.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-eeed6298.js"),["assets/vehicle-eeed6298.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-192b425f.js"),["assets/vehicle-192b425f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-787f3bfc.js"),["assets/vehicle-787f3bfc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-175f718f.js"),["assets/vehicle-175f718f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-33d2d5c7.js"),["assets/vehicle-33d2d5c7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-9841da1d.js"),["assets/vehicle-9841da1d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-45e21bb0.js"),["assets/vehicle-45e21bb0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-b92b422f.js"),["assets/vehicle-b92b422f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-d7dbfeda.js"),["assets/vehicle-d7dbfeda.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/index-1cca615d.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-089fe2c7.js"),["assets/vehicle-089fe2c7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-4a478c94.js"),["assets/vehicle-4a478c94.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-1cca615d.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.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,U,y,t){const E=b("font-awesome-icon"),h=b("openwb-base-alert"),z=b("openwb-base-heading");return o(),p(W,null,[f.vehicle.official?(o(),c(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})):(o(),c(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}),(o(),c(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},Ue={key:2},Le={key:3},Pe={key:4},We={key:5},Fe={key:1},Be={key:4},Me={key:7};function Te(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-alert"),v=b("openwb-base-card");return o(),p(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?(o(),p("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"?(o(),p("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"?(o(),p("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"?(o(),p("span",Ue,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Le,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Pe,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(o(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(o(),p("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"?(o(),c(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"?(o(),c(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"?(o(),c(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]=g("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"?(o(),c(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"?(o(),p("div",Be,[(o(!0),p(W,null,D(n.weekdays,(s,_)=>(o(),c(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]=g("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)?(o(),c(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?(o(),c(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"?(o(),p("div",Me,[e[30]||(e[30]=g("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),g("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?(o(),c(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?(o(),c(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,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-card");return o(),p(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?(o(),p("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"?(o(),p("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("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"?(o(),p("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"?(o(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(o(),p("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?(o(),c(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]=g("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"?(o(),c(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"?(o(),c(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"?(o(),p("div",He,[(o(!0),p(W,null,D(n.weekdays,(v,s)=>(o(),c(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]=g("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(de,X,j,G,J,H,R,I,oe,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]),U=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:U})}),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]),U=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:U})}),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(U=>{const y=`card-${n}-${U}`,t=this.$refs[y],E=Array.isArray(t)?t[0]:t;E&&(E.isCollapsed=U!==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},dn={key:0},on={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-alert"),C=b("openwb-base-text-input"),F=b("openwb-base-select-input"),S=b("openwb-base-heading"),M=b("router-link"),v=b("openwb-base-array-input"),s=b("openwb-base-button-group-input"),_=b("openwb-base-number-input"),N=b("openwb-vehicle-proxy"),L=b("openwb-base-card"),K=b("font-awesome-layers"),P=b("openwb-base-range-input"),ne=b("charge-template-scheduled-charging-plan"),te=b("charge-template-time-charging-plan"),le=b("openwb-base-submit-buttons");return o(),p(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]=r=>t.removeVehicle(r,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]=r=>t.removeEvTemplate(r,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]=r=>t.removeChargeTemplate(r,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"]),g("div",Qe,[g("form",Xe,[l(L,{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?(o(),c(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?(o(),p("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]})])):(o(),p("div",Ke,[(o(!0),p(W,null,D(t.vehicleIndexes,r=>(o(),c(L,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/name",d)},Z({_:2},[r===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"]),r!==0?(o(),c(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].manufacturer,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"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),r!==0?(o(),c(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].model,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("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/"+r+"/ev_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/ev_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/charge_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(o(),p("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/"+r+"/tag_id"].length>0?(o(),p("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?(o(),p("div",nn," Aktuell ist die Option in den Einstellungen deaktiviert. ")):(o(),p("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/"+r+"/tag_id"]},null,8,["model-value"])])):(o(),p("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]=g("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]=g("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/"+r+"/soc_module/config"].type,"onUpdate:modelValue":d=>t.updateSelectedSocModule(r,d)},{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),g("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),g("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),g("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/"+r+"/soc_module/config"].type?(o(),p("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/"+r+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"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,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*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:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*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/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"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":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":d=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",d)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(d=>[d.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{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]=g("hr",{class:"border-secondary"},null,-1)),l(S,null,{default:a(()=>e[33]||(e[33]=[i("Profile",-1)])),_:1,__:[33]}),l(L,{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?(o(),c(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?(o(),p("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]})])):(o(),p("div",rn,[l(V,{subtype:"info"},{default:a(()=>e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),g("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]}),(o(!0),p(W,null,D(t.evTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.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":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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):(o(),p("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(d,u,"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),g("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),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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":r.bidi,"onUpdate:modelValue":u=>n.updateState(d,u,"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?(o(),p("div",on,[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(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"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?(o(),p("span",sn," (AC) ")):m("",!0)]),_:1,__:[43]}),l(P,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(d,u,"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?(o(),p("span",mn," (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":r.max_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(o(),c(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.phase_switch_pause,"onUpdate:modelValue":u=>n.updateState(d,u,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"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(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,d)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(L,{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?(o(),c(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?(o(),p("div",pn,[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]})])):(o(),p("div",hn,[(o(!0),p(W,null,D(t.chargeTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.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":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(d,u)},{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),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:2},1032,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(o(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.load_default,"onUpdate:modelValue":u=>n.updateState(d,u,"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]=g("hr",null,null,-1)),l(S,null,{default:a(()=>[...e[58]||(e[58]=[i("Einstellungen der Lademodi",-1)])]),_:1,__:[58]})])),l(L,{ref_for:!0,ref:`card-${d}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[60]||(e[60]=[i(" Sofort ",-1)])]),default:a(()=>[l(P,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"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":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"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(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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(L,{ref_for:!0,ref:`card-${d}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[65]||(e[65]=[i(" PV ",-1)])]),default:a(()=>[l(P,{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":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"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?(o(),c(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"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":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"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(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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(P,{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":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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),g("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(P,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(d,u,"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?(o(),c(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"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":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(d,u,"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(L,{ref_for:!0,ref:`card-${d}-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(u=>t.addChargeTemplateSchedulePlan(r.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),g("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),g("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),r.chargemode.scheduled_charging.plans.length==0?(o(),c(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),(o(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,A)=>(o(),c(ne,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,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(L,{ref_for:!0,ref:`card-${d}-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(P,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"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":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"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(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"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":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*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?(o(),c(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":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(d,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(o(),p("div",bn,[e[92]||(e[92]=g("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":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(d,u,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[g("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),g("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(L,{ref_for:!0,ref:`card-${d}-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(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(o(),c(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),(o(!0),p(W,null,D(r.time_charging.plans??[],(u,A)=>(o(),c(te,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,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]=r=>n.$emit("save")),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; diff --git a/web/settings/assets/backup_cloud-61b06768.js b/web/settings/assets/backup_cloud-06a1adf9.js similarity index 84% rename from web/settings/assets/backup_cloud-61b06768.js rename to web/settings/assets/backup_cloud-06a1adf9.js index 2af95e1c5e..d8f106c015 100644 --- a/web/settings/assets/backup_cloud-61b06768.js +++ b/web/settings/assets/backup_cloud-06a1adf9.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-148ac42e.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-1cca615d.js";import"./vendor-bootstrap-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-49c08fca.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-1763d060.js";import"./vendor-bootstrap-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/backup_cloud-97f86ae2.js b/web/settings/assets/backup_cloud-1b513a09.js similarity index 92% rename from web/settings/assets/backup_cloud-97f86ae2.js rename to web/settings/assets/backup_cloud-1b513a09.js index 0a9d53ef2f..efd5c5df9d 100644 --- a/web/settings/assets/backup_cloud-97f86ae2.js +++ b/web/settings/assets/backup_cloud-1b513a09.js @@ -1 +1 @@ -import{B as a}from"./DataManagement-148ac42e.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-1cca615d.js";import"./vendor-bootstrap-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-49c08fca.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-1763d060.js";import"./vendor-bootstrap-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-84f48d09.js b/web/settings/assets/backup_cloud-8b70c07d.js similarity index 93% rename from web/settings/assets/backup_cloud-84f48d09.js rename to web/settings/assets/backup_cloud-8b70c07d.js index dc7f1c49c5..5675f28c49 100644 --- a/web/settings/assets/backup_cloud-84f48d09.js +++ b/web/settings/assets/backup_cloud-8b70c07d.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-148ac42e.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-1cca615d.js";import"./vendor-bootstrap-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-49c08fca.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-1763d060.js";import"./vendor-bootstrap-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-9efdae31.js b/web/settings/assets/backup_cloud-fbc8740b.js similarity index 96% rename from web/settings/assets/backup_cloud-9efdae31.js rename to web/settings/assets/backup_cloud-fbc8740b.js index 4d49ed2abb..69dd4ebc31 100644 --- a/web/settings/assets/backup_cloud-9efdae31.js +++ b/web/settings/assets/backup_cloud-fbc8740b.js @@ -1 +1 @@ -import{B as c}from"./DataManagement-148ac42e.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-1cca615d.js";import"./vendor-bootstrap-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-49c08fca.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-1763d060.js";import"./vendor-bootstrap-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/bat-fa3de5c3.js b/web/settings/assets/bat-0079b7c4.js similarity index 84% rename from web/settings/assets/bat-fa3de5c3.js rename to web/settings/assets/bat-0079b7c4.js index d727bd9e6a..f14a15cae4 100644 --- a/web/settings/assets/bat-fa3de5c3.js +++ b/web/settings/assets/bat-0079b7c4.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-63c29973.js b/web/settings/assets/bat-01f5909c.js similarity index 88% rename from web/settings/assets/bat-63c29973.js rename to web/settings/assets/bat-01f5909c.js index abf92b8f5a..2ad1725c8d 100644 --- a/web/settings/assets/bat-63c29973.js +++ b/web/settings/assets/bat-01f5909c.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a96ba0c1.js b/web/settings/assets/bat-0fe2ce12.js similarity index 88% rename from web/settings/assets/bat-a96ba0c1.js rename to web/settings/assets/bat-0fe2ce12.js index 969acbd433..2d3a04bd14 100644 --- a/web/settings/assets/bat-a96ba0c1.js +++ b/web/settings/assets/bat-0fe2ce12.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-55f2db19.js b/web/settings/assets/bat-1743b14c.js similarity index 91% rename from web/settings/assets/bat-55f2db19.js rename to web/settings/assets/bat-1743b14c.js index cb498497b9..0a9a48427f 100644 --- a/web/settings/assets/bat-55f2db19.js +++ b/web/settings/assets/bat-1743b14c.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-9201860e.js b/web/settings/assets/bat-24752ba6.js similarity index 83% rename from web/settings/assets/bat-9201860e.js rename to web/settings/assets/bat-24752ba6.js index cd8c9d5b76..e19fcb78c3 100644 --- a/web/settings/assets/bat-9201860e.js +++ b/web/settings/assets/bat-24752ba6.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a430f22c.js b/web/settings/assets/bat-4bb974ac.js similarity index 88% rename from web/settings/assets/bat-a430f22c.js rename to web/settings/assets/bat-4bb974ac.js index 778c7c2625..bb6cce3fc9 100644 --- a/web/settings/assets/bat-a430f22c.js +++ b/web/settings/assets/bat-4bb974ac.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-51a7cb14.js b/web/settings/assets/bat-5a9e05bd.js similarity index 97% rename from web/settings/assets/bat-51a7cb14.js rename to web/settings/assets/bat-5a9e05bd.js index a0ebd97cae..1894ed0252 100644 --- a/web/settings/assets/bat-51a7cb14.js +++ b/web/settings/assets/bat-5a9e05bd.js @@ -1 +1 @@ -import{C as b}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-4ef4dab1.js b/web/settings/assets/bat-5bea14b5.js similarity index 87% rename from web/settings/assets/bat-4ef4dab1.js rename to web/settings/assets/bat-5bea14b5.js index 4680db1533..085c71a1ba 100644 --- a/web/settings/assets/bat-4ef4dab1.js +++ b/web/settings/assets/bat-5bea14b5.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-3065d325.js b/web/settings/assets/bat-5f428f2c.js similarity index 95% rename from web/settings/assets/bat-3065d325.js rename to web/settings/assets/bat-5f428f2c.js index 06be7c301a..2e1c072918 100644 --- a/web/settings/assets/bat-3065d325.js +++ b/web/settings/assets/bat-5f428f2c.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-dacb14f0.js b/web/settings/assets/bat-603e297b.js similarity index 87% rename from web/settings/assets/bat-dacb14f0.js rename to web/settings/assets/bat-603e297b.js index 291590b49f..1ac6fe1fc1 100644 --- a/web/settings/assets/bat-dacb14f0.js +++ b/web/settings/assets/bat-603e297b.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-3f2f83be.js b/web/settings/assets/bat-6280a033.js similarity index 88% rename from web/settings/assets/bat-3f2f83be.js rename to web/settings/assets/bat-6280a033.js index 90a992620a..2d8f9691fe 100644 --- a/web/settings/assets/bat-3f2f83be.js +++ b/web/settings/assets/bat-6280a033.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-4cc0b78b.js b/web/settings/assets/bat-6970d920.js similarity index 89% rename from web/settings/assets/bat-4cc0b78b.js rename to web/settings/assets/bat-6970d920.js index 8df96559cd..4eedfec0cf 100644 --- a/web/settings/assets/bat-4cc0b78b.js +++ b/web/settings/assets/bat-6970d920.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-9ed440f1.js b/web/settings/assets/bat-7085cfa5.js similarity index 88% rename from web/settings/assets/bat-9ed440f1.js rename to web/settings/assets/bat-7085cfa5.js index 5b26338e20..60fff6e0ec 100644 --- a/web/settings/assets/bat-9ed440f1.js +++ b/web/settings/assets/bat-7085cfa5.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-3a58db64.js b/web/settings/assets/bat-7c50b216.js similarity index 91% rename from web/settings/assets/bat-3a58db64.js rename to web/settings/assets/bat-7c50b216.js index ea6ef7b665..b5f2dd0f10 100644 --- a/web/settings/assets/bat-3a58db64.js +++ b/web/settings/assets/bat-7c50b216.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-471c0e25.js b/web/settings/assets/bat-85c27770.js similarity index 87% rename from web/settings/assets/bat-471c0e25.js rename to web/settings/assets/bat-85c27770.js index c6da7b5b87..b036564000 100644 --- a/web/settings/assets/bat-471c0e25.js +++ b/web/settings/assets/bat-85c27770.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-5736d426.js b/web/settings/assets/bat-86de24dd.js similarity index 87% rename from web/settings/assets/bat-5736d426.js rename to web/settings/assets/bat-86de24dd.js index 14e5086c54..23e13979af 100644 --- a/web/settings/assets/bat-5736d426.js +++ b/web/settings/assets/bat-86de24dd.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-518cb9f0.js b/web/settings/assets/bat-963195ec.js similarity index 87% rename from web/settings/assets/bat-518cb9f0.js rename to web/settings/assets/bat-963195ec.js index 37cdf32aa2..703b9e8748 100644 --- a/web/settings/assets/bat-518cb9f0.js +++ b/web/settings/assets/bat-963195ec.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-fe0aa657.js b/web/settings/assets/bat-a147c976.js similarity index 87% rename from web/settings/assets/bat-fe0aa657.js rename to web/settings/assets/bat-a147c976.js index 7e05e4345d..f2a910bcbc 100644 --- a/web/settings/assets/bat-fe0aa657.js +++ b/web/settings/assets/bat-a147c976.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a81a696b.js b/web/settings/assets/bat-b7119d36.js similarity index 89% rename from web/settings/assets/bat-a81a696b.js rename to web/settings/assets/bat-b7119d36.js index 5ce45d4f7a..bdab8bb4f4 100644 --- a/web/settings/assets/bat-a81a696b.js +++ b/web/settings/assets/bat-b7119d36.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-b117bef9.js b/web/settings/assets/bat-bf76ab5b.js similarity index 97% rename from web/settings/assets/bat-b117bef9.js rename to web/settings/assets/bat-bf76ab5b.js index 8ce8c18826..e4ba266acc 100644 --- a/web/settings/assets/bat-b117bef9.js +++ b/web/settings/assets/bat-bf76ab5b.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-81ea4914.js b/web/settings/assets/bat-cdf1c2b8.js similarity index 89% rename from web/settings/assets/bat-81ea4914.js rename to web/settings/assets/bat-cdf1c2b8.js index b0acc0ac39..6c6381d4ee 100644 --- a/web/settings/assets/bat-81ea4914.js +++ b/web/settings/assets/bat-cdf1c2b8.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-61d34295.js b/web/settings/assets/bat-eb43a2dd.js similarity index 86% rename from web/settings/assets/bat-61d34295.js rename to web/settings/assets/bat-eb43a2dd.js index a12eb925e3..f01d05118d 100644 --- a/web/settings/assets/bat-61d34295.js +++ b/web/settings/assets/bat-eb43a2dd.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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_smart_energy-98a66675.js b/web/settings/assets/bat_smart_energy-7bd1be99.js similarity index 88% rename from web/settings/assets/bat_smart_energy-98a66675.js rename to web/settings/assets/bat_smart_energy-7bd1be99.js index 5326fdc8c5..e911dea618 100644 --- a/web/settings/assets/bat_smart_energy-98a66675.js +++ b/web/settings/assets/bat_smart_energy-7bd1be99.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a3dbf064.js b/web/settings/assets/chargePoint-013b9c93.js similarity index 92% rename from web/settings/assets/chargePoint-a3dbf064.js rename to web/settings/assets/chargePoint-013b9c93.js index e3db2734c3..dfd6b3f6ef 100644 --- a/web/settings/assets/chargePoint-a3dbf064.js +++ b/web/settings/assets/chargePoint-013b9c93.js @@ -1 +1 @@ -import{C as u}from"./ChargePointInstallation-abc8fd1a.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-1cca615d.js";import"./vendor-bootstrap-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-81df253b.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-1763d060.js";import"./vendor-bootstrap-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-75b4dc86.js b/web/settings/assets/chargePoint-06c4ea45.js similarity index 90% rename from web/settings/assets/chargePoint-75b4dc86.js rename to web/settings/assets/chargePoint-06c4ea45.js index 8ecf7e8b94..d5ed53ce11 100644 --- a/web/settings/assets/chargePoint-75b4dc86.js +++ b/web/settings/assets/chargePoint-06c4ea45.js @@ -1 +1 @@ -import{C as s}from"./ChargePointInstallation-abc8fd1a.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-1cca615d.js";import"./vendor-bootstrap-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-81df253b.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-1763d060.js";import"./vendor-bootstrap-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-6d6ffaac.js b/web/settings/assets/chargePoint-1f275da7.js similarity index 86% rename from web/settings/assets/chargePoint-6d6ffaac.js rename to web/settings/assets/chargePoint-1f275da7.js index 1ce2117a31..c47f04588c 100644 --- a/web/settings/assets/chargePoint-6d6ffaac.js +++ b/web/settings/assets/chargePoint-1f275da7.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-abc8fd1a.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-1cca615d.js";import"./vendor-bootstrap-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-81df253b.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-1763d060.js";import"./vendor-bootstrap-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-55ea4a64.js b/web/settings/assets/chargePoint-6002b2a8.js similarity index 86% rename from web/settings/assets/chargePoint-55ea4a64.js rename to web/settings/assets/chargePoint-6002b2a8.js index 26b743876c..bc5e55df55 100644 --- a/web/settings/assets/chargePoint-55ea4a64.js +++ b/web/settings/assets/chargePoint-6002b2a8.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-abc8fd1a.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-1cca615d.js";import"./vendor-bootstrap-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-81df253b.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-1763d060.js";import"./vendor-bootstrap-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-4e7aabf2.js b/web/settings/assets/chargePoint-cb81d9a1.js similarity index 90% rename from web/settings/assets/chargePoint-4e7aabf2.js rename to web/settings/assets/chargePoint-cb81d9a1.js index aa71baa4aa..c43ed178e4 100644 --- a/web/settings/assets/chargePoint-4e7aabf2.js +++ b/web/settings/assets/chargePoint-cb81d9a1.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-abc8fd1a.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-1cca615d.js";import"./vendor-bootstrap-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-81df253b.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-1763d060.js";import"./vendor-bootstrap-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-1380d772.js b/web/settings/assets/chargePoint-cdbe6c33.js similarity index 98% rename from web/settings/assets/chargePoint-1380d772.js rename to web/settings/assets/chargePoint-cdbe6c33.js index 41199eb4d7..7ffbf3e776 100644 --- a/web/settings/assets/chargePoint-1380d772.js +++ b/web/settings/assets/chargePoint-cdbe6c33.js @@ -1 +1 @@ -import{C as d}from"./ChargePointInstallation-abc8fd1a.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-1cca615d.js";import"./vendor-bootstrap-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/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/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-81df253b.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-1763d060.js";import"./vendor-bootstrap-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/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/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-b36330dc.js b/web/settings/assets/chargePoint-e75ab42a.js similarity index 90% rename from web/settings/assets/chargePoint-b36330dc.js rename to web/settings/assets/chargePoint-e75ab42a.js index 3b85250d93..e18acdab8c 100644 --- a/web/settings/assets/chargePoint-b36330dc.js +++ b/web/settings/assets/chargePoint-e75ab42a.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-abc8fd1a.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-1cca615d.js";import"./vendor-bootstrap-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-81df253b.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-1763d060.js";import"./vendor-bootstrap-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/commands-e7fd4d3e.js b/web/settings/assets/commands-99f720c8.js similarity index 95% rename from web/settings/assets/commands-e7fd4d3e.js rename to web/settings/assets/commands-99f720c8.js index 4c36a135f6..f2bd555ea9 100644 --- a/web/settings/assets/commands-e7fd4d3e.js +++ b/web/settings/assets/commands-99f720c8.js @@ -1 +1 @@ -import{a as g}from"./ChargePointInstallation-abc8fd1a.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-1cca615d.js";import"./vendor-bootstrap-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-81df253b.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-1763d060.js";import"./vendor-bootstrap-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-b7a7f39e.js b/web/settings/assets/commands-ca6dcfe0.js similarity index 94% rename from web/settings/assets/commands-b7a7f39e.js rename to web/settings/assets/commands-ca6dcfe0.js index d71ad7eac2..a082b7e6ab 100644 --- a/web/settings/assets/commands-b7a7f39e.js +++ b/web/settings/assets/commands-ca6dcfe0.js @@ -1 +1 @@ -import{a as d}from"./ChargePointInstallation-abc8fd1a.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-1cca615d.js";import"./vendor-bootstrap-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-81df253b.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-1763d060.js";import"./vendor-bootstrap-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-537a995c.js b/web/settings/assets/consumption_counter-4b0981c8.js similarity index 93% rename from web/settings/assets/consumption_counter-537a995c.js rename to web/settings/assets/consumption_counter-4b0981c8.js index 51408bbb82..48d19aeed0 100644 --- a/web/settings/assets/consumption_counter-537a995c.js +++ b/web/settings/assets/consumption_counter-4b0981c8.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-46c29613.js b/web/settings/assets/counter-0ec7a0df.js similarity index 87% rename from web/settings/assets/counter-46c29613.js rename to web/settings/assets/counter-0ec7a0df.js index 0ce619824f..b91813bd76 100644 --- a/web/settings/assets/counter-46c29613.js +++ b/web/settings/assets/counter-0ec7a0df.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-49ce1d44.js b/web/settings/assets/counter-16521b19.js similarity index 92% rename from web/settings/assets/counter-49ce1d44.js rename to web/settings/assets/counter-16521b19.js index 7dd3bbd181..0481ffdb89 100644 --- a/web/settings/assets/counter-49ce1d44.js +++ b/web/settings/assets/counter-16521b19.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-8bfd68a1.js b/web/settings/assets/counter-19fe2ebe.js similarity index 88% rename from web/settings/assets/counter-8bfd68a1.js rename to web/settings/assets/counter-19fe2ebe.js index d22b6c6dc9..4b7293b5ac 100644 --- a/web/settings/assets/counter-8bfd68a1.js +++ b/web/settings/assets/counter-19fe2ebe.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-b3825ae6.js b/web/settings/assets/counter-210d0471.js similarity index 87% rename from web/settings/assets/counter-b3825ae6.js rename to web/settings/assets/counter-210d0471.js index 4e1d55fae9..61c0b6ad9d 100644 --- a/web/settings/assets/counter-b3825ae6.js +++ b/web/settings/assets/counter-210d0471.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-81b91b58.js b/web/settings/assets/counter-2ded04bf.js similarity index 90% rename from web/settings/assets/counter-81b91b58.js rename to web/settings/assets/counter-2ded04bf.js index 8fbd11bcff..2b9cbbbfa3 100644 --- a/web/settings/assets/counter-81b91b58.js +++ b/web/settings/assets/counter-2ded04bf.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-5b027233.js b/web/settings/assets/counter-305725ef.js similarity index 87% rename from web/settings/assets/counter-5b027233.js rename to web/settings/assets/counter-305725ef.js index c908f7b023..7918883584 100644 --- a/web/settings/assets/counter-5b027233.js +++ b/web/settings/assets/counter-305725ef.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-58f04b45.js b/web/settings/assets/counter-40864be2.js similarity index 86% rename from web/settings/assets/counter-58f04b45.js rename to web/settings/assets/counter-40864be2.js index 5d88e43608..3433046be7 100644 --- a/web/settings/assets/counter-58f04b45.js +++ b/web/settings/assets/counter-40864be2.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-6fc0090e.js b/web/settings/assets/counter-43d19e90.js similarity index 86% rename from web/settings/assets/counter-6fc0090e.js rename to web/settings/assets/counter-43d19e90.js index e96f70ea76..0d5e432888 100644 --- a/web/settings/assets/counter-6fc0090e.js +++ b/web/settings/assets/counter-43d19e90.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-415af765.js b/web/settings/assets/counter-5764cfa6.js similarity index 87% rename from web/settings/assets/counter-415af765.js rename to web/settings/assets/counter-5764cfa6.js index d9c418a7ab..39da66aa34 100644 --- a/web/settings/assets/counter-415af765.js +++ b/web/settings/assets/counter-5764cfa6.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-6a27006a.js b/web/settings/assets/counter-5a9cf87f.js similarity index 84% rename from web/settings/assets/counter-6a27006a.js rename to web/settings/assets/counter-5a9cf87f.js index fff87516fa..8f7f0d31ef 100644 --- a/web/settings/assets/counter-6a27006a.js +++ b/web/settings/assets/counter-5a9cf87f.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-ddf6a39a.js b/web/settings/assets/counter-635ec6a1.js similarity index 97% rename from web/settings/assets/counter-ddf6a39a.js rename to web/settings/assets/counter-635ec6a1.js index 36d58d4b5c..c5a74680de 100644 --- a/web/settings/assets/counter-ddf6a39a.js +++ b/web/settings/assets/counter-635ec6a1.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-7a6e0ddb.js b/web/settings/assets/counter-6569a0ee.js similarity index 82% rename from web/settings/assets/counter-7a6e0ddb.js rename to web/settings/assets/counter-6569a0ee.js index e7586dda7f..0889383161 100644 --- a/web/settings/assets/counter-7a6e0ddb.js +++ b/web/settings/assets/counter-6569a0ee.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-f0fe66a4.js b/web/settings/assets/counter-731bba6c.js similarity index 88% rename from web/settings/assets/counter-f0fe66a4.js rename to web/settings/assets/counter-731bba6c.js index 8604e0e11d..db4c42415b 100644 --- a/web/settings/assets/counter-f0fe66a4.js +++ b/web/settings/assets/counter-731bba6c.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-07b3d245.js b/web/settings/assets/counter-76defcac.js similarity index 84% rename from web/settings/assets/counter-07b3d245.js rename to web/settings/assets/counter-76defcac.js index 65adf1208a..7f981bb268 100644 --- a/web/settings/assets/counter-07b3d245.js +++ b/web/settings/assets/counter-76defcac.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-7baae710.js b/web/settings/assets/counter-7abb53f8.js similarity index 92% rename from web/settings/assets/counter-7baae710.js rename to web/settings/assets/counter-7abb53f8.js index 09e66ccf6a..1c6532ae7b 100644 --- a/web/settings/assets/counter-7baae710.js +++ b/web/settings/assets/counter-7abb53f8.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-20aa575c.js b/web/settings/assets/counter-7b069dd4.js similarity index 88% rename from web/settings/assets/counter-20aa575c.js rename to web/settings/assets/counter-7b069dd4.js index f248f83d89..ad9fc61533 100644 --- a/web/settings/assets/counter-20aa575c.js +++ b/web/settings/assets/counter-7b069dd4.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-d61a43b7.js b/web/settings/assets/counter-7d67f5a4.js similarity index 89% rename from web/settings/assets/counter-d61a43b7.js rename to web/settings/assets/counter-7d67f5a4.js index 7e35d3ef66..b2ba886c3f 100644 --- a/web/settings/assets/counter-d61a43b7.js +++ b/web/settings/assets/counter-7d67f5a4.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-ee4893b7.js b/web/settings/assets/counter-7e6b0880.js similarity index 86% rename from web/settings/assets/counter-ee4893b7.js rename to web/settings/assets/counter-7e6b0880.js index 855e08a5cd..c542c3e1f1 100644 --- a/web/settings/assets/counter-ee4893b7.js +++ b/web/settings/assets/counter-7e6b0880.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-d2373930.js b/web/settings/assets/counter-7f86e28b.js similarity index 88% rename from web/settings/assets/counter-d2373930.js rename to web/settings/assets/counter-7f86e28b.js index 6b9f7a8cad..44d4e4ec62 100644 --- a/web/settings/assets/counter-d2373930.js +++ b/web/settings/assets/counter-7f86e28b.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-189cca4e.js b/web/settings/assets/counter-8ad87846.js similarity index 91% rename from web/settings/assets/counter-189cca4e.js rename to web/settings/assets/counter-8ad87846.js index 1ebdc038b1..20c9027d44 100644 --- a/web/settings/assets/counter-189cca4e.js +++ b/web/settings/assets/counter-8ad87846.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-34a636e7.js b/web/settings/assets/counter-98320830.js similarity index 88% rename from web/settings/assets/counter-34a636e7.js rename to web/settings/assets/counter-98320830.js index 4e451e1b63..1b72a418f9 100644 --- a/web/settings/assets/counter-34a636e7.js +++ b/web/settings/assets/counter-98320830.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-1b10d5ad.js b/web/settings/assets/counter-9af42dfd.js similarity index 97% rename from web/settings/assets/counter-1b10d5ad.js rename to web/settings/assets/counter-9af42dfd.js index 010feed414..80b1613323 100644 --- a/web/settings/assets/counter-1b10d5ad.js +++ b/web/settings/assets/counter-9af42dfd.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-b0660df4.js b/web/settings/assets/counter-b048df1e.js similarity index 88% rename from web/settings/assets/counter-b0660df4.js rename to web/settings/assets/counter-b048df1e.js index 2156e81caf..569cd35e91 100644 --- a/web/settings/assets/counter-b0660df4.js +++ b/web/settings/assets/counter-b048df1e.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-6e069a0e.js b/web/settings/assets/counter-b55343be.js similarity index 90% rename from web/settings/assets/counter-6e069a0e.js rename to web/settings/assets/counter-b55343be.js index 4af45b2079..d837d8deda 100644 --- a/web/settings/assets/counter-6e069a0e.js +++ b/web/settings/assets/counter-b55343be.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-866fb333.js b/web/settings/assets/counter-b8465e85.js similarity index 84% rename from web/settings/assets/counter-866fb333.js rename to web/settings/assets/counter-b8465e85.js index ac6235ee13..e1859f60f2 100644 --- a/web/settings/assets/counter-866fb333.js +++ b/web/settings/assets/counter-b8465e85.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-4aa73968.js b/web/settings/assets/counter-bd72fc69.js similarity index 87% rename from web/settings/assets/counter-4aa73968.js rename to web/settings/assets/counter-bd72fc69.js index 051808fbaa..479363467d 100644 --- a/web/settings/assets/counter-4aa73968.js +++ b/web/settings/assets/counter-bd72fc69.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-8944b7f7.js b/web/settings/assets/counter-c5f6630c.js similarity index 90% rename from web/settings/assets/counter-8944b7f7.js rename to web/settings/assets/counter-c5f6630c.js index a6d4bc69bf..c0c3f4f4db 100644 --- a/web/settings/assets/counter-8944b7f7.js +++ b/web/settings/assets/counter-c5f6630c.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-34c648be.js b/web/settings/assets/counter-d37b7967.js similarity index 97% rename from web/settings/assets/counter-34c648be.js rename to web/settings/assets/counter-d37b7967.js index 5156107646..064fdefb3b 100644 --- a/web/settings/assets/counter-34c648be.js +++ b/web/settings/assets/counter-d37b7967.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-c18e2423.js b/web/settings/assets/counter-d5fff003.js similarity index 89% rename from web/settings/assets/counter-c18e2423.js rename to web/settings/assets/counter-d5fff003.js index ea86f2eaf1..fbce7164e3 100644 --- a/web/settings/assets/counter-c18e2423.js +++ b/web/settings/assets/counter-d5fff003.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-690aec70.js b/web/settings/assets/counter-dbab9da7.js similarity index 90% rename from web/settings/assets/counter-690aec70.js rename to web/settings/assets/counter-dbab9da7.js index a1fd69cf6e..129c05240f 100644 --- a/web/settings/assets/counter-690aec70.js +++ b/web/settings/assets/counter-dbab9da7.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-fe777704.js b/web/settings/assets/counter-dc2fbcd4.js similarity index 87% rename from web/settings/assets/counter-fe777704.js rename to web/settings/assets/counter-dc2fbcd4.js index c820990f86..d0dffd23fa 100644 --- a/web/settings/assets/counter-fe777704.js +++ b/web/settings/assets/counter-dc2fbcd4.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-1de87a86.js b/web/settings/assets/counter-de1ec1b6.js similarity index 88% rename from web/settings/assets/counter-1de87a86.js rename to web/settings/assets/counter-de1ec1b6.js index 7dc544e949..3e464af984 100644 --- a/web/settings/assets/counter-1de87a86.js +++ b/web/settings/assets/counter-de1ec1b6.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-e2a233f6.js b/web/settings/assets/counter-e1f3b953.js similarity index 92% rename from web/settings/assets/counter-e2a233f6.js rename to web/settings/assets/counter-e1f3b953.js index b39b888376..5827f998f8 100644 --- a/web/settings/assets/counter-e2a233f6.js +++ b/web/settings/assets/counter-e1f3b953.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-51dba821.js b/web/settings/assets/counter-e85518bd.js similarity index 85% rename from web/settings/assets/counter-51dba821.js rename to web/settings/assets/counter-e85518bd.js index 7fc3fc3cb9..d805fda131 100644 --- a/web/settings/assets/counter-51dba821.js +++ b/web/settings/assets/counter-e85518bd.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-da62e9d2.js b/web/settings/assets/counter-f6f4b717.js similarity index 87% rename from web/settings/assets/counter-da62e9d2.js rename to web/settings/assets/counter-f6f4b717.js index bc1ea75d4e..f74f5046fe 100644 --- a/web/settings/assets/counter-da62e9d2.js +++ b/web/settings/assets/counter-f6f4b717.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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_consumption-c2a98f0a.js b/web/settings/assets/counter_consumption-e52440f6.js similarity index 90% rename from web/settings/assets/counter_consumption-c2a98f0a.js rename to web/settings/assets/counter_consumption-e52440f6.js index a0963d97d9..da6ce8e635 100644 --- a/web/settings/assets/counter_consumption-c2a98f0a.js +++ b/web/settings/assets/counter_consumption-e52440f6.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-64f8d067.js b/web/settings/assets/counter_sm-f0cf2ba8.js similarity index 95% rename from web/settings/assets/counter_sm-64f8d067.js rename to web/settings/assets/counter_sm-f0cf2ba8.js index 7f07ce613c..cf9ba90449 100644 --- a/web/settings/assets/counter_sm-64f8d067.js +++ b/web/settings/assets/counter_sm-f0cf2ba8.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-ea46c01b.js b/web/settings/assets/device-01b22385.js similarity index 92% rename from web/settings/assets/device-ea46c01b.js rename to web/settings/assets/device-01b22385.js index c4c0c350ad..688ef07470 100644 --- a/web/settings/assets/device-ea46c01b.js +++ b/web/settings/assets/device-01b22385.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-c5c08de7.js b/web/settings/assets/device-0213ecc8.js similarity index 92% rename from web/settings/assets/device-c5c08de7.js rename to web/settings/assets/device-0213ecc8.js index de782ad095..05d05de628 100644 --- a/web/settings/assets/device-c5c08de7.js +++ b/web/settings/assets/device-0213ecc8.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-593985f3.js b/web/settings/assets/device-02198499.js similarity index 90% rename from web/settings/assets/device-593985f3.js rename to web/settings/assets/device-02198499.js index 92e7df520e..2a359adc85 100644 --- a/web/settings/assets/device-593985f3.js +++ b/web/settings/assets/device-02198499.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a4db94b7.js b/web/settings/assets/device-0bc384b5.js similarity index 87% rename from web/settings/assets/device-a4db94b7.js rename to web/settings/assets/device-0bc384b5.js index 77017f7ff5..65de1d4182 100644 --- a/web/settings/assets/device-a4db94b7.js +++ b/web/settings/assets/device-0bc384b5.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-f22ddd6a.js b/web/settings/assets/device-0bf5a4ff.js similarity index 94% rename from web/settings/assets/device-f22ddd6a.js rename to web/settings/assets/device-0bf5a4ff.js index dc7d2fb1cd..2f20a91517 100644 --- a/web/settings/assets/device-f22ddd6a.js +++ b/web/settings/assets/device-0bf5a4ff.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-217557f3.js b/web/settings/assets/device-0f286f24.js similarity index 88% rename from web/settings/assets/device-217557f3.js rename to web/settings/assets/device-0f286f24.js index a1f30b23e4..886f3d7247 100644 --- a/web/settings/assets/device-217557f3.js +++ b/web/settings/assets/device-0f286f24.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-968321b7.js b/web/settings/assets/device-0f7b2e78.js similarity index 91% rename from web/settings/assets/device-968321b7.js rename to web/settings/assets/device-0f7b2e78.js index a047279733..90544efda1 100644 --- a/web/settings/assets/device-968321b7.js +++ b/web/settings/assets/device-0f7b2e78.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-8c3ab9e0.js b/web/settings/assets/device-1650b898.js similarity index 91% rename from web/settings/assets/device-8c3ab9e0.js rename to web/settings/assets/device-1650b898.js index b46e0ec99b..e874bb5124 100644 --- a/web/settings/assets/device-8c3ab9e0.js +++ b/web/settings/assets/device-1650b898.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-b1e74030.js b/web/settings/assets/device-18097e2d.js similarity index 92% rename from web/settings/assets/device-b1e74030.js rename to web/settings/assets/device-18097e2d.js index e374662725..36ba577240 100644 --- a/web/settings/assets/device-b1e74030.js +++ b/web/settings/assets/device-18097e2d.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-51f1003a.js b/web/settings/assets/device-1ba6fbd1.js similarity index 81% rename from web/settings/assets/device-51f1003a.js rename to web/settings/assets/device-1ba6fbd1.js index 42612fefa8..950bab1bfc 100644 --- a/web/settings/assets/device-51f1003a.js +++ b/web/settings/assets/device-1ba6fbd1.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-9a6724b0.js b/web/settings/assets/device-1d428e9d.js similarity index 88% rename from web/settings/assets/device-9a6724b0.js rename to web/settings/assets/device-1d428e9d.js index 88fc23aa7b..8d0f3ed890 100644 --- a/web/settings/assets/device-9a6724b0.js +++ b/web/settings/assets/device-1d428e9d.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-321a3131.js b/web/settings/assets/device-2367d534.js similarity index 94% rename from web/settings/assets/device-321a3131.js rename to web/settings/assets/device-2367d534.js index 47ca2bd241..7a53f48abc 100644 --- a/web/settings/assets/device-321a3131.js +++ b/web/settings/assets/device-2367d534.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-9e2c000c.js";import{_ as b,u as i,l as g,m as v,G as t,E as r,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-1cca615d.js";import"./vendor-bootstrap-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:"DeviceSungrow",mixins:[m]},_={class:"device-sungrow"};function w(n,e,c,S,D,N){const s=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),l=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",_,[t(s,null,{default:r(()=>e[4]||(e[4]=[u(" Einstellungen für Sungrow ",-1)])),_:1,__:[4]}),t(d,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])),_:1,__:[5]}),t(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"]),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(p,{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:r(()=>e[6]||(e[6]=[u(" 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"])])}const h=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{h as default}; +import{D as m}from"./HardwareInstallation-a602f648.js";import{_ as b,u as i,l as g,m as v,G as t,E as r,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-1763d060.js";import"./vendor-bootstrap-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:"DeviceSungrow",mixins:[m]},_={class:"device-sungrow"};function w(n,e,c,S,D,N){const s=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),l=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",_,[t(s,null,{default:r(()=>e[4]||(e[4]=[u(" Einstellungen für Sungrow ",-1)])),_:1,__:[4]}),t(d,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])),_:1,__:[5]}),t(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"]),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(p,{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:r(()=>e[6]||(e[6]=[u(" 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"])])}const h=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-5ab46dd2.js b/web/settings/assets/device-26b9e44a.js similarity index 87% rename from web/settings/assets/device-5ab46dd2.js rename to web/settings/assets/device-26b9e44a.js index e5aaa221a3..f4439162a5 100644 --- a/web/settings/assets/device-5ab46dd2.js +++ b/web/settings/assets/device-26b9e44a.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-6bb7f4ce.js b/web/settings/assets/device-26e5779e.js similarity index 92% rename from web/settings/assets/device-6bb7f4ce.js rename to web/settings/assets/device-26e5779e.js index 949b929b23..dd4986728d 100644 --- a/web/settings/assets/device-6bb7f4ce.js +++ b/web/settings/assets/device-26e5779e.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-9860159d.js b/web/settings/assets/device-273c2917.js similarity index 95% rename from web/settings/assets/device-9860159d.js rename to web/settings/assets/device-273c2917.js index 059059c475..faff573cb6 100644 --- a/web/settings/assets/device-9860159d.js +++ b/web/settings/assets/device-273c2917.js @@ -1 +1 @@ -import{D as w}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-97b2fd4c.js b/web/settings/assets/device-2d94ba41.js similarity index 90% rename from web/settings/assets/device-97b2fd4c.js rename to web/settings/assets/device-2d94ba41.js index ac86a20d5b..fbaf73abd8 100644 --- a/web/settings/assets/device-97b2fd4c.js +++ b/web/settings/assets/device-2d94ba41.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-fd3d383f.js b/web/settings/assets/device-2e032031.js similarity index 87% rename from web/settings/assets/device-fd3d383f.js rename to web/settings/assets/device-2e032031.js index bb486e1bc2..6c905fc78d 100644 --- a/web/settings/assets/device-fd3d383f.js +++ b/web/settings/assets/device-2e032031.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-793f6594.js b/web/settings/assets/device-3262b3d0.js similarity index 81% rename from web/settings/assets/device-793f6594.js rename to web/settings/assets/device-3262b3d0.js index ef86d6afd0..f73f94ed86 100644 --- a/web/settings/assets/device-793f6594.js +++ b/web/settings/assets/device-3262b3d0.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-9a0eb853.js b/web/settings/assets/device-370d755b.js similarity index 84% rename from web/settings/assets/device-9a0eb853.js rename to web/settings/assets/device-370d755b.js index 64b13f2a29..5dad81c99b 100644 --- a/web/settings/assets/device-9a0eb853.js +++ b/web/settings/assets/device-370d755b.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-36b0e353.js b/web/settings/assets/device-37c5ba29.js similarity index 93% rename from web/settings/assets/device-36b0e353.js rename to web/settings/assets/device-37c5ba29.js index 9f59684bc4..d3e27f3996 100644 --- a/web/settings/assets/device-36b0e353.js +++ b/web/settings/assets/device-37c5ba29.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-db9e27e0.js b/web/settings/assets/device-3bf9a466.js similarity index 91% rename from web/settings/assets/device-db9e27e0.js rename to web/settings/assets/device-3bf9a466.js index bc7307c589..00b9c47dc9 100644 --- a/web/settings/assets/device-db9e27e0.js +++ b/web/settings/assets/device-3bf9a466.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-6dc3cbcf.js b/web/settings/assets/device-42d8e6a7.js similarity index 83% rename from web/settings/assets/device-6dc3cbcf.js rename to web/settings/assets/device-42d8e6a7.js index c7efb45e26..88ae3fa4e5 100644 --- a/web/settings/assets/device-6dc3cbcf.js +++ b/web/settings/assets/device-42d8e6a7.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-2727533f.js b/web/settings/assets/device-460cf214.js similarity index 87% rename from web/settings/assets/device-2727533f.js rename to web/settings/assets/device-460cf214.js index e8fa49e532..4a76e52017 100644 --- a/web/settings/assets/device-2727533f.js +++ b/web/settings/assets/device-460cf214.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-ea044e8b.js b/web/settings/assets/device-4b087be4.js similarity index 91% rename from web/settings/assets/device-ea044e8b.js rename to web/settings/assets/device-4b087be4.js index 27f4ee54ba..0c4ba0069d 100644 --- a/web/settings/assets/device-ea044e8b.js +++ b/web/settings/assets/device-4b087be4.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-439a69d3.js b/web/settings/assets/device-5240b4cd.js similarity index 92% rename from web/settings/assets/device-439a69d3.js rename to web/settings/assets/device-5240b4cd.js index b72a66132c..8e393d0d65 100644 --- a/web/settings/assets/device-439a69d3.js +++ b/web/settings/assets/device-5240b4cd.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-0af3a888.js b/web/settings/assets/device-543c7cf1.js similarity index 84% rename from web/settings/assets/device-0af3a888.js rename to web/settings/assets/device-543c7cf1.js index a66fa8a5f1..a3eb423301 100644 --- a/web/settings/assets/device-0af3a888.js +++ b/web/settings/assets/device-543c7cf1.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-f4a747e4.js b/web/settings/assets/device-598f2bfc.js similarity index 84% rename from web/settings/assets/device-f4a747e4.js rename to web/settings/assets/device-598f2bfc.js index 811a7512da..5ff07e255b 100644 --- a/web/settings/assets/device-f4a747e4.js +++ b/web/settings/assets/device-598f2bfc.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-f3a038ab.js b/web/settings/assets/device-5cd2d133.js similarity index 84% rename from web/settings/assets/device-f3a038ab.js rename to web/settings/assets/device-5cd2d133.js index f823095901..0e11128f44 100644 --- a/web/settings/assets/device-f3a038ab.js +++ b/web/settings/assets/device-5cd2d133.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-934c7c46.js b/web/settings/assets/device-5e9634b3.js similarity index 87% rename from web/settings/assets/device-934c7c46.js rename to web/settings/assets/device-5e9634b3.js index 9130420080..dcf546bc37 100644 --- a/web/settings/assets/device-934c7c46.js +++ b/web/settings/assets/device-5e9634b3.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-f6c6ada6.js b/web/settings/assets/device-5eeef515.js similarity index 89% rename from web/settings/assets/device-f6c6ada6.js rename to web/settings/assets/device-5eeef515.js index c2363545d1..70eb36c51f 100644 --- a/web/settings/assets/device-f6c6ada6.js +++ b/web/settings/assets/device-5eeef515.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-4949af42.js b/web/settings/assets/device-60aeaee1.js similarity index 92% rename from web/settings/assets/device-4949af42.js rename to web/settings/assets/device-60aeaee1.js index 01ff35a712..3817f55c11 100644 --- a/web/settings/assets/device-4949af42.js +++ b/web/settings/assets/device-60aeaee1.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-ce0da382.js b/web/settings/assets/device-63654d04.js similarity index 87% rename from web/settings/assets/device-ce0da382.js rename to web/settings/assets/device-63654d04.js index 67a6cf1b13..c78d9c5c15 100644 --- a/web/settings/assets/device-ce0da382.js +++ b/web/settings/assets/device-63654d04.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-8dc26392.js b/web/settings/assets/device-6951647c.js similarity index 91% rename from web/settings/assets/device-8dc26392.js rename to web/settings/assets/device-6951647c.js index 2cb7f649dc..941d3a2f83 100644 --- a/web/settings/assets/device-8dc26392.js +++ b/web/settings/assets/device-6951647c.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-2b41f049.js b/web/settings/assets/device-6eebc26d.js similarity index 96% rename from web/settings/assets/device-2b41f049.js rename to web/settings/assets/device-6eebc26d.js index 8bf1d59f15..26c4ae83a8 100644 --- a/web/settings/assets/device-2b41f049.js +++ b/web/settings/assets/device-6eebc26d.js @@ -1 +1 @@ -import{D as f}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-efb7cbd7.js b/web/settings/assets/device-70a820fe.js similarity index 90% rename from web/settings/assets/device-efb7cbd7.js rename to web/settings/assets/device-70a820fe.js index 7646bedc60..67f6db5710 100644 --- a/web/settings/assets/device-efb7cbd7.js +++ b/web/settings/assets/device-70a820fe.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a5aa6912.js b/web/settings/assets/device-71124548.js similarity index 96% rename from web/settings/assets/device-a5aa6912.js rename to web/settings/assets/device-71124548.js index eaa394fcc4..2551925bb6 100644 --- a/web/settings/assets/device-a5aa6912.js +++ b/web/settings/assets/device-71124548.js @@ -1 +1 @@ -import{D as g}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-84d29faf.js b/web/settings/assets/device-72338768.js similarity index 84% rename from web/settings/assets/device-84d29faf.js rename to web/settings/assets/device-72338768.js index 421ce154b0..2678af2e63 100644 --- a/web/settings/assets/device-84d29faf.js +++ b/web/settings/assets/device-72338768.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-b0695a55.js b/web/settings/assets/device-792ba59b.js similarity index 88% rename from web/settings/assets/device-b0695a55.js rename to web/settings/assets/device-792ba59b.js index 4e40f2a1dd..8bd3455a66 100644 --- a/web/settings/assets/device-b0695a55.js +++ b/web/settings/assets/device-792ba59b.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-8208ec49.js b/web/settings/assets/device-7cbf9e1b.js similarity index 92% rename from web/settings/assets/device-8208ec49.js rename to web/settings/assets/device-7cbf9e1b.js index 4a1166d466..2dc8659c65 100644 --- a/web/settings/assets/device-8208ec49.js +++ b/web/settings/assets/device-7cbf9e1b.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a3df49fa.js b/web/settings/assets/device-7deac388.js similarity index 89% rename from web/settings/assets/device-a3df49fa.js rename to web/settings/assets/device-7deac388.js index c2eb4b6536..c8a499dc44 100644 --- a/web/settings/assets/device-a3df49fa.js +++ b/web/settings/assets/device-7deac388.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-580d433d.js b/web/settings/assets/device-7edd017e.js similarity index 90% rename from web/settings/assets/device-580d433d.js rename to web/settings/assets/device-7edd017e.js index 8b34282309..1ccd84495e 100644 --- a/web/settings/assets/device-580d433d.js +++ b/web/settings/assets/device-7edd017e.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-0c04654c.js b/web/settings/assets/device-80f3c53d.js similarity index 91% rename from web/settings/assets/device-0c04654c.js rename to web/settings/assets/device-80f3c53d.js index dfb8dfa526..11d83274ef 100644 --- a/web/settings/assets/device-0c04654c.js +++ b/web/settings/assets/device-80f3c53d.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-0417bc62.js b/web/settings/assets/device-859da7f4.js similarity index 88% rename from web/settings/assets/device-0417bc62.js rename to web/settings/assets/device-859da7f4.js index 7f9218cdb4..fa6d62f21c 100644 --- a/web/settings/assets/device-0417bc62.js +++ b/web/settings/assets/device-859da7f4.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-1af14c2d.js b/web/settings/assets/device-88b46fef.js similarity index 85% rename from web/settings/assets/device-1af14c2d.js rename to web/settings/assets/device-88b46fef.js index badffad9b9..ac87c7b4c8 100644 --- a/web/settings/assets/device-1af14c2d.js +++ b/web/settings/assets/device-88b46fef.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-ddd381cb.js b/web/settings/assets/device-91766407.js similarity index 87% rename from web/settings/assets/device-ddd381cb.js rename to web/settings/assets/device-91766407.js index 1aa04b8151..52be802bf8 100644 --- a/web/settings/assets/device-ddd381cb.js +++ b/web/settings/assets/device-91766407.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-d043355a.js b/web/settings/assets/device-925a2214.js similarity index 91% rename from web/settings/assets/device-d043355a.js rename to web/settings/assets/device-925a2214.js index b55ca0bf79..5c6fba861d 100644 --- a/web/settings/assets/device-d043355a.js +++ b/web/settings/assets/device-925a2214.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-54256645.js b/web/settings/assets/device-94b7690a.js similarity index 91% rename from web/settings/assets/device-54256645.js rename to web/settings/assets/device-94b7690a.js index 8a8fee030f..590c718fbd 100644 --- a/web/settings/assets/device-54256645.js +++ b/web/settings/assets/device-94b7690a.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-d648e8b1.js b/web/settings/assets/device-976c3ed0.js similarity index 89% rename from web/settings/assets/device-d648e8b1.js rename to web/settings/assets/device-976c3ed0.js index 70824024b5..00d403608c 100644 --- a/web/settings/assets/device-d648e8b1.js +++ b/web/settings/assets/device-976c3ed0.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-ae8768b0.js b/web/settings/assets/device-9978add8.js similarity index 89% rename from web/settings/assets/device-ae8768b0.js rename to web/settings/assets/device-9978add8.js index 6e4fc0cb9d..3aea189771 100644 --- a/web/settings/assets/device-ae8768b0.js +++ b/web/settings/assets/device-9978add8.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-e8bb4147.js b/web/settings/assets/device-9da23c88.js similarity index 94% rename from web/settings/assets/device-e8bb4147.js rename to web/settings/assets/device-9da23c88.js index 59b73e9cd5..7637cdf687 100644 --- a/web/settings/assets/device-e8bb4147.js +++ b/web/settings/assets/device-9da23c88.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-067bd2b4.js b/web/settings/assets/device-a10f2b43.js similarity index 84% rename from web/settings/assets/device-067bd2b4.js rename to web/settings/assets/device-a10f2b43.js index 7e08475fb4..8b819d9564 100644 --- a/web/settings/assets/device-067bd2b4.js +++ b/web/settings/assets/device-a10f2b43.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-c754a9de.js b/web/settings/assets/device-a725aeb2.js similarity index 91% rename from web/settings/assets/device-c754a9de.js rename to web/settings/assets/device-a725aeb2.js index dec3805874..de732f4bb2 100644 --- a/web/settings/assets/device-c754a9de.js +++ b/web/settings/assets/device-a725aeb2.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-ca48bc84.js b/web/settings/assets/device-b1552895.js similarity index 95% rename from web/settings/assets/device-ca48bc84.js rename to web/settings/assets/device-b1552895.js index 0bbc9f207b..337699e347 100644 --- a/web/settings/assets/device-ca48bc84.js +++ b/web/settings/assets/device-b1552895.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-b03b502e.js b/web/settings/assets/device-ba80e8bc.js similarity index 91% rename from web/settings/assets/device-b03b502e.js rename to web/settings/assets/device-ba80e8bc.js index ddc4e4f117..e13ba9e750 100644 --- a/web/settings/assets/device-b03b502e.js +++ b/web/settings/assets/device-ba80e8bc.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-d4934670.js b/web/settings/assets/device-bb93e0c5.js similarity index 87% rename from web/settings/assets/device-d4934670.js rename to web/settings/assets/device-bb93e0c5.js index b0595f9705..f6e20f3244 100644 --- a/web/settings/assets/device-d4934670.js +++ b/web/settings/assets/device-bb93e0c5.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-90fd7b10.js b/web/settings/assets/device-bff17bf9.js similarity index 91% rename from web/settings/assets/device-90fd7b10.js rename to web/settings/assets/device-bff17bf9.js index 652ed74f0a..21ac07d844 100644 --- a/web/settings/assets/device-90fd7b10.js +++ b/web/settings/assets/device-bff17bf9.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-64aa9baa.js b/web/settings/assets/device-c093f507.js similarity index 84% rename from web/settings/assets/device-64aa9baa.js rename to web/settings/assets/device-c093f507.js index 3d08ef79d6..3b2391df2c 100644 --- a/web/settings/assets/device-64aa9baa.js +++ b/web/settings/assets/device-c093f507.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-5b177486.js b/web/settings/assets/device-caceef31.js similarity index 89% rename from web/settings/assets/device-5b177486.js rename to web/settings/assets/device-caceef31.js index e8effee0f6..ffe1f36ecd 100644 --- a/web/settings/assets/device-5b177486.js +++ b/web/settings/assets/device-caceef31.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-53d2fd16.js b/web/settings/assets/device-cbfc3bcf.js similarity index 86% rename from web/settings/assets/device-53d2fd16.js rename to web/settings/assets/device-cbfc3bcf.js index c2e3bbdf79..599e148685 100644 --- a/web/settings/assets/device-53d2fd16.js +++ b/web/settings/assets/device-cbfc3bcf.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-e72282ad.js b/web/settings/assets/device-daae64af.js similarity index 92% rename from web/settings/assets/device-e72282ad.js rename to web/settings/assets/device-daae64af.js index b22835a0bb..aa11c317be 100644 --- a/web/settings/assets/device-e72282ad.js +++ b/web/settings/assets/device-daae64af.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-807f54c8.js b/web/settings/assets/device-db799536.js similarity index 92% rename from web/settings/assets/device-807f54c8.js rename to web/settings/assets/device-db799536.js index 61f40c6650..d66570907a 100644 --- a/web/settings/assets/device-807f54c8.js +++ b/web/settings/assets/device-db799536.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-8b3c6b93.js b/web/settings/assets/device-dba34848.js similarity index 89% rename from web/settings/assets/device-8b3c6b93.js rename to web/settings/assets/device-dba34848.js index 6ce345f62b..98277497f7 100644 --- a/web/settings/assets/device-8b3c6b93.js +++ b/web/settings/assets/device-dba34848.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-fe29c517.js b/web/settings/assets/device-dc079100.js similarity index 87% rename from web/settings/assets/device-fe29c517.js rename to web/settings/assets/device-dc079100.js index f8d853b5f4..bff700784c 100644 --- a/web/settings/assets/device-fe29c517.js +++ b/web/settings/assets/device-dc079100.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-1c0ca81c.js b/web/settings/assets/device-de18fd76.js similarity index 94% rename from web/settings/assets/device-1c0ca81c.js rename to web/settings/assets/device-de18fd76.js index cfef6fcee6..9111e34ac7 100644 --- a/web/settings/assets/device-1c0ca81c.js +++ b/web/settings/assets/device-de18fd76.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a865ff54.js b/web/settings/assets/device-e0a42828.js similarity index 93% rename from web/settings/assets/device-a865ff54.js rename to web/settings/assets/device-e0a42828.js index af1d345e02..fecba4922e 100644 --- a/web/settings/assets/device-a865ff54.js +++ b/web/settings/assets/device-e0a42828.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a744f1a9.js b/web/settings/assets/device-e44093db.js similarity index 92% rename from web/settings/assets/device-a744f1a9.js rename to web/settings/assets/device-e44093db.js index b3850f78f3..5ef057d913 100644 --- a/web/settings/assets/device-a744f1a9.js +++ b/web/settings/assets/device-e44093db.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-daa3f4b4.js b/web/settings/assets/device-e839e7b2.js similarity index 91% rename from web/settings/assets/device-daa3f4b4.js rename to web/settings/assets/device-e839e7b2.js index 88ab0036bd..cfdac1b187 100644 --- a/web/settings/assets/device-daa3f4b4.js +++ b/web/settings/assets/device-e839e7b2.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-c8d98c4f.js b/web/settings/assets/device-ef3a1ae0.js similarity index 87% rename from web/settings/assets/device-c8d98c4f.js rename to web/settings/assets/device-ef3a1ae0.js index 7d1b53a409..9d9ca8b31d 100644 --- a/web/settings/assets/device-c8d98c4f.js +++ b/web/settings/assets/device-ef3a1ae0.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-314b37f4.js b/web/settings/assets/device-f540e28b.js similarity index 89% rename from web/settings/assets/device-314b37f4.js rename to web/settings/assets/device-f540e28b.js index c4f87ddff8..51bb7f1a2d 100644 --- a/web/settings/assets/device-314b37f4.js +++ b/web/settings/assets/device-f540e28b.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-83751355.js b/web/settings/assets/device-f5bb0927.js similarity index 86% rename from web/settings/assets/device-83751355.js rename to web/settings/assets/device-f5bb0927.js index 828badead5..53253eb135 100644 --- a/web/settings/assets/device-83751355.js +++ b/web/settings/assets/device-f5bb0927.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-2c93924a.js b/web/settings/assets/device-f81c8fe3.js similarity index 84% rename from web/settings/assets/device-2c93924a.js rename to web/settings/assets/device-f81c8fe3.js index 2c799c2ac0..f43668a5de 100644 --- a/web/settings/assets/device-2c93924a.js +++ b/web/settings/assets/device-f81c8fe3.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-7b7a6795.js b/web/settings/assets/device-f86e50f5.js similarity index 91% rename from web/settings/assets/device-7b7a6795.js rename to web/settings/assets/device-f86e50f5.js index 7ccd509c65..f724285ad0 100644 --- a/web/settings/assets/device-7b7a6795.js +++ b/web/settings/assets/device-f86e50f5.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-0e3d5ead.js b/web/settings/assets/device-f9d125b7.js similarity index 81% rename from web/settings/assets/device-0e3d5ead.js rename to web/settings/assets/device-f9d125b7.js index ad0960b650..ccdeb9b842 100644 --- a/web/settings/assets/device-0e3d5ead.js +++ b/web/settings/assets/device-f9d125b7.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-ce70648b.js b/web/settings/assets/device-fb3f0638.js similarity index 92% rename from web/settings/assets/device-ce70648b.js rename to web/settings/assets/device-fb3f0638.js index 049f1ca606..8c0b55459a 100644 --- a/web/settings/assets/device-ce70648b.js +++ b/web/settings/assets/device-fb3f0638.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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/displayTheme-4e07af56.js b/web/settings/assets/displayTheme-5185be76.js similarity index 92% rename from web/settings/assets/displayTheme-4e07af56.js rename to web/settings/assets/displayTheme-5185be76.js index 7a0fca6b5f..48a3bf75b3 100644 --- a/web/settings/assets/displayTheme-4e07af56.js +++ b/web/settings/assets/displayTheme-5185be76.js @@ -1 +1 @@ -import{D as d}from"./OptionalComponents-c036d511.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-1cca615d.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-8784bcad.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-1763d060.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-ef3b682f.js b/web/settings/assets/displayTheme-62bb8bc1.js similarity index 98% rename from web/settings/assets/displayTheme-ef3b682f.js rename to web/settings/assets/displayTheme-62bb8bc1.js index 77316d662b..a5ebaba7ea 100644 --- a/web/settings/assets/displayTheme-ef3b682f.js +++ b/web/settings/assets/displayTheme-62bb8bc1.js @@ -1 +1 @@ -import{D as v}from"./OptionalComponents-c036d511.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-1cca615d.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-8784bcad.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-1763d060.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-b7d0ce5d.js b/web/settings/assets/electricity_tariff-0d3fcc40.js similarity index 89% rename from web/settings/assets/electricity_tariff-b7d0ce5d.js rename to web/settings/assets/electricity_tariff-0d3fcc40.js index 34d9d6252d..f9bb6eba6a 100644 --- a/web/settings/assets/electricity_tariff-b7d0ce5d.js +++ b/web/settings/assets/electricity_tariff-0d3fcc40.js @@ -1 +1 @@ -import{E as o}from"./GeneralChargeConfig-1c17bcad.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-1cca615d.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-485520cc.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-1763d060.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-aa5b1a6a.js b/web/settings/assets/electricity_tariff-4e1932a1.js similarity index 96% rename from web/settings/assets/electricity_tariff-aa5b1a6a.js rename to web/settings/assets/electricity_tariff-4e1932a1.js index bf8855325b..d27221ed56 100644 --- a/web/settings/assets/electricity_tariff-aa5b1a6a.js +++ b/web/settings/assets/electricity_tariff-4e1932a1.js @@ -1 +1 @@ -import{E as m}from"./GeneralChargeConfig-1c17bcad.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-1cca615d.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-485520cc.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-1763d060.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-ed7c4c08.js b/web/settings/assets/electricity_tariff-7a26b10b.js similarity index 91% rename from web/settings/assets/electricity_tariff-ed7c4c08.js rename to web/settings/assets/electricity_tariff-7a26b10b.js index 685c7d7e3e..e200e2c8cb 100644 --- a/web/settings/assets/electricity_tariff-ed7c4c08.js +++ b/web/settings/assets/electricity_tariff-7a26b10b.js @@ -1 +1 @@ -import{E as s}from"./GeneralChargeConfig-1c17bcad.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-1cca615d.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-485520cc.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-1763d060.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-6e0171ef.js b/web/settings/assets/electricity_tariff-849a1d20.js similarity index 91% rename from web/settings/assets/electricity_tariff-6e0171ef.js rename to web/settings/assets/electricity_tariff-849a1d20.js index 5cd2f06d04..174f443f21 100644 --- a/web/settings/assets/electricity_tariff-6e0171ef.js +++ b/web/settings/assets/electricity_tariff-849a1d20.js @@ -1 +1 @@ -import{E as l}from"./GeneralChargeConfig-1c17bcad.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-1cca615d.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-485520cc.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-1763d060.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-ff53512d.js b/web/settings/assets/electricity_tariff-8939638d.js similarity index 93% rename from web/settings/assets/electricity_tariff-ff53512d.js rename to web/settings/assets/electricity_tariff-8939638d.js index 9a3477739d..6a0abdfad1 100644 --- a/web/settings/assets/electricity_tariff-ff53512d.js +++ b/web/settings/assets/electricity_tariff-8939638d.js @@ -1 +1 @@ -import{E as p}from"./GeneralChargeConfig-1c17bcad.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-1cca615d.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-485520cc.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-1763d060.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-c2b24c2d.js b/web/settings/assets/electricity_tariff-8bfda04c.js similarity index 94% rename from web/settings/assets/electricity_tariff-c2b24c2d.js rename to web/settings/assets/electricity_tariff-8bfda04c.js index f5f9918526..8c75950723 100644 --- a/web/settings/assets/electricity_tariff-c2b24c2d.js +++ b/web/settings/assets/electricity_tariff-8bfda04c.js @@ -1 +1 @@ -import{E as c}from"./GeneralChargeConfig-1c17bcad.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-1cca615d.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-485520cc.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-1763d060.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-fa08cfc7.js b/web/settings/assets/electricity_tariff-c80b1808.js similarity index 98% rename from web/settings/assets/electricity_tariff-fa08cfc7.js rename to web/settings/assets/electricity_tariff-c80b1808.js index 8cb5d43d31..aac0a23d2d 100644 --- a/web/settings/assets/electricity_tariff-fa08cfc7.js +++ b/web/settings/assets/electricity_tariff-c80b1808.js @@ -1 +1 @@ -import{E as I}from"./GeneralChargeConfig-1c17bcad.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-1cca615d.js";import"./vendor-bootstrap-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-485520cc.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-1763d060.js";import"./vendor-bootstrap-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-3b46be15.js b/web/settings/assets/electricity_tariff-f4342cf4.js similarity index 90% rename from web/settings/assets/electricity_tariff-3b46be15.js rename to web/settings/assets/electricity_tariff-f4342cf4.js index 588c233221..6e23a10d3f 100644 --- a/web/settings/assets/electricity_tariff-3b46be15.js +++ b/web/settings/assets/electricity_tariff-f4342cf4.js @@ -1 +1 @@ -import{E as n}from"./GeneralChargeConfig-1c17bcad.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-25d394b4.js";import"./index-1cca615d.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-485520cc.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-25d394b4.js";import"./index-1763d060.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/external_inverter-64f7c7b1.js b/web/settings/assets/external_inverter-ffb002d6.js similarity index 94% rename from web/settings/assets/external_inverter-64f7c7b1.js rename to web/settings/assets/external_inverter-ffb002d6.js index df53bae16d..477446fe96 100644 --- a/web/settings/assets/external_inverter-64f7c7b1.js +++ b/web/settings/assets/external_inverter-ffb002d6.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-1763d060.js b/web/settings/assets/index-1763d060.js new file mode 100644 index 0000000000..200d39130a --- /dev/null +++ b/web/settings/assets/index-1763d060.js @@ -0,0 +1 @@ +import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as q,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 te,M as x,N as T,O as ne,P as se,Q as oe,R as ae,T as H,S as ie,U as N,V as le,W as re,X as de,Y as ue,Z as ce,$ as pe,a0 as me}from"./vendor-25d394b4.js";import{l as $,f as U,a as G,F as C,b as fe,c as _e,d as J,e as ge,g as j,h as be,i as he,j as ve,k as ye,m as we,n as ke,o as Se,p as Oe,q as Be,r as $e,s as Ce,t as Ie,u as Te,v as Ve,w as K,x as Ae,y as Me,z as Pe,A as xe,B as Z,C as qe,D as De,E as Ee,G as Le,H as je,I as We,J as Re,K as Ne,L as ze,M as Fe,N as He}from"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import{p as Ue,a as Ge}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 Je={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Ke(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 Ze=y(Je,[["render",Ke],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Qe=Object.freeze(Object.defineProperty({__proto__:null,default:Ze},Symbol.toStringTag,{value:"Module"}));$.add(U,G);const Ye={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Xe={key:0,class:"col-md-4 col-form-label"},et={class:"form-row"},tt={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function nt(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",Xe,[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:q(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",et,[l.showHelp?(i(),u("span",tt,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Ye,[["render",nt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),st=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(fe,_e,J,ge);const ot={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."},readonly:{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(){var e;return this.newTag.length>0&&!this.value.includes(this.newTag)&&((e=this.$refs.tagInput)==null?void 0:e.checkValidity())}}},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}}},at={key:0,class:"w-100"},it={class:"input-group"},lt={class:"input-group-prepend"},rt={class:"input-group-text"},dt={class:"input-group-append"},ut={class:"tagList mt-1 w-100"},ct={key:0,class:"noTag"};function pt(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.readonly?p("",!0):(i(),u("div",at,[a("div",it,[a("div",lt,[a("div",rt,[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]=te((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",dt,[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",ut,[s.value.length==0?(i(),u("span",ct,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,x(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.readonly?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 mt=y(ot,[["render",pt],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),ft=Object.freeze(Object.defineProperty({__proto__:null,default:mt},Symbol.toStringTag,{value:"Module"}));const _t={name:"OpenwbAvatar"},gt={class:"avatar"};function bt(e,t,n,d,l,s){return i(),u("div",gt,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const ht=y(_t,[["render",bt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),vt=Object.freeze(Object.defineProperty({__proto__:null,default:ht},Symbol.toStringTag,{value:"Module"}));$.add(j);const yt={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)}}}},wt={class:"btn-group btn-block btn-group-toggle"},kt=["value","onClick"];function St(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",wt,[(i(!0),u(T,null,x(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn btn-same-size btn-centered",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[a("span",null,[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,kt),[[ne,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)],!0),t[1]||(t[1]=a("span",null," ",-1)),_(o,{icon:["fas","check"],style:se([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",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Ot=y(yt,[["render",St],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Bt=Object.freeze(Object.defineProperty({__proto__:null,default:Ot},Symbol.toStringTag,{value:"Module"}));const $t={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},Ct=["title"];function It(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=q((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,Ct)}const Q=y($t,[["render",It],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Tt=Object.freeze(Object.defineProperty({__proto__:null,default:Q},Symbol.toStringTag,{value:"Module"})),Vt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Q},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 At(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 Mt=y(Vt,[["render",At],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Pt=Object.freeze(Object.defineProperty({__proto__:null,default:Mt},Symbol.toStringTag,{value:"Module"}));$.add(be,he);const xt={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"},Dt={class:"form-row vaRow mb-0 py-2"},Et={class:"col"},Lt={class:"card-actions ml-4"},jt={key:0,class:"card-actions mr-2"},Wt={key:2,class:"card-footer"};function Rt(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",Dt,[a("div",Et,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Lt,[e.$slots.actions?(i(),u("div",jt,[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",Wt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Nt=y(xt,[["render",Rt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),zt=Object.freeze(Object.defineProperty({__proto__:null,default:Nt},Symbol.toStringTag,{value:"Module"})),Ft={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)}}}},Ht={class:"col-md-8"};function Ut(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",Ht,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[oe,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Gt=y(Ft,[["render",Ut],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Jt=Object.freeze(Object.defineProperty({__proto__:null,default:Gt},Symbol.toStringTag,{value:"Module"}));$.add(ve);const Kt={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)}}},Zt={class:"wrapper"},Qt=["value","title"];function Yt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Zt,[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,Qt),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 Xt=y(Kt,[["render",Yt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Xt},Symbol.toStringTag,{value:"Module"}));const{text:z,copy:tn,copied:nn,isSupported:sn}=ae({copiedDuring:3e3,legacy:!0});$.add(ye,we);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&&z.value===this.contentText},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",z.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]=q((...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,class:"ml-1",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(U,G,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:q(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(ke,Se,Oe,Be);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,x(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:q(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=q(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=q(()=>{},["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(H,{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,x(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($e);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"},xn={class:"input-group-prepend"},qn={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",xn,[a("div",qn,[_(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(Ce,Ie);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(J);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,x(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,x(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,x(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ie,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,Te,Ve);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(K,Ae,Me,Pe,xe,Z,qe,De,Ee,Le,je,We);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 qs=y(vs,[["render",xs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));$.add(K,Z);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(Re);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://wiki.openwb.de/",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"}}}},Y=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Ne,ze);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:Fe,FontAwesomeLayersText:He},mixins:[Y],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(H,{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,x(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:[Y],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},xo={key:1},qo={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",xo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",qo,"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=le.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},F={},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 F)return;F[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 X={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};X.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=re({state:X,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}}),ee=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-681ea506.js"),["assets/Status-681ea506.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-6d2ae136.js"),["assets/ChargeLog-6d2ae136.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-924a1291.js"),["assets/Chart-924a1291.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-2436dcce.js").then(e=>e.a),["assets/GeneralConfig-2436dcce.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-a593a783.js"),["assets/IdentificationConfig-a593a783.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-8784bcad.js").then(e=>e.O),["assets/OptionalComponents-8784bcad.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-485520cc.js").then(e=>e.G),["assets/GeneralChargeConfig-485520cc.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-53be3418.js"),["assets/PVChargeConfig-53be3418.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-a602f648.js").then(e=>e.a),["assets/HardwareInstallation-a602f648.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-15c67f12.js"),["assets/LoadManagementConfig-15c67f12.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-32687724.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-81df253b.js").then(e=>e.c),["assets/ChargePointInstallation-81df253b.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-81c923a6.js").then(e=>e.b),["assets/VehicleConfig-81c923a6.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-ec9426ac.js").then(e=>e.b),["assets/IoConfig-ec9426ac.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-46b82849.js"),["assets/CloudConfig-46b82849.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-2bd2a268.js"),["assets/MqttBridgeConfig-2bd2a268.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-8f83347c.js"),["assets/DebugConfig-8f83347c.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-89ca8162.js"),["assets/Support-89ca8162.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-6bf68911.js"),["assets/LegalSettings-6bf68911.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-c491751c.js"),["assets/System-c491751c.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-49c08fca.js").then(e=>e.a),["assets/DataManagement-49c08fca.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-222a118e.js"),["assets/InstallAssistant-222a118e.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"])}];ee.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-213a57db.js"),["assets/TestingStore-213a57db.js","assets/OpenwbSortableList-32687724.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=de({history:ue(),routes:ee});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=ce(zo);R.use(L).use(W).use(Ue,Ge);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Qe,"./components/OpenwbBaseArrayInput.vue":ft,"./components/OpenwbBaseAvatar.vue":vt,"./components/OpenwbBaseButtonGroupInput.vue":Bt,"./components/OpenwbBaseButtonInput.vue":Pt,"./components/OpenwbBaseCard.vue":zt,"./components/OpenwbBaseCheckboxInput.vue":Jt,"./components/OpenwbBaseClickButton.vue":Tt,"./components/OpenwbBaseColorPicker.vue":en,"./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":st,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=pe(me(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Y as C,M as O,k as _}; diff --git a/web/settings/assets/index-1cca615d.js b/web/settings/assets/index-1cca615d.js deleted file mode 100644 index 1811806536..0000000000 --- a/web/settings/assets/index-1cca615d.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as q,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 te,M as x,N as T,O as ne,P as se,Q as oe,R as ae,T as H,S as ie,U as N,V as le,W as re,X as de,Y as ue,Z as ce,$ as pe,a0 as me}from"./vendor-25d394b4.js";import{l as $,f as U,a as G,F as C,b as fe,c as _e,d as J,e as ge,g as j,h as be,i as he,j as ve,k as ye,m as we,n as ke,o as Se,p as Oe,q as Be,r as $e,s as Ce,t as Ie,u as Te,v as Ve,w as K,x as Ae,y as Me,z as Pe,A as xe,B as Z,C as qe,D as De,E as Ee,G as Le,H as je,I as We,J as Re,K as Ne,L as ze,M as Fe,N as He}from"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import{p as Ue,a as Ge}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 Je={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Ke(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 Ze=y(Je,[["render",Ke],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Qe=Object.freeze(Object.defineProperty({__proto__:null,default:Ze},Symbol.toStringTag,{value:"Module"}));$.add(U,G);const Ye={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Xe={key:0,class:"col-md-4 col-form-label"},et={class:"form-row"},tt={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function nt(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",Xe,[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:q(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",et,[l.showHelp?(i(),u("span",tt,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Ye,[["render",nt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),st=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(fe,_e,J,ge);const ot={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(){var e;return this.newTag.length>0&&!this.value.includes(this.newTag)&&((e=this.$refs.tagInput)==null?void 0:e.checkValidity())}}},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}}},at={key:0,class:"w-100"},it={class:"input-group"},lt={class:"input-group-prepend"},rt={class:"input-group-text"},dt={class:"input-group-append"},ut={class:"tagList mt-1 w-100"},ct={key:0,class:"noTag"};function pt(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",at,[a("div",it,[a("div",lt,[a("div",rt,[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]=te((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",dt,[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",ut,[s.value.length==0?(i(),u("span",ct,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,x(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 mt=y(ot,[["render",pt],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),ft=Object.freeze(Object.defineProperty({__proto__:null,default:mt},Symbol.toStringTag,{value:"Module"}));const _t={name:"OpenwbAvatar"},gt={class:"avatar"};function bt(e,t,n,d,l,s){return i(),u("div",gt,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const ht=y(_t,[["render",bt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),vt=Object.freeze(Object.defineProperty({__proto__:null,default:ht},Symbol.toStringTag,{value:"Module"}));$.add(j);const yt={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)}}}},wt={class:"btn-group btn-block btn-group-toggle"},kt=["value","onClick"];function St(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",wt,[(i(!0),u(T,null,x(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn btn-same-size btn-centered",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[a("span",null,[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,kt),[[ne,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)],!0),t[1]||(t[1]=a("span",null," ",-1)),_(o,{icon:["fas","check"],style:se([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",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Ot=y(yt,[["render",St],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Bt=Object.freeze(Object.defineProperty({__proto__:null,default:Ot},Symbol.toStringTag,{value:"Module"}));const $t={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},Ct=["title"];function It(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=q((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,Ct)}const Q=y($t,[["render",It],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Tt=Object.freeze(Object.defineProperty({__proto__:null,default:Q},Symbol.toStringTag,{value:"Module"})),Vt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Q},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 At(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 Mt=y(Vt,[["render",At],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Pt=Object.freeze(Object.defineProperty({__proto__:null,default:Mt},Symbol.toStringTag,{value:"Module"}));$.add(be,he);const xt={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"},Dt={class:"form-row vaRow mb-0 py-2"},Et={class:"col"},Lt={class:"card-actions ml-4"},jt={key:0,class:"card-actions mr-2"},Wt={key:2,class:"card-footer"};function Rt(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",Dt,[a("div",Et,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Lt,[e.$slots.actions?(i(),u("div",jt,[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",Wt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Nt=y(xt,[["render",Rt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),zt=Object.freeze(Object.defineProperty({__proto__:null,default:Nt},Symbol.toStringTag,{value:"Module"})),Ft={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)}}}},Ht={class:"col-md-8"};function Ut(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",Ht,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[oe,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Gt=y(Ft,[["render",Ut],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Jt=Object.freeze(Object.defineProperty({__proto__:null,default:Gt},Symbol.toStringTag,{value:"Module"}));$.add(ve);const Kt={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)}}},Zt={class:"wrapper"},Qt=["value","title"];function Yt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Zt,[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,Qt),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 Xt=y(Kt,[["render",Yt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Xt},Symbol.toStringTag,{value:"Module"}));const{text:z,copy:tn,copied:nn,isSupported:sn}=ae({copiedDuring:3e3,legacy:!0});$.add(ye,we);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&&z.value===this.contentText},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",z.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]=q((...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,class:"ml-1",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(U,G,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:q(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(ke,Se,Oe,Be);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,x(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:q(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=q(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=q(()=>{},["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(H,{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,x(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($e);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"},xn={class:"input-group-prepend"},qn={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",xn,[a("div",qn,[_(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(Ce,Ie);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(J);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,x(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,x(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,x(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ie,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,Te,Ve);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(K,Ae,Me,Pe,xe,Z,qe,De,Ee,Le,je,We);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 qs=y(vs,[["render",xs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));$.add(K,Z);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(Re);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://wiki.openwb.de/",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"}}}},Y=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Ne,ze);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:Fe,FontAwesomeLayersText:He},mixins:[Y],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(H,{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,x(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:[Y],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},xo={key:1},qo={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",xo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",qo,"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=le.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},F={},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 F)return;F[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 X={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};X.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=re({state:X,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}}),ee=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-a7349646.js"),["assets/Status-a7349646.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-a5a7e22b.js"),["assets/ChargeLog-a5a7e22b.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-00144058.js"),["assets/Chart-00144058.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-38b6a47c.js").then(e=>e.a),["assets/GeneralConfig-38b6a47c.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-f12ad3da.js"),["assets/IdentificationConfig-f12ad3da.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-c036d511.js").then(e=>e.O),["assets/OptionalComponents-c036d511.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-1c17bcad.js").then(e=>e.G),["assets/GeneralChargeConfig-1c17bcad.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-414cfbfd.js"),["assets/PVChargeConfig-414cfbfd.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-9e2c000c.js").then(e=>e.a),["assets/HardwareInstallation-9e2c000c.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-1fb6d009.js"),["assets/LoadManagementConfig-1fb6d009.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-55fee6ec.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-abc8fd1a.js").then(e=>e.c),["assets/ChargePointInstallation-abc8fd1a.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-efa0f512.js").then(e=>e.b),["assets/VehicleConfig-efa0f512.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-32908457.js").then(e=>e.b),["assets/IoConfig-32908457.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-7177175f.js"),["assets/CloudConfig-7177175f.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-99007312.js"),["assets/MqttBridgeConfig-99007312.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-65c695f7.js"),["assets/DebugConfig-65c695f7.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-e1083739.js"),["assets/Support-e1083739.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-918cb89b.js"),["assets/LegalSettings-918cb89b.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-8af1b8d1.js"),["assets/System-8af1b8d1.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-148ac42e.js").then(e=>e.a),["assets/DataManagement-148ac42e.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-89be276b.js"),["assets/InstallAssistant-89be276b.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"])}];ee.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-65e8fa9e.js"),["assets/TestingStore-65e8fa9e.js","assets/OpenwbSortableList-55fee6ec.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=de({history:ue(),routes:ee});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=ce(zo);R.use(L).use(W).use(Ue,Ge);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Qe,"./components/OpenwbBaseArrayInput.vue":ft,"./components/OpenwbBaseAvatar.vue":vt,"./components/OpenwbBaseButtonGroupInput.vue":Bt,"./components/OpenwbBaseButtonInput.vue":Pt,"./components/OpenwbBaseCard.vue":zt,"./components/OpenwbBaseCheckboxInput.vue":Jt,"./components/OpenwbBaseClickButton.vue":Tt,"./components/OpenwbBaseColorPicker.vue":en,"./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":st,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=pe(me(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Y as C,M as O,k as _}; diff --git a/web/settings/assets/inverter-706dbcb9.js b/web/settings/assets/inverter-03536592.js similarity index 88% rename from web/settings/assets/inverter-706dbcb9.js rename to web/settings/assets/inverter-03536592.js index 404c3753f4..da898e9a2d 100644 --- a/web/settings/assets/inverter-706dbcb9.js +++ b/web/settings/assets/inverter-03536592.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-2978fa86.js b/web/settings/assets/inverter-245394b4.js similarity index 86% rename from web/settings/assets/inverter-2978fa86.js rename to web/settings/assets/inverter-245394b4.js index 2985da3eb7..4a35ad76df 100644 --- a/web/settings/assets/inverter-2978fa86.js +++ b/web/settings/assets/inverter-245394b4.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-d04f666a.js b/web/settings/assets/inverter-24ad1813.js similarity index 92% rename from web/settings/assets/inverter-d04f666a.js rename to web/settings/assets/inverter-24ad1813.js index 82eb2da408..4908e0c64f 100644 --- a/web/settings/assets/inverter-d04f666a.js +++ b/web/settings/assets/inverter-24ad1813.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a94b43da.js b/web/settings/assets/inverter-2b890ac2.js similarity index 89% rename from web/settings/assets/inverter-a94b43da.js rename to web/settings/assets/inverter-2b890ac2.js index 646f04fad9..1e3c5ce65a 100644 --- a/web/settings/assets/inverter-a94b43da.js +++ b/web/settings/assets/inverter-2b890ac2.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-bc68a9ad.js b/web/settings/assets/inverter-38b9aa2f.js similarity index 87% rename from web/settings/assets/inverter-bc68a9ad.js rename to web/settings/assets/inverter-38b9aa2f.js index 69c3165087..28132e7df9 100644 --- a/web/settings/assets/inverter-bc68a9ad.js +++ b/web/settings/assets/inverter-38b9aa2f.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-7043df37.js b/web/settings/assets/inverter-3b43cf62.js similarity index 83% rename from web/settings/assets/inverter-7043df37.js rename to web/settings/assets/inverter-3b43cf62.js index 8fce23431e..6e7643e14e 100644 --- a/web/settings/assets/inverter-7043df37.js +++ b/web/settings/assets/inverter-3b43cf62.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-1ba5162f.js b/web/settings/assets/inverter-45b9dfd5.js similarity index 94% rename from web/settings/assets/inverter-1ba5162f.js rename to web/settings/assets/inverter-45b9dfd5.js index 582d1b8f88..48d5a62ebe 100644 --- a/web/settings/assets/inverter-1ba5162f.js +++ b/web/settings/assets/inverter-45b9dfd5.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-4f9c8b79.js b/web/settings/assets/inverter-4627e308.js similarity index 87% rename from web/settings/assets/inverter-4f9c8b79.js rename to web/settings/assets/inverter-4627e308.js index 7a1dc208de..68bc263f2d 100644 --- a/web/settings/assets/inverter-4f9c8b79.js +++ b/web/settings/assets/inverter-4627e308.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-257464d1.js b/web/settings/assets/inverter-53303433.js similarity index 95% rename from web/settings/assets/inverter-257464d1.js rename to web/settings/assets/inverter-53303433.js index c8d26dcbe1..68c168ddad 100644 --- a/web/settings/assets/inverter-257464d1.js +++ b/web/settings/assets/inverter-53303433.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-634f7fdb.js b/web/settings/assets/inverter-5832877f.js similarity index 88% rename from web/settings/assets/inverter-634f7fdb.js rename to web/settings/assets/inverter-5832877f.js index ab7c65a63c..fa4b4af9c5 100644 --- a/web/settings/assets/inverter-634f7fdb.js +++ b/web/settings/assets/inverter-5832877f.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-cc55220f.js b/web/settings/assets/inverter-620105cf.js similarity index 91% rename from web/settings/assets/inverter-cc55220f.js rename to web/settings/assets/inverter-620105cf.js index 42a2cf0262..ee55f99698 100644 --- a/web/settings/assets/inverter-cc55220f.js +++ b/web/settings/assets/inverter-620105cf.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-e9ab724f.js b/web/settings/assets/inverter-6544fcc7.js similarity index 89% rename from web/settings/assets/inverter-e9ab724f.js rename to web/settings/assets/inverter-6544fcc7.js index 16b063ab5a..412940b7b8 100644 --- a/web/settings/assets/inverter-e9ab724f.js +++ b/web/settings/assets/inverter-6544fcc7.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-baf97dc9.js b/web/settings/assets/inverter-6b4811b8.js similarity index 90% rename from web/settings/assets/inverter-baf97dc9.js rename to web/settings/assets/inverter-6b4811b8.js index 368696f0c5..63b3689f8c 100644 --- a/web/settings/assets/inverter-baf97dc9.js +++ b/web/settings/assets/inverter-6b4811b8.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a02ddf60.js b/web/settings/assets/inverter-6cdc58ad.js similarity index 80% rename from web/settings/assets/inverter-a02ddf60.js rename to web/settings/assets/inverter-6cdc58ad.js index a465f2f4a2..838c843915 100644 --- a/web/settings/assets/inverter-a02ddf60.js +++ b/web/settings/assets/inverter-6cdc58ad.js @@ -1 +1 @@ -import{C as e}from"./HardwareInstallation-9e2c000c.js";import{_ as n,l as t,m as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-1cca615d.js";import"./vendor-bootstrap-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-a602f648.js";import{_ as n,l as t,m as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-1763d060.js";import"./vendor-bootstrap-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-04008ff3.js b/web/settings/assets/inverter-73d53863.js similarity index 80% rename from web/settings/assets/inverter-04008ff3.js rename to web/settings/assets/inverter-73d53863.js index 8bc580d100..8056b89975 100644 --- a/web/settings/assets/inverter-04008ff3.js +++ b/web/settings/assets/inverter-73d53863.js @@ -1 +1 @@ -import{C as e}from"./HardwareInstallation-9e2c000c.js";import{_ as t,l as o,m as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-1cca615d.js";import"./vendor-bootstrap-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-a602f648.js";import{_ as t,l as o,m as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-1763d060.js";import"./vendor-bootstrap-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-2ca4a156.js b/web/settings/assets/inverter-78c7be59.js similarity index 88% rename from web/settings/assets/inverter-2ca4a156.js rename to web/settings/assets/inverter-78c7be59.js index da9b1a9097..d46ed610fb 100644 --- a/web/settings/assets/inverter-2ca4a156.js +++ b/web/settings/assets/inverter-78c7be59.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-c3edd984.js b/web/settings/assets/inverter-7bfc46a9.js similarity index 88% rename from web/settings/assets/inverter-c3edd984.js rename to web/settings/assets/inverter-7bfc46a9.js index 57880e3ab8..5d4c4178b7 100644 --- a/web/settings/assets/inverter-c3edd984.js +++ b/web/settings/assets/inverter-7bfc46a9.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-3fc331d2.js b/web/settings/assets/inverter-88249932.js similarity index 88% rename from web/settings/assets/inverter-3fc331d2.js rename to web/settings/assets/inverter-88249932.js index 9296c84502..7abaf2d748 100644 --- a/web/settings/assets/inverter-3fc331d2.js +++ b/web/settings/assets/inverter-88249932.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-75fcbf5b.js b/web/settings/assets/inverter-8852b294.js similarity index 95% rename from web/settings/assets/inverter-75fcbf5b.js rename to web/settings/assets/inverter-8852b294.js index 05b730f8cb..b8a7365573 100644 --- a/web/settings/assets/inverter-75fcbf5b.js +++ b/web/settings/assets/inverter-8852b294.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-d50c3fcc.js b/web/settings/assets/inverter-978340ad.js similarity index 87% rename from web/settings/assets/inverter-d50c3fcc.js rename to web/settings/assets/inverter-978340ad.js index 7b6de226ba..2bbf218fbe 100644 --- a/web/settings/assets/inverter-d50c3fcc.js +++ b/web/settings/assets/inverter-978340ad.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-a61d5df2.js b/web/settings/assets/inverter-a3c08770.js similarity index 87% rename from web/settings/assets/inverter-a61d5df2.js rename to web/settings/assets/inverter-a3c08770.js index e5f235d03f..3049986b1c 100644 --- a/web/settings/assets/inverter-a61d5df2.js +++ b/web/settings/assets/inverter-a3c08770.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-83f20051.js b/web/settings/assets/inverter-a6cec0ba.js similarity index 84% rename from web/settings/assets/inverter-83f20051.js rename to web/settings/assets/inverter-a6cec0ba.js index 3255f370aa..cdd9bdb8a3 100644 --- a/web/settings/assets/inverter-83f20051.js +++ b/web/settings/assets/inverter-a6cec0ba.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-e9dc42fc.js b/web/settings/assets/inverter-abc3d758.js similarity index 88% rename from web/settings/assets/inverter-e9dc42fc.js rename to web/settings/assets/inverter-abc3d758.js index 7ccb457ca6..87dfd05c91 100644 --- a/web/settings/assets/inverter-e9dc42fc.js +++ b/web/settings/assets/inverter-abc3d758.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-e4e059e4.js b/web/settings/assets/inverter-aef1263c.js similarity index 90% rename from web/settings/assets/inverter-e4e059e4.js rename to web/settings/assets/inverter-aef1263c.js index 0a2c39bf55..0473f5e458 100644 --- a/web/settings/assets/inverter-e4e059e4.js +++ b/web/settings/assets/inverter-aef1263c.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-5f05dcda.js b/web/settings/assets/inverter-caa14dff.js similarity index 88% rename from web/settings/assets/inverter-5f05dcda.js rename to web/settings/assets/inverter-caa14dff.js index 3b54539b77..993c1c3aaf 100644 --- a/web/settings/assets/inverter-5f05dcda.js +++ b/web/settings/assets/inverter-caa14dff.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-9575a220.js b/web/settings/assets/inverter-caf37eee.js similarity index 88% rename from web/settings/assets/inverter-9575a220.js rename to web/settings/assets/inverter-caf37eee.js index 21fd7c9724..76f82ff277 100644 --- a/web/settings/assets/inverter-9575a220.js +++ b/web/settings/assets/inverter-caf37eee.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-236c5abf.js b/web/settings/assets/inverter-cbb4bfca.js similarity index 91% rename from web/settings/assets/inverter-236c5abf.js rename to web/settings/assets/inverter-cbb4bfca.js index 73da5cf1d9..f4c17db1fd 100644 --- a/web/settings/assets/inverter-236c5abf.js +++ b/web/settings/assets/inverter-cbb4bfca.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-fe7ee084.js b/web/settings/assets/inverter-d21871b8.js similarity index 89% rename from web/settings/assets/inverter-fe7ee084.js rename to web/settings/assets/inverter-d21871b8.js index d5e57aaae9..2e0891f135 100644 --- a/web/settings/assets/inverter-fe7ee084.js +++ b/web/settings/assets/inverter-d21871b8.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-5988b757.js b/web/settings/assets/inverter-d3468ee1.js similarity index 87% rename from web/settings/assets/inverter-5988b757.js rename to web/settings/assets/inverter-d3468ee1.js index f03b905333..b94b6dc22d 100644 --- a/web/settings/assets/inverter-5988b757.js +++ b/web/settings/assets/inverter-d3468ee1.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-c92a1393.js b/web/settings/assets/inverter-d37e3a89.js similarity index 91% rename from web/settings/assets/inverter-c92a1393.js rename to web/settings/assets/inverter-d37e3a89.js index ec47468aa6..f4ad65df54 100644 --- a/web/settings/assets/inverter-c92a1393.js +++ b/web/settings/assets/inverter-d37e3a89.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-105b9b5c.js b/web/settings/assets/inverter-ecb017d5.js similarity index 94% rename from web/settings/assets/inverter-105b9b5c.js rename to web/settings/assets/inverter-ecb017d5.js index 7df9e62aa8..95ab9de7f5 100644 --- a/web/settings/assets/inverter-105b9b5c.js +++ b/web/settings/assets/inverter-ecb017d5.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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_secondary-ffc37327.js b/web/settings/assets/inverter_secondary-beef74aa.js similarity index 92% rename from web/settings/assets/inverter_secondary-ffc37327.js rename to web/settings/assets/inverter_secondary-beef74aa.js index 800c9dee18..8297a7e1ab 100644 --- a/web/settings/assets/inverter_secondary-ffc37327.js +++ b/web/settings/assets/inverter_secondary-beef74aa.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-9e2c000c.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-1cca615d.js";import"./vendor-bootstrap-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-a602f648.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-1763d060.js";import"./vendor-bootstrap-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-147091c0.js b/web/settings/assets/io_action-3196d93c.js similarity index 94% rename from web/settings/assets/io_action-147091c0.js rename to web/settings/assets/io_action-3196d93c.js index 07a86be84e..2bc393916d 100644 --- a/web/settings/assets/io_action-147091c0.js +++ b/web/settings/assets/io_action-3196d93c.js @@ -1 +1 @@ -import{a as v}from"./IoConfig-32908457.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-1cca615d.js";import"./vendor-bootstrap-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-ec9426ac.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-1763d060.js";import"./vendor-bootstrap-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-79128142.js b/web/settings/assets/io_action-b2215ceb.js similarity index 93% rename from web/settings/assets/io_action-79128142.js rename to web/settings/assets/io_action-b2215ceb.js index c736428793..30f9c7e5db 100644 --- a/web/settings/assets/io_action-79128142.js +++ b/web/settings/assets/io_action-b2215ceb.js @@ -1 +1 @@ -import{a as d}from"./IoConfig-32908457.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-1cca615d.js";import"./vendor-bootstrap-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-ec9426ac.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-1763d060.js";import"./vendor-bootstrap-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-09e473e1.js b/web/settings/assets/io_action-b7470969.js similarity index 94% rename from web/settings/assets/io_action-09e473e1.js rename to web/settings/assets/io_action-b7470969.js index ee077ca3b8..bd87231b7b 100644 --- a/web/settings/assets/io_action-09e473e1.js +++ b/web/settings/assets/io_action-b7470969.js @@ -1 +1 @@ -import{a as g}from"./IoConfig-32908457.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-1cca615d.js";import"./vendor-bootstrap-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-ec9426ac.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-1763d060.js";import"./vendor-bootstrap-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-c4d216cf.js b/web/settings/assets/io_action-fb688837.js similarity index 95% rename from web/settings/assets/io_action-c4d216cf.js rename to web/settings/assets/io_action-fb688837.js index bb8606d24b..0807bf63ca 100644 --- a/web/settings/assets/io_action-c4d216cf.js +++ b/web/settings/assets/io_action-fb688837.js @@ -1 +1 @@ -import{a as f}from"./IoConfig-32908457.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-1cca615d.js";import"./vendor-bootstrap-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-ec9426ac.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-1763d060.js";import"./vendor-bootstrap-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-bf86df01.js b/web/settings/assets/io_device-243d33bb.js similarity index 90% rename from web/settings/assets/io_device-bf86df01.js rename to web/settings/assets/io_device-243d33bb.js index 6509739434..0d67791e25 100644 --- a/web/settings/assets/io_device-bf86df01.js +++ b/web/settings/assets/io_device-243d33bb.js @@ -1 +1 @@ -import{O as m}from"./IoConfig-32908457.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-1cca615d.js";import"./vendor-bootstrap-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-ec9426ac.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-1763d060.js";import"./vendor-bootstrap-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-1241e1de.js b/web/settings/assets/io_device-f9bf8194.js similarity index 95% rename from web/settings/assets/io_device-1241e1de.js rename to web/settings/assets/io_device-f9bf8194.js index 4bd46436b5..a796304a79 100644 --- a/web/settings/assets/io_device-1241e1de.js +++ b/web/settings/assets/io_device-f9bf8194.js @@ -1 +1 @@ -import{O as m}from"./IoConfig-32908457.js";import{C as f}from"./index-1cca615d.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-ec9426ac.js";import{C as f}from"./index-1763d060.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-b2641cdd.js b/web/settings/assets/monitoring-97e3024f.js similarity index 90% rename from web/settings/assets/monitoring-b2641cdd.js rename to web/settings/assets/monitoring-97e3024f.js index 1732e67f6b..318d9f74c1 100644 --- a/web/settings/assets/monitoring-b2641cdd.js +++ b/web/settings/assets/monitoring-97e3024f.js @@ -1 +1 @@ -import{M as l}from"./DataManagement-148ac42e.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-1cca615d.js";import"./vendor-bootstrap-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-49c08fca.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-1763d060.js";import"./vendor-bootstrap-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-9841da1d.js b/web/settings/assets/vehicle-02f318fa.js similarity index 89% rename from web/settings/assets/vehicle-9841da1d.js rename to web/settings/assets/vehicle-02f318fa.js index dfd82934a7..b25c8f3d79 100644 --- a/web/settings/assets/vehicle-9841da1d.js +++ b/web/settings/assets/vehicle-02f318fa.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-787f3bfc.js b/web/settings/assets/vehicle-11965fde.js similarity index 94% rename from web/settings/assets/vehicle-787f3bfc.js rename to web/settings/assets/vehicle-11965fde.js index 9cb150728b..cef5d25fb3 100644 --- a/web/settings/assets/vehicle-787f3bfc.js +++ b/web/settings/assets/vehicle-11965fde.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-45e21bb0.js b/web/settings/assets/vehicle-2004f3f9.js similarity index 89% rename from web/settings/assets/vehicle-45e21bb0.js rename to web/settings/assets/vehicle-2004f3f9.js index 9250929f1e..0b132af0e8 100644 --- a/web/settings/assets/vehicle-45e21bb0.js +++ b/web/settings/assets/vehicle-2004f3f9.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-b92b422f.js b/web/settings/assets/vehicle-2a84e047.js similarity index 86% rename from web/settings/assets/vehicle-b92b422f.js rename to web/settings/assets/vehicle-2a84e047.js index c865fea1fa..e213410567 100644 --- a/web/settings/assets/vehicle-b92b422f.js +++ b/web/settings/assets/vehicle-2a84e047.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-ef066406.js b/web/settings/assets/vehicle-425ad7a8.js similarity index 91% rename from web/settings/assets/vehicle-ef066406.js rename to web/settings/assets/vehicle-425ad7a8.js index f198093979..4a16fb32bc 100644 --- a/web/settings/assets/vehicle-ef066406.js +++ b/web/settings/assets/vehicle-425ad7a8.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-33d2d5c7.js b/web/settings/assets/vehicle-5af4243c.js similarity index 91% rename from web/settings/assets/vehicle-33d2d5c7.js rename to web/settings/assets/vehicle-5af4243c.js index 1b3a2c01be..e6edc226ae 100644 --- a/web/settings/assets/vehicle-33d2d5c7.js +++ b/web/settings/assets/vehicle-5af4243c.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-eeed6298.js b/web/settings/assets/vehicle-5d1017e5.js similarity index 95% rename from web/settings/assets/vehicle-eeed6298.js rename to web/settings/assets/vehicle-5d1017e5.js index e718d12976..9aded14a05 100644 --- a/web/settings/assets/vehicle-eeed6298.js +++ b/web/settings/assets/vehicle-5d1017e5.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-73e5c35f.js b/web/settings/assets/vehicle-64a3f2b3.js similarity index 89% rename from web/settings/assets/vehicle-73e5c35f.js rename to web/settings/assets/vehicle-64a3f2b3.js index 6ec244af0b..ff8dff6102 100644 --- a/web/settings/assets/vehicle-73e5c35f.js +++ b/web/settings/assets/vehicle-64a3f2b3.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-175f718f.js b/web/settings/assets/vehicle-7307a31c.js similarity index 88% rename from web/settings/assets/vehicle-175f718f.js rename to web/settings/assets/vehicle-7307a31c.js index 3b2c4f2e49..b67a73ecf6 100644 --- a/web/settings/assets/vehicle-175f718f.js +++ b/web/settings/assets/vehicle-7307a31c.js @@ -1 +1 @@ -import{V as o}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-d5404980.js b/web/settings/assets/vehicle-8d8ec137.js similarity index 89% rename from web/settings/assets/vehicle-d5404980.js rename to web/settings/assets/vehicle-8d8ec137.js index 57868b2c4a..8bf117dbd7 100644 --- a/web/settings/assets/vehicle-d5404980.js +++ b/web/settings/assets/vehicle-8d8ec137.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-192b425f.js b/web/settings/assets/vehicle-a5530aec.js similarity index 94% rename from web/settings/assets/vehicle-192b425f.js rename to web/settings/assets/vehicle-a5530aec.js index 1cbbe5d1b4..2b621e7826 100644 --- a/web/settings/assets/vehicle-192b425f.js +++ b/web/settings/assets/vehicle-a5530aec.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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}; +import{V as u}from"./VehicleConfig-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-4b9183d1.js b/web/settings/assets/vehicle-b3dabea7.js similarity index 94% rename from web/settings/assets/vehicle-4b9183d1.js rename to web/settings/assets/vehicle-b3dabea7.js index fea25a0d29..a919b471cc 100644 --- a/web/settings/assets/vehicle-4b9183d1.js +++ b/web/settings/assets/vehicle-b3dabea7.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-d64ab485.js b/web/settings/assets/vehicle-b3e4e926.js similarity index 82% rename from web/settings/assets/vehicle-d64ab485.js rename to web/settings/assets/vehicle-b3e4e926.js index 601063f7d2..48b565ab8b 100644 --- a/web/settings/assets/vehicle-d64ab485.js +++ b/web/settings/assets/vehicle-b3e4e926.js @@ -1 +1 @@ -import{V as n}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-0f98217e.js b/web/settings/assets/vehicle-b7b67d07.js similarity index 96% rename from web/settings/assets/vehicle-0f98217e.js rename to web/settings/assets/vehicle-b7b67d07.js index 1e08205ea8..2bac865bbf 100644 --- a/web/settings/assets/vehicle-0f98217e.js +++ b/web/settings/assets/vehicle-b7b67d07.js @@ -1 +1 @@ -import{V as s}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-d7dbfeda.js b/web/settings/assets/vehicle-bf8e52f9.js similarity index 97% rename from web/settings/assets/vehicle-d7dbfeda.js rename to web/settings/assets/vehicle-bf8e52f9.js index 4c38d6d65a..4f2b8a75bf 100644 --- a/web/settings/assets/vehicle-d7dbfeda.js +++ b/web/settings/assets/vehicle-bf8e52f9.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-1cca615d.js";import{V as y}from"./VehicleConfig-efa0f512.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-1763d060.js";import{V as y}from"./VehicleConfig-81c923a6.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-64419ad6.js b/web/settings/assets/vehicle-c4ab7d9f.js similarity index 97% rename from web/settings/assets/vehicle-64419ad6.js rename to web/settings/assets/vehicle-c4ab7d9f.js index eea55884bf..239dfe9e2a 100644 --- a/web/settings/assets/vehicle-64419ad6.js +++ b/web/settings/assets/vehicle-c4ab7d9f.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-4a478c94.js b/web/settings/assets/vehicle-c842cea3.js similarity index 94% rename from web/settings/assets/vehicle-4a478c94.js rename to web/settings/assets/vehicle-c842cea3.js index 0d96b65598..39e0665db0 100644 --- a/web/settings/assets/vehicle-4a478c94.js +++ b/web/settings/assets/vehicle-c842cea3.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-40c4c072.js b/web/settings/assets/vehicle-ca6ab3a7.js similarity index 93% rename from web/settings/assets/vehicle-40c4c072.js rename to web/settings/assets/vehicle-ca6ab3a7.js index 1a547875fd..7f7ef2c2a3 100644 --- a/web/settings/assets/vehicle-40c4c072.js +++ b/web/settings/assets/vehicle-ca6ab3a7.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-639219f4.js b/web/settings/assets/vehicle-dac193d6.js similarity index 89% rename from web/settings/assets/vehicle-639219f4.js rename to web/settings/assets/vehicle-dac193d6.js index e425f72f51..15e0a886d7 100644 --- a/web/settings/assets/vehicle-639219f4.js +++ b/web/settings/assets/vehicle-dac193d6.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-089fe2c7.js b/web/settings/assets/vehicle-e0592cce.js similarity index 92% rename from web/settings/assets/vehicle-089fe2c7.js rename to web/settings/assets/vehicle-e0592cce.js index ec592c27fe..83e172c7cd 100644 --- a/web/settings/assets/vehicle-089fe2c7.js +++ b/web/settings/assets/vehicle-e0592cce.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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-5d983a49.js b/web/settings/assets/vehicle-fe0cd714.js similarity index 97% rename from web/settings/assets/vehicle-5d983a49.js rename to web/settings/assets/vehicle-fe0cd714.js index fa33326e6e..1aab0ae300 100644 --- a/web/settings/assets/vehicle-5d983a49.js +++ b/web/settings/assets/vehicle-fe0cd714.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfig-efa0f512.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-1cca615d.js";import"./vendor-bootstrap-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-81c923a6.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-1763d060.js";import"./vendor-bootstrap-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/webTheme-0483cecc.js b/web/settings/assets/webTheme-632880d9.js similarity index 88% rename from web/settings/assets/webTheme-0483cecc.js rename to web/settings/assets/webTheme-632880d9.js index bbd6a6384a..4ffcea8eb2 100644 --- a/web/settings/assets/webTheme-0483cecc.js +++ b/web/settings/assets/webTheme-632880d9.js @@ -1 +1 @@ -import{W as a}from"./GeneralConfig-38b6a47c.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-1cca615d.js";import"./vendor-bootstrap-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-2436dcce.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-1763d060.js";import"./vendor-bootstrap-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/assets/webTheme-8f09ae08.js b/web/settings/assets/webTheme-c934cd52.js similarity index 95% rename from web/settings/assets/webTheme-8f09ae08.js rename to web/settings/assets/webTheme-c934cd52.js index 3439facfbd..b8cb938393 100644 --- a/web/settings/assets/webTheme-8f09ae08.js +++ b/web/settings/assets/webTheme-c934cd52.js @@ -1 +1 @@ -import{W as p}from"./GeneralConfig-38b6a47c.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-1cca615d.js";import"./vendor-bootstrap-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-2436dcce.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-1763d060.js";import"./vendor-bootstrap-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/index.html b/web/settings/index.html index 7bea8f7a45..b7a7ce3ad1 100644 --- a/web/settings/index.html +++ b/web/settings/index.html @@ -7,7 +7,7 @@ openWB - + diff --git a/web/version b/web/version index ffbcecbca0..387a2813d5 100644 --- a/web/version +++ b/web/version @@ -1 +1 @@ -2.1.8-Patch.1 +2.1.8-Patch.2