diff --git a/.github/workflows/build_display_theme_colors.yml b/.github/workflows/build_display_theme_colors.yml index be2cd029a0..67c4dfe93d 100644 --- a/.github/workflows/build_display_theme_colors.yml +++ b/.github/workflows/build_display_theme_colors.yml @@ -15,10 +15,10 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Setup Node.js (v20) + - name: Setup Node.js (v22) uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 cache: npm cache-dependency-path: packages/modules/display_themes/colors/source/package-lock.json diff --git a/data/config/apache/apache-proplus.conf b/data/config/apache/apache-proplus.conf new file mode 100644 index 0000000000..c20f2b6a35 --- /dev/null +++ b/data/config/apache/apache-proplus.conf @@ -0,0 +1,12 @@ +# openwb-version:1 +Listen 8080 + + + ProxyPreserveHost On + + # Proxy for Pro: + ProxyPass / http://192.168.192.50:80/ + ProxyPassReverse / http://192.168.192.50:80/ + + ServerName localhost + diff --git a/data/config/dhcpcd.conf b/data/config/dhcpcd.conf new file mode 100644 index 0000000000..ff4c9c491f --- /dev/null +++ b/data/config/dhcpcd.conf @@ -0,0 +1,8 @@ +# openwb - begin +# openwb-version:1 +# second interface connected to internal pro +interface eth1 +static ip_address=192.168.192.150 +# static routers=192.168.192.150 +# static domain_name_servers=8.8.8.8 +# openwb - end diff --git a/data/config/dnsmasq.conf b/data/config/dnsmasq.conf new file mode 100644 index 0000000000..3f8a75d4dc --- /dev/null +++ b/data/config/dnsmasq.conf @@ -0,0 +1,9 @@ +# openwb-version:2 +# activate DHCP-Server on second interface only +interface=eth1 + +# IPv4 pool and lease time +dhcp-range=192.168.192.50,192.168.192.50,1m + +# DNS +dhcp-option=option:dns-server,192.168.192.150 diff --git a/docs/Ladepunkte.md b/docs/Ladepunkte.md index b8e5b0c53e..0e6e8a695a 100644 --- a/docs/Ladepunkte.md +++ b/docs/Ladepunkte.md @@ -4,7 +4,7 @@ Die Einstellungen für Ladepunkte unterteilen sich in die spezifischen Einstellu Beim Hinzufügen eines Ladepunkts muss zunächst dessen Typ ausgewählt werden. Danach wird Ladepunkt-spezifisches, wie z.B. die Anzahl angeschlossener Phasen oder eine verbaute Phasenumschaltung, konfiguriert. -In dem Ladepunkt-Profil sind die Einstellungen zum automatischen Sperren (Autolock) und für die Freigabe von Ladepunkten durch ID-Tags enthalten. Ein Ladepunkt-Profil kann vom Benutzer mehreren Ladepunkte zugewiesen werden, sodass die Einstellungen für jeden Ladepunkte einzeln oder für eine Gruppe zugewiesen werden können. +In dem Ladepunkt-Profil sind die Einstellungen zum Sperren nach Uhrzeit und für die Freigabe von Ladepunkten durch ID-Tags enthalten. Ein Ladepunkt-Profil kann vom Benutzer mehreren Ladepunkte zugewiesen werden, sodass die Einstellungen für jeden Ladepunkte einzeln oder für eine Gruppe zugewiesen werden können. Das Erfassen eines RFID-Tags (verbauter RFID-Leser erforderlich) oder die Pin-Eingabe (Display erforderlich, Eingabefeld muss im Steuerungsmodus 'secondary' aktiviert werden) sowie die automatische Fahrzeugerkennung der openWB Pro (muss in den Einstellungen aktiviert werden) werden gleich verarbeitet. diff --git a/docs/Manueller SoC.md b/docs/Manueller SoC.md new file mode 100644 index 0000000000..a3cb0aba80 --- /dev/null +++ b/docs/Manueller SoC.md @@ -0,0 +1,17 @@ +# SoC-Modul des Fahrzeugs „Manueller SoC“ + +Stehen keine anderen SoC-Module für Dein Fahrzeug zur Verfügung, so kann das Modul „Manueller SoC“ genutzt werden. + +Der Anfangs-SoC des Fahrzeugs muss hierbei manuell angegeben werden, z.B. über ein integriertes Display oder über das Webinterface. Während der Ladung wird anhand der Angaben aus dem Fahrzeugprofil zur Akkukapazität und des Wirkungsgrades der Ladeelektronik der aktuelle SoC berechnet. + +Zunächst müssen also diese Angaben im Fahrzeugprofil (Angaben zur Batterie) erfasst werden: + +![Fahrzeugprofil: Angaben zu Batterie]() + +Dann wird im Fahrzeug das SoC Modul „Manueller SoC“ ausgewählt: + +![Einstellungen Manueller SoC]() + +Nun kann der Anfangs-SoC auf der Hauptseite angegeben werden: + +![Eingabe manueller SoC]() diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md index 3dc9b17cc6..0cce569b42 100644 --- a/docs/_Sidebar.md +++ b/docs/_Sidebar.md @@ -4,6 +4,7 @@ * [Grundkonzept](https://github.com/openWB/core/wiki/Grundkonzept) * [Ladepunkte](https://github.com/openWB/core/wiki/Ladepunkte) * [Fahrzeuge](https://github.com/openWB/core/wiki/Fahrzeuge) + * [Manueller SoC](https://github.com/openWB/core/wiki/Manueller-SoC) * [Lademodi](https://github.com/openWB/core/wiki/Lademodi) * Zähler * [Grundsätzliches zu Zählern](https://github.com/openWB/core/wiki/Grundsätzliches-zu-Zählern) diff --git a/docs/pictures/Manueller SoC_Angaben zu Batterie.png b/docs/pictures/Manueller SoC_Angaben zu Batterie.png new file mode 100644 index 0000000000..3950267b4f Binary files /dev/null and b/docs/pictures/Manueller SoC_Angaben zu Batterie.png differ diff --git a/docs/pictures/Manueller SoC_Eingabe.png b/docs/pictures/Manueller SoC_Eingabe.png new file mode 100644 index 0000000000..e68800b4ee Binary files /dev/null and b/docs/pictures/Manueller SoC_Eingabe.png differ diff --git a/docs/pictures/Manueller SoC_Einstellungen.png b/docs/pictures/Manueller SoC_Einstellungen.png new file mode 100644 index 0000000000..9db3d15477 Binary files /dev/null and b/docs/pictures/Manueller SoC_Einstellungen.png differ diff --git a/docs/samples/sample_modbus/bat.py b/docs/samples/sample_modbus/bat.py index e28d497e55..eaee6a3f48 100644 --- a/docs/samples/sample_modbus/bat.py +++ b/docs/samples/sample_modbus/bat.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +from typing import Optional from dataclass_utils import dataclass_from_dict from modules.common.abstract_device import AbstractBat from modules.common.component_state import BatState @@ -11,15 +12,16 @@ class SampleBat(AbstractBat): - def __init__(self, device_id: int, component_config: SampleBatSetup) -> None: + def __init__(self, device_id: int, component_config: SampleBatSetup, client: ModbusTcpClient_) -> None: self.__device_id = device_id self.component_config = dataclass_from_dict(SampleBatSetup, component_config) self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="speicher") self.store = get_bat_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) + self.client = client - def update(self, client: ModbusTcpClient_) -> None: - power = client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit) + def update(self) -> None: + power = self.client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit) imported, exported = self.sim_counter.sim_count(power) bat_state = BatState( @@ -30,5 +32,12 @@ def update(self, client: ModbusTcpClient_) -> None: ) self.store.set(bat_state) + def set_power_limit(self, power_limit: Optional[int]) -> None: + # Methode entfernen, falls der Speicher keine Steuerung der Ladeleistung unterstützt + # Wenn der Speicher die Steuerung der Ladeleistung unterstützt, muss bei Übergabe einer Zahl auf aktive + # Speichersteurung umgeschaltet werden, sodass der Speicher mit der übergebenen Leistung lädt/entlädt. Wird + # None übergeben, muss der Speicher die Null-Punkt-Ausregelung selbst übernehmen. + self.client.write_registers(reg, power_limit) + component_descriptor = ComponentDescriptor(configuration_factory=SampleBatSetup) diff --git a/docs/samples/sample_modbus/counter.py b/docs/samples/sample_modbus/counter.py index 1b878663c6..5b9650c742 100644 --- a/docs/samples/sample_modbus/counter.py +++ b/docs/samples/sample_modbus/counter.py @@ -11,15 +11,16 @@ class SampleCounter(AbstractCounter): - def __init__(self, device_id: int, component_config: SampleCounterSetup) -> None: + def __init__(self, device_id: int, component_config: SampleCounterSetup, client: ModbusTcpClient_) -> None: self.__device_id = device_id self.component_config = dataclass_from_dict(SampleCounterSetup, component_config) self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="bezug") self.store = get_counter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) + self.client = client - def update(self, client: ModbusTcpClient_): - power = client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit) + def update(self): + power = self.client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit) imported, exported = self.sim_counter.sim_count(power) counter_state = CounterState( diff --git a/docs/samples/sample_modbus/device.py b/docs/samples/sample_modbus/device.py index 22b1957857..07f9a88026 100644 --- a/docs/samples/sample_modbus/device.py +++ b/docs/samples/sample_modbus/device.py @@ -18,19 +18,19 @@ def create_device(device_config: Sample): def create_bat_component(component_config: SampleBatSetup): - return SampleBat(device_config.id, component_config, device_config.configuration.ip_address) + return SampleBat(device_config.id, component_config, device_config.configuration.ip_address, client) def create_counter_component(component_config: SampleCounterSetup): - return SampleCounter(device_config.id, component_config, device_config.configuration.ip_address) + return SampleCounter(device_config.id, component_config, device_config.configuration.ip_address, client) def create_inverter_component(component_config: SampleInverterSetup): - return SampleInverter(device_config.id, component_config, device_config.configuration.ip_address) + return SampleInverter(device_config.id, component_config, device_config.configuration.ip_address, client) def update_components(components: Iterable[Union[SampleBat, SampleCounter, SampleInverter]]): - with client as c: + with client: for component in components: with SingleComponentUpdateContext(component.fault_state): - component.update(c) + component.update() try: client = ModbusTcpClient_(device_config.configuration.ip_address, device_config.configuration.port) diff --git a/docs/samples/sample_modbus/inverter.py b/docs/samples/sample_modbus/inverter.py index 28011f5fd4..4cf593294a 100644 --- a/docs/samples/sample_modbus/inverter.py +++ b/docs/samples/sample_modbus/inverter.py @@ -11,15 +11,16 @@ class SampleInverter(AbstractInverter): - def __init__(self, device_id: int, component_config: SampleInverterSetup) -> None: + def __init__(self, device_id: int, component_config: SampleInverterSetup, client: ModbusTcpClient_) -> None: self.__device_id = device_id self.component_config = dataclass_from_dict(SampleInverterSetup, component_config) self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="pv") self.store = get_inverter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) + self.client = client - def update(self, client: ModbusTcpClient_) -> None: - power = client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit) + def update(self) -> None: + power = self.client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit) exported = self.sim_counter.sim_count(power)[1] inverter_state = InverterState( diff --git a/packages/control/algorithm/additional_current_test.py b/packages/control/algorithm/additional_current_test.py index 1336f19718..89c552aeff 100644 --- a/packages/control/algorithm/additional_current_test.py +++ b/packages/control/algorithm/additional_current_test.py @@ -5,7 +5,8 @@ from control.chargepoint.chargepoint import Chargepoint, ChargepointData from control.chargepoint.chargepoint_data import Set from control.chargepoint.control_parameter import ControlParameter -from control.ev import ChargeTemplate, Ev +from control.ev.charge_template import ChargeTemplate +from control.ev.ev import Ev from control.loadmanagement import LimitingValue diff --git a/packages/control/algorithm/common.py b/packages/control/algorithm/common.py index c2f8d4eaf7..2e5e2b66f8 100644 --- a/packages/control/algorithm/common.py +++ b/packages/control/algorithm/common.py @@ -126,8 +126,12 @@ def update_raw_data(preferenced_chargepoints: List[Chargepoint], if diff_to_zero is False: if chargepoint.data.control_parameter.min_current < max_target_set_current: - diffs = [chargepoint.data.control_parameter.min_current - - max_target_set_current if required_currents[i] != 0 else 0 for i in range(3)] + if surplus: + diffs = [chargepoint.data.set.target_current - + max_target_set_current if required_currents[i] != 0 else 0 for i in range(3)] + else: + diffs = [chargepoint.data.control_parameter.min_current - + max_target_set_current if required_currents[i] != 0 else 0 for i in range(3)] else: continue else: diff --git a/packages/control/algorithm/common_test.py b/packages/control/algorithm/common_test.py index f422613edd..5435c4ef15 100644 --- a/packages/control/algorithm/common_test.py +++ b/packages/control/algorithm/common_test.py @@ -6,7 +6,7 @@ from control import data from control.algorithm import common from control.chargepoint.chargepoint import Chargepoint -from control.ev import Ev +from control.ev.ev import Ev from control.counter import Counter from control.counter_all import CounterAll @@ -49,6 +49,7 @@ def test_set_current_counterdiff(diff: float, cp.data.control_parameter.required_currents = required_currents cp.data.set.charging_ev_data = ev cp.data.set.current = 6 + cp.data.get.currents = [10]*3 get_counters_to_check_mock = Mock(return_value=["cp0", "cp6"]) monkeypatch.setattr(CounterAll, "get_counters_to_check", get_counters_to_check_mock) data.data.counter_data = {"cp0": Mock(spec=Counter), "cp6": Mock(spec=Counter)} diff --git a/packages/control/algorithm/filter_chargepoints_test.py b/packages/control/algorithm/filter_chargepoints_test.py index 003df60ee4..78a27af9f8 100644 --- a/packages/control/algorithm/filter_chargepoints_test.py +++ b/packages/control/algorithm/filter_chargepoints_test.py @@ -9,8 +9,9 @@ from control.chargemode import Chargemode from control.chargepoint.chargepoint import Chargepoint, ChargepointData from control.chargepoint.chargepoint_data import Log, Set +from control.chargepoint.control_parameter import ControlParameter from control.counter_all import CounterAll -from control.ev import ControlParameter, Ev, EvData, Get +from control.ev.ev import Ev, EvData, Get @dataclass diff --git a/packages/control/algorithm/integration_test/conftest.py b/packages/control/algorithm/integration_test/conftest.py index 9126cbcf59..abf0f02e18 100644 --- a/packages/control/algorithm/integration_test/conftest.py +++ b/packages/control/algorithm/integration_test/conftest.py @@ -9,7 +9,7 @@ from control.chargepoint.chargepoint import Chargepoint from control.counter_all import CounterAll from control.counter import Counter -from control.ev import Ev +from control.ev.ev import Ev from control.pv import Pv from control.chargepoint.chargepoint_state import ChargepointState from test_utils.default_hierarchies import NESTED_HIERARCHY diff --git a/packages/control/algorithm/integration_test/pv_charging_test.py b/packages/control/algorithm/integration_test/pv_charging_test.py index 58dde5085d..c15eda4952 100644 --- a/packages/control/algorithm/integration_test/pv_charging_test.py +++ b/packages/control/algorithm/integration_test/pv_charging_test.py @@ -101,9 +101,9 @@ class ParamsPhaseSwitch(ParamsExpectedSetCurrent, ParamsExpectedCounterSet): raw_power_left: float = 0 raw_currents_left_counter0: List[float] = field(default_factory=currents_list_factory) raw_currents_left_counter6: List[float] = field(default_factory=currents_list_factory) - expected_timestamp_auto_phase_switch_cp3: Optional[str] = None - expected_timestamp_auto_phase_switch_cp4: Optional[str] = None - expected_timestamp_auto_phase_switch_cp5: Optional[str] = None + expected_timestamp_last_phase_switch_cp3: Optional[str] = None + expected_timestamp_last_phase_switch_cp4: Optional[str] = None + expected_timestamp_last_phase_switch_cp5: Optional[str] = None def assert_counter_set(params: ParamsExpectedCounterSet): @@ -243,9 +243,9 @@ def test_surplus(params: ParamsSurplus, all_cp_pv_charging_3p, all_cp_charging_3 raw_power_left=32580, raw_currents_left_counter0=[40]*3, raw_currents_left_counter6=[16]*3, - expected_timestamp_auto_phase_switch_cp3=1652683252.0, - expected_timestamp_auto_phase_switch_cp4=None, - expected_timestamp_auto_phase_switch_cp5=None, + expected_timestamp_last_phase_switch_cp3=1652683252.0, + expected_timestamp_last_phase_switch_cp4=None, + expected_timestamp_last_phase_switch_cp5=None, expected_current_cp3=10, expected_current_cp4=6, expected_current_cp5=6, @@ -257,9 +257,9 @@ def test_surplus(params: ParamsSurplus, all_cp_pv_charging_3p, all_cp_charging_3 raw_power_left=42580, raw_currents_left_counter0=[40]*3, raw_currents_left_counter6=[16]*3, - expected_timestamp_auto_phase_switch_cp3=1652683252.0, - expected_timestamp_auto_phase_switch_cp4=None, - expected_timestamp_auto_phase_switch_cp5=None, + expected_timestamp_last_phase_switch_cp3=1652683252.0, + expected_timestamp_last_phase_switch_cp4=None, + expected_timestamp_last_phase_switch_cp5=None, expected_current_cp3=32, expected_current_cp4=6, expected_current_cp5=6, @@ -281,6 +281,8 @@ def test_phase_switch(all_cp_pv_charging_3p, all_cp_charging_3p, monkeypatch): monkeypatch.setattr(algorithm_data.data.general_data, "get_phases_chargemode", mockget_get_phases_chargemode) data.data.cp_data[ "cp3"].data.control_parameter.state = ChargepointState.CHARGING_ALLOWED + data.data.cp_data[ + "cp3"].data.control_parameter.timestamp_last_phase_switch = 1652682252 # execution Algorithm().calc_current() @@ -288,14 +290,7 @@ def test_phase_switch(all_cp_pv_charging_3p, all_cp_charging_3p, monkeypatch): # evaluation assert_expected_current(cases_phase_switch[0]) assert data.data.cp_data[ - "cp3"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[ - 0].expected_timestamp_auto_phase_switch_cp3 - assert data.data.cp_data[ - "cp4"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[ - 0].expected_timestamp_auto_phase_switch_cp4 - assert data.data.cp_data[ - "cp5"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[ - 0].expected_timestamp_auto_phase_switch_cp5 + "cp3"].data.control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY assert_counter_set(cases_phase_switch[0]) @@ -311,6 +306,7 @@ def test_phase_switch_1p_3p(all_cp_pv_charging_1p, monkeypatch): monkeypatch.setattr(algorithm_data.data.general_data, "get_phases_chargemode", mockget_get_phases_chargemode) data.data.cp_data["cp3"].data.get.currents = [32, 0, 0] data.data.cp_data["cp3"].data.get.power = 7360 + 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] @@ -320,11 +316,4 @@ def test_phase_switch_1p_3p(all_cp_pv_charging_1p, monkeypatch): # evaluation assert_counter_set(cases_phase_switch[1]) assert data.data.cp_data[ - "cp3"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[ - 1].expected_timestamp_auto_phase_switch_cp3 - assert data.data.cp_data[ - "cp4"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[ - 1].expected_timestamp_auto_phase_switch_cp4 - assert data.data.cp_data[ - "cp5"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[ - 1].expected_timestamp_auto_phase_switch_cp5 + "cp3"].data.control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY diff --git a/packages/control/algorithm/surplus_controlled.py b/packages/control/algorithm/surplus_controlled.py index 6a384ca7b2..51e0aaa1c7 100644 --- a/packages/control/algorithm/surplus_controlled.py +++ b/packages/control/algorithm/surplus_controlled.py @@ -58,7 +58,7 @@ def _set(self, available_for_cp = common.available_current_for_cp(cp, counts, available_currents, missing_currents) if counter.get_control_range_state(feed_in_yield) == ControlRangeState.MIDDLE: pv_charging = data.data.general_data.data.chargemode_config.pv_charging - dif_to_old_current = available_for_cp + cp.data.set.target_current - cp.set_current_prev + dif_to_old_current = available_for_cp + cp.data.set.target_current - cp.data.set.current_prev # Wenn die Differenz zwischen altem und neuem Soll-Strom größer als der Regelbereich ist, trotzdem # nachregeln, auch wenn der Regelbereich eingehalten wird. Sonst würde zB nicht berücksichtigt werden, # wenn noch ein Fahrzeug dazu kommmt. @@ -66,7 +66,7 @@ def _set(self, current = available_for_cp else: # Nicht mehr freigeben, wie das Lastmanagement vorgibt - current = min(cp.set_current_prev - cp.data.set.target_current, available_for_cp) + current = min(cp.data.set.current_prev - cp.data.set.target_current, available_for_cp) else: current = available_for_cp @@ -110,7 +110,7 @@ def _limit_adjust_current(self, chargepoint: Chargepoint, new_current: float) -> MAX_CURRENT = 30 msg = None nominal_difference = chargepoint.data.set.charging_ev_data.ev_template.data.nominal_difference - if chargepoint.data.set.charging_ev_data.chargemode_changed: + if chargepoint.data.set.charging_ev_data.chargemode_changed or chargepoint.data.get.charge_state is False: return new_current else: # Um max. +/- 5A pro Zyklus regeln @@ -136,20 +136,15 @@ def _fix_deviating_evse_current(self, chargepoint: Chargepoint) -> float: genutzten Soll-Strom hochgeregelt werden. Wenn Fahrzeuge entgegen der Norm mehr Ladeleistung beziehen, als freigegeben, wird entsprechend weniger freigegeben, da sonst uU die untere Grenze für die Abschaltschwelle nicht erreicht wird. - Wenn die Soll-Stromstärke nicht angepasst worden ist, nicht den ungenutzten EVSE-Strom aufschlagen. Wenn das - Auto nur in 1A-Schritten regeln kann, rundet es und lädt immer etwas mehr oder weniger als Soll-Strom. Schlägt - man den EVSE-Strom auf, pendelt die Regelung um diesen 1A-Schritt.""" - MAX_DEVIATION = 1.1 + Wenn die Soll-Stromstärke nicht angepasst worden ist, nicht den ungenutzten EVSE-Strom aufschlagen.""" evse_current = chargepoint.data.get.evse_current - if evse_current and chargepoint.data.set.current != chargepoint.set_current_prev: - formatted_evse_current = evse_current if evse_current < 32 else evse_current / 100 - offset = formatted_evse_current - max(chargepoint.data.get.currents) - if abs(offset) >= MAX_DEVIATION: - current_with_offset = chargepoint.data.set.current + offset - current = min(current_with_offset, chargepoint.data.control_parameter.required_current) - if current != chargepoint.data.set.current: - log.debug(f"Ungenutzten Soll-Strom aufschlagen ergibt {current}A.") - chargepoint.data.set.current = current + if evse_current and chargepoint.data.set.current != chargepoint.data.set.current_prev: + offset = evse_current - max(chargepoint.data.get.currents) + current_with_offset = chargepoint.data.set.current + offset + current = min(current_with_offset, chargepoint.data.control_parameter.required_current) + if current != chargepoint.data.set.current: + log.debug(f"Ungenutzten Soll-Strom aufschlagen ergibt {current}A.") + chargepoint.data.set.current = current def check_submode_pv_charging(self) -> None: evu_counter = data.data.counter_all_data.get_evu_counter() diff --git a/packages/control/algorithm/surplus_controlled_test.py b/packages/control/algorithm/surplus_controlled_test.py index 608f02994c..6e50210534 100644 --- a/packages/control/algorithm/surplus_controlled_test.py +++ b/packages/control/algorithm/surplus_controlled_test.py @@ -11,7 +11,8 @@ from control.chargepoint.chargepoint_data import Get, Set from control.chargepoint.chargepoint_template import CpTemplate from control.chargepoint.control_parameter import ControlParameter -from control.ev import ChargeTemplate, Ev +from control.ev.charge_template import ChargeTemplate +from control.ev.ev import Ev @pytest.fixture(autouse=True) @@ -63,7 +64,7 @@ def setup_cp(cp: Chargepoint, feed_in_limit: bool) -> Chargepoint: def test_limit_adjust_current(new_current: float, expected_current: float, monkeypatch): # setup cp = Chargepoint(0, None) - cp.data = ChargepointData(get=Get(currents=[15]*3)) + cp.data = ChargepointData(get=Get(charge_state=True, currents=[15]*3)) cp.template = CpTemplate() monkeypatch.setattr(Chargepoint, "set_state_and_log", Mock()) @@ -105,7 +106,7 @@ def test_set_required_current_to_max(phases: int, [ pytest.param(None, 6, 6, id="Kein Soll-Strom aus der EVSE ausgelesen"), pytest.param(13, 13, 13, id="Auto lädt mit Soll-Stromstärke"), - pytest.param(12.5, 12.5, 12.5, id="Auto lädt mit 0.5A Abweichung von der Soll-Stromstärke"), + pytest.param(12.5, 12.5, 12.0, id="Auto lädt mit 0.5A Abweichung von der Soll-Stromstärke"), pytest.param(11.8, 11.8, 10.600000000000001, id="Auto lädt mit mehr als Soll-Stromstärke"), pytest.param(14.2, 14.2, 15.399999999999999, id="Auto lädt mit weniger als Soll-Stromstärke"), pytest.param(15, 15, 16, diff --git a/packages/control/auto_phase_switch_test.py b/packages/control/auto_phase_switch_test.py index c206d33087..25531d2e96 100644 --- a/packages/control/auto_phase_switch_test.py +++ b/packages/control/auto_phase_switch_test.py @@ -8,7 +8,7 @@ from control.pv_all import PvAll from control.bat_all import BatAll from control.general import General -from control.ev import Ev +from control.ev.ev import Ev from control import data from control.chargepoint.chargepoint_state import ChargepointState @@ -31,7 +31,7 @@ class Params: def __init__(self, name: str, max_current_single_phase: int, - timestamp_auto_phase_switch: Optional[float], + timestamp_last_phase_switch: Optional[float], phases_to_use: int, required_current: float, evu_surplus: int, @@ -41,11 +41,10 @@ def __init__(self, expected_phases_to_use: int, expected_current: float, expected_state: ChargepointState, - expected_message: Optional[str] = None, - expected_timestamp_auto_phase_switch: Optional[float] = None) -> None: + expected_message: Optional[str] = None) -> None: self.name = name self.max_current_single_phase = max_current_single_phase - self.timestamp_auto_phase_switch = timestamp_auto_phase_switch + self.timestamp_last_phase_switch = timestamp_last_phase_switch self.phases_to_use = phases_to_use self.required_current = required_current self.available_power = evu_surplus @@ -56,67 +55,60 @@ def __init__(self, self.expected_current = expected_current self.expected_state = expected_state self.expected_message = expected_message - self.expected_timestamp_auto_phase_switch = expected_timestamp_auto_phase_switch cases = [ - Params("1to3, enough power, start timer", max_current_single_phase=16, timestamp_auto_phase_switch=None, + Params("1to3, enough power, start timer", max_current_single_phase=16, timestamp_last_phase_switch=1652683202, phases_to_use=1, required_current=6, evu_surplus=800, get_currents=[15.6, 0, 0], get_power=3450, state=ChargepointState.CHARGING_ALLOWED, expected_phases_to_use=1, expected_current=6, - expected_message=Ev.PHASE_SWITCH_DELAY_TEXT.format("Umschaltung von 1 auf 3", "7 Min."), - expected_timestamp_auto_phase_switch=1652683252.0, + expected_message=Ev.PHASE_SWITCH_DELAY_TEXT.format("Umschaltung von 1 auf 3", "4 Min. 10 Sek."), expected_state=ChargepointState.PHASE_SWITCH_DELAY), - Params("1to3, not enough power, start timer", max_current_single_phase=16, timestamp_auto_phase_switch=None, + Params("1to3, not enough power, start timer", max_current_single_phase=16, timestamp_last_phase_switch=1652683202, phases_to_use=1, required_current=6, evu_surplus=300, get_currents=[15.6, 0, 0], get_power=3450, state=ChargepointState.CHARGING_ALLOWED, expected_phases_to_use=1, expected_current=6, expected_state=ChargepointState.CHARGING_ALLOWED), Params("1to3, enough power, timer not expired", max_current_single_phase=16, - timestamp_auto_phase_switch=1652682952.0, phases_to_use=1, required_current=6, + timestamp_last_phase_switch=1652683202.0, phases_to_use=1, required_current=6, evu_surplus=1460, get_currents=[15.6, 0, 0], get_power=3450, state=ChargepointState.PHASE_SWITCH_DELAY, expected_phases_to_use=1, expected_current=6, - expected_message=Ev.PHASE_SWITCH_DELAY_TEXT.format("Umschaltung von 1 auf 3", "2 Min."), - expected_timestamp_auto_phase_switch=1652683252.0, + expected_message=Ev.PHASE_SWITCH_DELAY_TEXT.format("Umschaltung von 1 auf 3", "4 Min. 10 Sek."), expected_state=ChargepointState.PHASE_SWITCH_DELAY), Params("1to3, not enough power, timer not expired", max_current_single_phase=16, - timestamp_auto_phase_switch=1652682952.0, phases_to_use=1, required_current=6, + timestamp_last_phase_switch=1652683202.0, phases_to_use=1, required_current=6, evu_surplus=460, get_currents=[15.6, 0, 0], get_power=3450, state=ChargepointState.PHASE_SWITCH_DELAY, expected_phases_to_use=1, expected_current=6, expected_message=f"Verzögerung für die Umschaltung von 1 auf 3 Phasen abgebrochen{Ev.NOT_ENOUGH_POWER}", - expected_timestamp_auto_phase_switch=1652683252.0, expected_state=ChargepointState.CHARGING_ALLOWED), Params("1to3, enough power, timer expired", max_current_single_phase=16, - timestamp_auto_phase_switch=1652682772.0, phases_to_use=1, required_current=6, + timestamp_last_phase_switch=1652682802.0, phases_to_use=1, required_current=6, evu_surplus=1640, get_currents=[15.6, 0, 0], get_power=3450, state=ChargepointState.PHASE_SWITCH_DELAY, - expected_phases_to_use=3, expected_current=6, expected_state=ChargepointState.PHASE_SWITCH_DELAY_EXPIRED), + expected_phases_to_use=3, expected_current=6, expected_state=ChargepointState.PHASE_SWITCH_AWAITED), - Params("3to1, not enough power, start timer", max_current_single_phase=16, timestamp_auto_phase_switch=None, + Params("3to1, not enough power, start timer", max_current_single_phase=16, timestamp_last_phase_switch=1652683202, phases_to_use=3, required_current=6, evu_surplus=0, get_currents=[4.5, 4.4, 5.8], get_power=3381, state=ChargepointState.CHARGING_ALLOWED, expected_phases_to_use=3, expected_current=6, - expected_message="Umschaltung von 3 auf 1 Phasen in 9 Min..", - expected_timestamp_auto_phase_switch=1652683252.0, + expected_message="Umschaltung von 3 auf 1 Phasen in 4 Min. 10 Sek..", expected_state=ChargepointState.PHASE_SWITCH_DELAY), Params("3to1, not enough power, timer not expired", max_current_single_phase=16, - timestamp_auto_phase_switch=1652682952.0, + timestamp_last_phase_switch=1652683202.0, phases_to_use=3, required_current=6, evu_surplus=-460, get_currents=[4.5, 4.4, 5.8], get_power=3381, state=ChargepointState.PHASE_SWITCH_DELAY, expected_phases_to_use=3, expected_current=6, - expected_message="Umschaltung von 3 auf 1 Phasen in 4 Min..", - expected_timestamp_auto_phase_switch=1652683252.0, + expected_message="Umschaltung von 3 auf 1 Phasen in 4 Min. 10 Sek..", expected_state=ChargepointState.PHASE_SWITCH_DELAY), Params("3to1, enough power, timer not expired", max_current_single_phase=16, - timestamp_auto_phase_switch=1652682952.0, phases_to_use=3, required_current=6, + timestamp_last_phase_switch=1652683202.0, phases_to_use=3, required_current=6, evu_surplus=860, get_currents=[4.5, 4.4, 5.8], get_power=3381, state=ChargepointState.PHASE_SWITCH_DELAY, expected_phases_to_use=3, expected_current=6, expected_message=f"Verzögerung für die Umschaltung von 3 auf 1 Phasen abgebrochen{Ev.ENOUGH_POWER}", - expected_timestamp_auto_phase_switch=1652683252.0, expected_state=ChargepointState.CHARGING_ALLOWED), Params("3to1, not enough power, timer expired", max_current_single_phase=16, - timestamp_auto_phase_switch=1652682592.0, phases_to_use=3, required_current=6, + timestamp_last_phase_switch=1652682802.0, phases_to_use=3, required_current=6, evu_surplus=-460, get_currents=[4.5, 4.4, 5.8], get_power=3381, state=ChargepointState.PHASE_SWITCH_DELAY, expected_phases_to_use=1, expected_current=16, - expected_state=ChargepointState.PHASE_SWITCH_DELAY_EXPIRED), + expected_state=ChargepointState.PHASE_SWITCH_AWAITED), ] @@ -133,7 +125,7 @@ def test_auto_phase_switch(monkeypatch, vehicle: Ev, params: Params): vehicle.ev_template.data.max_current_single_phase = params.max_current_single_phase control_parameter = ControlParameter() - control_parameter.timestamp_auto_phase_switch = params.timestamp_auto_phase_switch + control_parameter.timestamp_last_phase_switch = params.timestamp_last_phase_switch control_parameter.phases = params.phases_to_use control_parameter.required_current = params.required_current control_parameter.state = params.state diff --git a/packages/control/bat_all.py b/packages/control/bat_all.py index b826f786d3..c58c8a396c 100644 --- a/packages/control/bat_all.py +++ b/packages/control/bat_all.py @@ -335,7 +335,7 @@ def get_power_limit(self): power_limit = min(self._max_bat_power_hybrid_system( data.data.bat_data[f"bat{bat_component.component_config.id}"])[0], remaining_power_limit) remaining_power_limit -= power_limit - remaining_power_limit = min(remaining_power_limit, 0) + remaining_power_limit = max(remaining_power_limit, 0) data.data.bat_data[f"bat{bat_component.component_config.id}"].data.set.power_limit = power_limit diff --git a/packages/control/chargepoint/chargepoint.py b/packages/control/chargepoint/chargepoint.py index 5c1c1f955e..4d9407a64e 100644 --- a/packages/control/chargepoint/chargepoint.py +++ b/packages/control/chargepoint/chargepoint.py @@ -29,15 +29,15 @@ from control.chargepoint.control_parameter import ControlParameter, control_parameter_factory from control.chargepoint.charging_type import ChargingType from control.chargepoint.rfid import ChargepointRfidMixin -from control.ev import Ev +from control.ev.ev import Ev from control import phase_switch -from control.chargepoint.chargepoint_state import ChargepointState +from control.chargepoint.chargepoint_state import CHARGING_STATES, ChargepointState from helpermodules.phase_mapping import convert_single_evu_phase_to_cp_phase from helpermodules.pub import Pub from helpermodules import timecheck from helpermodules.utils import thread_handler from modules.common.abstract_chargepoint import AbstractChargepoint -from helpermodules.timecheck import create_timestamp +from helpermodules.timecheck import check_timestamp, create_timestamp def get_chargepoint_config_default() -> dict: @@ -70,9 +70,6 @@ def __init__(self, index: int, event: Optional[threading.Event]): self.template: CpTemplate = None self.chargepoint_module: AbstractChargepoint = None self.num = index - # set current aus dem vorherigen Zyklus, um zu wissen, ob am Ende des Zyklus die Ladung freigegeben wird - # (für Control-Pilot-Unterbrechung) - self.set_current_prev = 0.0 # bestehende Daten auf dem Broker nicht zurücksetzen, daher nicht veröffentlichen self.data: ChargepointData = ChargepointData() self.data.set_event(event) @@ -153,14 +150,14 @@ def _is_autolock_inactive(self) -> Tuple[bool, Optional[str]]: if data.data.optional_data.data.rfid.active: if self.data.get.rfid is None and self.data.set.rfid is None: state = False - message = ("Keine Ladung, da der Ladepunkt durch Autolock gesperrt ist und erst per ID-Tag " - "freigeschaltet werden muss.") + message = ("Keine Ladung, da der Ladepunkt durch Sperren nach Uhrzeit gesperrt ist und erst " + "per ID-Tag freigeschaltet werden muss.") else: state = True message = None else: state = False - message = "Keine Ladung, da Autolock aktiv ist." + message = "Keine Ladung, da Sperren nach Uhrzeit aktiv ist." return state, message def _is_manual_lock_inactive(self) -> Tuple[bool, Optional[str]]: @@ -304,7 +301,9 @@ def _set_values_at_start(self): def remember_previous_values(self): self.data.set.plug_state_prev = self.data.get.plug_state + self.data.set.current_prev = self.data.set.current Pub().pub("openWB/set/chargepoint/"+str(self.num)+"/set/plug_state_prev", self.data.set.plug_state_prev) + Pub().pub("openWB/set/chargepoint/"+str(self.num)+"/set/current_prev", self.data.set.current_prev) def reset_log_data_chargemode_switch(self) -> None: reset_log = Log() @@ -336,7 +335,7 @@ def initiate_control_pilot_interruption(self): if charging_ev.ev_template.data.control_pilot_interruption: if self.data.config.control_pilot_interruption_hw: # Wird die Ladung gestartet? - if self.set_current_prev == 0 and self.data.set.current != 0: + if self.data.set.current_prev == 0 and self.data.set.current != 0: # Die CP-Unterbrechung erfolgt in Threads, da diese länger als ein Zyklus dauert. if thread_handler(threading.Thread( target=self.chargepoint_module.interrupt_cp, @@ -358,21 +357,21 @@ def _is_phase_switch_required(self) -> bool: phase_switch_required = False # Manche EVs brauchen nach der Umschaltung mehrere Zyklen, bis sie mit den drei Phasen laden. Dann darf # nicht zwischendurch eine neue Umschaltung getriggert werden. - if (self.data.control_parameter.state == ChargepointState.CHARGING_ALLOWED or - self.data.control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY_EXPIRED or - self.data.control_parameter.state == ChargepointState.SWITCH_OFF_DELAY): - # Nach Ablauf der Laden aktiv halten Zeit, sollte mit der vorgegebenen Phasenzahl geladen werden. - if ((self.check_deviating_contactor_states(self.data.set.phases_to_use, self.data.get.phases_in_use) or - # Vorgegebene Phasenzahl hat sich geändert - self.check_deviating_contactor_states(self.data.set.phases_to_use, - self.data.control_parameter.phases)) and + if ((((self.data.control_parameter.state == ChargepointState.PHASE_SWITCH_AWAITED or + self.data.control_parameter.state == ChargepointState.SWITCH_OFF_DELAY) and + # Nach Ablauf der Laden aktiv halten Zeit, sollte mit der vorgegebenen Phasenzahl geladen werden. + self.check_deviating_contactor_states(self.data.set.phases_to_use, self.data.get.phases_in_use)) or + # Vorgegebene Phasenzahl hat sich geändert und es wird geladen + (self.check_deviating_contactor_states(self.data.set.phases_to_use, + self.data.control_parameter.phases) and + self.data.control_parameter.state in CHARGING_STATES)) and # Wenn ein Soll-Strom vorgegeben ist, muss das Auto auch laden, damit umgeschaltet wird, sonst # wird zB bei automatischer Umschaltung ständig versucht auf 1 Phase zurück zu schalten, wenn # das Auto bei 3 Phasen voll ist. - ((self.data.set.current != 0 and self.data.get.charge_state) or - (self.data.set.current != 0 and self.set_current_prev == 0) or - self.data.set.current == 0)): - phase_switch_required = True + ((self.data.set.current != 0 and self.data.get.charge_state) or + (self.data.set.current != 0 and self.data.set.current_prev == 0) or + self.data.set.current == 0)): + phase_switch_required = True if (self.data.control_parameter.state == ChargepointState.NO_CHARGING_ALLOWED and (self.check_deviating_contactor_states(self.data.set.phases_to_use, self.data.get.phases_in_use) or # Vorgegebene Phasenzahl hat sich geändert @@ -385,9 +384,7 @@ def _is_phase_switch_required(self) -> bool: # Umschaltung fehlgeschlagen if self.data.set.phases_to_use != self.data.get.phases_in_use: if data.data.general_data.data.chargemode_config.retry_failed_phase_switches: - if self.data.control_parameter.failed_phase_switches <= self.MAX_FAILED_PHASE_SWITCHES: - self.data.control_parameter.failed_phase_switches += 1 - else: + if self.data.control_parameter.failed_phase_switches > self.MAX_FAILED_PHASE_SWITCHES: phase_switch_required = False self.set_state_and_log( "Keine Phasenumschaltung, da die maximale Anzahl an Fehlversuchen erreicht wurde. Die " @@ -398,6 +395,7 @@ def _is_phase_switch_required(self) -> bool: "Keine Phasenumschaltung, da wiederholtes Anstoßen der Umschaltung in den übergreifenden " "Ladeeinstellungen deaktiviert wurde. Die aktuelle " "Phasenzahl wird bis zum Abstecken beibehalten.") + self.data.control_parameter.failed_phase_switches += 1 return phase_switch_required STOP_CHARGING = ", dafür wird die Ladung unterbrochen." @@ -412,17 +410,16 @@ def check_phase_switch_completed(self): # Umschaltung abgeschlossen try: timestamp_not_expired = timecheck.check_timestamp( - self.data.control_parameter.timestamp_perform_phase_switch, + self.data.control_parameter.timestamp_last_phase_switch, 6 + phase_switch_pause - 1) except TypeError: # so wird in jedem Fall die erforderliche Zeit abgewartet - self.data.control_parameter.timestamp_perform_phase_switch = create_timestamp() + self.data.control_parameter.timestamp_last_phase_switch = create_timestamp() timestamp_not_expired = timecheck.check_timestamp( - self.data.control_parameter.timestamp_perform_phase_switch, + self.data.control_parameter.timestamp_last_phase_switch, 6 + phase_switch_pause - 1) if not timestamp_not_expired: log.debug("phase switch running") - self.data.control_parameter.timestamp_perform_phase_switch = None # Aktuelle Ladeleistung und Differenz wieder freigeben. if self.data.set.phases_to_use == 1: evu_counter.data.set.reserved_surplus -= charging_ev.ev_template. \ @@ -440,8 +437,12 @@ def check_phase_switch_completed(self): self.set_state_and_log(message) return if self.data.control_parameter.state == ChargepointState.WAIT_FOR_USING_PHASES: - if phase_switch.phase_switch_thread_alive(self.num) is False: - self.data.control_parameter.state = ChargepointState.CHARGING_ALLOWED + if (phase_switch.phase_switch_thread_alive(self.num) is False and + check_timestamp(self.data.control_parameter.timestamp_charge_start, + charging_ev.ev_template.data.keep_charge_active_duration) is False): + self.data.control_parameter.state = ChargepointState.PHASE_SWITCH_AWAITED + if self._is_phase_switch_required() is False: + self.data.control_parameter.state = ChargepointState.CHARGING_ALLOWED except Exception: log.exception("Fehler in der Ladepunkt-Klasse von "+str(self.num)) @@ -471,7 +472,7 @@ def initiate_phase_switch(self): phase_switch.thread_phase_switch(self) log.debug("start phase switch phases_to_use " + str(self.data.set.phases_to_use) + - "control_parameter phases " + + " control_parameter phases " + str(self.data.control_parameter.phases)) if self.data.control_parameter.phases == 1: message = f"Umschaltung von {self.get_max_phase_hw()} auf 1 Phase{self.STOP_CHARGING}" @@ -484,7 +485,7 @@ def initiate_phase_switch(self): evu_counter.data.set.reserved_surplus += charging_ev. \ ev_template.data.max_current_single_phase * 3 * 230 # Timestamp für die Durchführungsdauer - self.data.control_parameter.timestamp_perform_phase_switch = create_timestamp() + self.data.control_parameter.timestamp_last_phase_switch = create_timestamp() self.set_state_and_log(message) if self.data.set.phases_to_use != self.data.control_parameter.phases: Pub().pub("openWB/set/chargepoint/"+str(self.num)+"/set/phases_to_use", @@ -494,7 +495,7 @@ def initiate_phase_switch(self): else: log.error("Phasenumschaltung an Ladepunkt" + str(self.num) + " nicht möglich, da gerade eine Umschaltung im Gange ist.") - elif self.data.control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY_EXPIRED: + elif self.data.control_parameter.state == ChargepointState.PHASE_SWITCH_AWAITED: # Wenn keine Phasenumschaltung durchgeführt wird, Status auf CHARGING_ALLOWED setzen, sonst # bleibt PHASE_SWITCH_DELAY_EXPIRED stehen. self.data.control_parameter.state = ChargepointState.CHARGING_ALLOWED @@ -517,8 +518,10 @@ def get_phases_by_selected_chargemode(self) -> int: # Wenn keine Umschaltung verbaut ist, die Phasenzahl nehmen, mit der geladen wird. Damit werden zB auch # einphasige EV an dreiphasigen openWBs korrekt berücksichtigt. phases = self.data.get.phases_in_use or self.data.set.phases_to_use - elif (chargemode == 0 and (self.data.set.phases_to_use == self.data.get.phases_in_use or - self.data.get.phases_in_use == 0)): + elif self.data.control_parameter.state == ChargepointState.PERFORMING_PHASE_SWITCH: + phases = self.data.set.phases_to_use + log.debug(f"Umschaltung wird durchgeführt, Phasenzahl nicht ändern {phases}") + elif chargemode == 0: # Wenn die Lademodus-Phasen 0 sind, wird die bisher genutzte Phasenzahl weiter genutzt, # bis der Algorithmus eine Umschaltung vorgibt, zB weil der gewählte Lademodus eine # andere Phasenzahl benötigt oder bei PV-Laden die automatische Umschaltung aktiv ist. @@ -536,9 +539,6 @@ def get_phases_by_selected_chargemode(self) -> int: # phases_target phases = self.data.config.connected_phases log.debug(f"Phasenzahl Lademodus: {phases}") - elif self.data.control_parameter.state == ChargepointState.PERFORMING_PHASE_SWITCH: - phases = self.data.set.phases_to_use - log.debug(f"Umschaltung wird durchgeführt, Phasenzahl nicht ändern {phases}") else: if chargemode == 0: phases = self.data.control_parameter.phases @@ -613,21 +613,16 @@ def set_required_currents(self, required_current: float) -> None: "was ggf eine unnötige Reduktion der Ladeleistung zur Folge hat.") self.data.set.required_power = sum(control_parameter.required_currents) * 230 - def handle_less_power(self): - if self.data.set.current != 0 and self.data.control_parameter.state == ChargepointState.CHARGING_ALLOWED: - nominal_difference = self.data.set.charging_ev_data.ev_template.data.nominal_difference - if self.data.set.current - nominal_difference > max(self.data.get.currents): - if self.data.control_parameter.timestamp_charge_start is None: - self.data.control_parameter.timestamp_charge_start = create_timestamp() - else: - self.data.control_parameter.timestamp_charge_start = None - else: - # Beim Ladestart Timer laufen lassen, manche Fahrzeuge brauchen sehr lange. + def set_timestamp_charge_start(self): + # Beim Ladestart Timer laufen lassen, manche Fahrzeuge brauchen sehr lange. + # Nach dem Algorithmus setzen, sonst steht set current noch nicht fest. + if self.data.control_parameter.timestamp_charge_start is None: + if self.data.set.current_prev == 0 and self.data.set.current != 0: + self.data.control_parameter.timestamp_charge_start = create_timestamp() + elif self.data.set.current == 0: self.data.control_parameter.timestamp_charge_start = None def update_ev(self, ev_list: Dict[str, Ev]) -> None: - # Für Control-Pilot-Unterbrechung set current merken. - self.set_current_prev = self.data.set.current self._validate_rfid() charging_possible = self.is_charging_possible()[0] if charging_possible: @@ -642,8 +637,6 @@ def update_ev(self, ev_list: Dict[str, Ev]) -> None: def update(self, ev_list: Dict[str, Ev]) -> None: try: - # Für Control-Pilot-Unterbrechung set current merken. - self.set_current_prev = self.data.set.current self._validate_rfid() charging_possible, message = self.is_charging_possible() if self.data.get.rfid is not None and self.data.get.plug_state: @@ -677,10 +670,9 @@ def update(self, ev_list: Dict[str, Ev]) -> None: charging_ev.set_submode_changed(self.data.control_parameter, submode) self.set_control_parameter(submode, required_current) self.set_required_currents(required_current) - self.handle_less_power() self.check_phase_switch_completed() - if charging_ev.chargemode_changed: + if charging_ev.chargemode_changed or charging_ev.submode_changed: data.data.counter_all_data.get_evu_counter().reset_switch_on_off( self, charging_ev) charging_ev.reset_phase_switch(self.data.control_parameter) @@ -836,11 +828,19 @@ def cp_ev_chargemode_support_phase_switch(self) -> bool: control_parameter.submode == Chargemode.PV_CHARGING and data.data.general_data.get_phases_chargemode(Chargemode.SCHEDULED_CHARGING.value, control_parameter.submode) == 0) + 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 + (data.data.general_data.data.chargemode_config.retry_failed_phase_switches is False and + self.data.control_parameter.failed_phase_switches == 1)): + failed_phase_switches_reached = True + else: + failed_phase_switches_reached = False return (self.cp_ev_support_phase_switch() and self.data.get.charge_state and (pv_auto_switch or scheduled_auto_switch) and - control_parameter.state == ChargepointState.CHARGING_ALLOWED or - control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY) + (control_parameter.state == ChargepointState.CHARGING_ALLOWED or + control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY) and + failed_phase_switches_reached is False) def cp_ev_support_phase_switch(self) -> bool: return (self.data.config.auto_phase_switch_hw and diff --git a/packages/control/chargepoint/chargepoint_data.py b/packages/control/chargepoint/chargepoint_data.py index a42511116a..9d2f9bb02c 100644 --- a/packages/control/chargepoint/chargepoint_data.py +++ b/packages/control/chargepoint/chargepoint_data.py @@ -4,7 +4,7 @@ from control.chargepoint.chargepoint_template import CpTemplate from control.chargepoint.control_parameter import ControlParameter, control_parameter_factory -from control.ev import Ev +from control.ev.ev import Ev from dataclass_utils.factories import currents_list_factory, empty_dict_factory, voltages_list_factory from helpermodules.constants import NO_ERROR from modules.common.abstract_chargepoint import AbstractChargepoint @@ -103,6 +103,7 @@ class Get: fault_str: str = NO_ERROR fault_state: int = 0 imported: float = 0 + max_evse_current: Optional[int] = None phases_in_use: int = 0 plug_state: bool = False power: float = 0 @@ -138,6 +139,9 @@ class Set: plug_time: Optional[float] = None required_power: float = 0 rfid: Optional[str] = None + # set current aus dem vorherigen Zyklus, um zu wissen, ob am Ende des Zyklus die Ladung freigegeben wird + # (für Control-Pilot-Unterbrechung) + current_prev: float = 0.0 target_current: float = 0 # Soll-Strom aus fest vorgegebener Stromstärke charging_ev_data: Ev = field(default_factory=ev_factory) ocpp_transaction_id: Optional[int] = None @@ -229,6 +233,4 @@ def chargepoint_module(self) -> AbstractChargepoint: ... @property def num(self) -> int: ... @property - def set_current_prev(self) -> float: ... - @property def data(self) -> ChargepointData: ... diff --git a/packages/control/chargepoint/chargepoint_state.py b/packages/control/chargepoint/chargepoint_state.py index 0d2c3bf0b2..43815985df 100644 --- a/packages/control/chargepoint/chargepoint_state.py +++ b/packages/control/chargepoint/chargepoint_state.py @@ -9,14 +9,14 @@ class ChargepointState(IntEnum): CHARGING_ALLOWED = 4 SWITCH_OFF_DELAY = 5 SWITCH_ON_DELAY = 6 - PHASE_SWITCH_DELAY_EXPIRED = 7 + PHASE_SWITCH_AWAITED = 7 CHARGING_STATES = (ChargepointState.PHASE_SWITCH_DELAY, ChargepointState.WAIT_FOR_USING_PHASES, ChargepointState.CHARGING_ALLOWED, ChargepointState.SWITCH_OFF_DELAY, - ChargepointState.PHASE_SWITCH_DELAY_EXPIRED) + ChargepointState.PHASE_SWITCH_AWAITED) PHASE_SWITCH_STATES = (ChargepointState.PHASE_SWITCH_DELAY, ChargepointState.PERFORMING_PHASE_SWITCH, diff --git a/packages/control/chargepoint/chargepoint_state_update.py b/packages/control/chargepoint/chargepoint_state_update.py index 1fbc9e3e4b..0f6c608189 100644 --- a/packages/control/chargepoint/chargepoint_state_update.py +++ b/packages/control/chargepoint/chargepoint_state_update.py @@ -44,7 +44,6 @@ def update(self): cp = copy.deepcopy(self.chargepoint) except TypeError: cp = Chargepoint(self.chargepoint.num, None) - cp.set_current_prev = copy.deepcopy(self.chargepoint.set_current_prev) cp.data = copy.deepcopy(self.chargepoint.data) cp.chargepoint_module = self.chargepoint.chargepoint_module cp.template = copy.deepcopy(self.cp_template_data[f"cpt{self.chargepoint.data.config.template}"]) diff --git a/packages/control/chargepoint/chargepoint_template.py b/packages/control/chargepoint/chargepoint_template.py index 3d70c6ea10..1e70a34af4 100644 --- a/packages/control/chargepoint/chargepoint_template.py +++ b/packages/control/chargepoint/chargepoint_template.py @@ -4,7 +4,7 @@ from typing import Dict, List from control import data -from control import ev as ev_module +from control.ev import ev as ev_module from control.chargepoint.charging_type import ChargingType from dataclass_utils.factories import empty_dict_factory, empty_list_factory from helpermodules.abstract_plans import AutolockPlan @@ -71,7 +71,7 @@ def is_locked_by_autolock(self, charge_state: bool) -> bool: else: return False else: - log.info("Keine Sperrung durch Autolock, weil keine Zeitpläne konfiguriert sind.") + log.info("Keine Sperrung durch Sperren nach Zeitplan, weil keine Zeitpläne konfiguriert sind.") return False else: return False diff --git a/packages/control/chargepoint/chargepoint_test.py b/packages/control/chargepoint/chargepoint_test.py index e5e71a0ebe..a976fb547c 100644 --- a/packages/control/chargepoint/chargepoint_test.py +++ b/packages/control/chargepoint/chargepoint_test.py @@ -4,7 +4,7 @@ from control.chargepoint.chargepoint import Chargepoint from control.chargepoint.chargepoint_template import CpTemplate -from control.ev import Ev +from control.ev.ev import Ev @pytest.mark.parametrize("phase_1, phases, expected_required_currents", diff --git a/packages/control/chargepoint/control_parameter.py b/packages/control/chargepoint/control_parameter.py index c1abeb035d..f419f4f012 100644 --- a/packages/control/chargepoint/control_parameter.py +++ b/packages/control/chargepoint/control_parameter.py @@ -26,12 +26,10 @@ 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"}) - timestamp_auto_phase_switch: Optional[float] = field( - default=None, metadata={"topic": "control_parameter/timestamp_auto_phase_switch"}) timestamp_charge_start: Optional[float] = field( default=None, metadata={"topic": "control_parameter/timestamp_charge_start"}) - timestamp_perform_phase_switch: Optional[float] = field( - default=None, metadata={"topic": "control_parameter/timestamp_perform_phase_switch"}) + timestamp_last_phase_switch: float = field( + default=0, metadata={"topic": "control_parameter/timestamp_last_phase_switch"}) timestamp_switch_on_off: Optional[float] = field( default=None, metadata={"topic": "control_parameter/timestamp_switch_on_off"}) diff --git a/packages/control/chargepoint/get_phases_test.py b/packages/control/chargepoint/get_phases_test.py index 4f8f5ce47d..9dd39adead 100644 --- a/packages/control/chargepoint/get_phases_test.py +++ b/packages/control/chargepoint/get_phases_test.py @@ -5,7 +5,7 @@ from control.chargepoint.chargepoint import Chargepoint from control.chargepoint.chargepoint_template import CpTemplate, get_chargepoint_template_default -from control.ev import Ev +from control.ev.ev import Ev from control.general import General from control import data @@ -35,7 +35,7 @@ def __init__(self, phases_in_use: int, imported_since_plugged: float, expected_phases: int, - timestamp_perform_phase_switch: Optional[str] = None, + timestamp_last_phase_switch: Optional[str] = None, charge_state: bool = False) -> None: self.name = name self.connected_phases = connected_phases @@ -45,7 +45,7 @@ def __init__(self, self.phases_in_use = phases_in_use self.imported_since_plugged = imported_since_plugged self.expected_phases = expected_phases - self.timestamp_perform_phase_switch = timestamp_perform_phase_switch + self.timestamp_last_phase_switch = timestamp_last_phase_switch self.charge_state = charge_state @@ -61,7 +61,7 @@ def __init__(self, expected_phases=1, charge_state=True), Params("don't change during phase switch", connected_phases=3, auto_phase_switch_hw=True, prevent_phase_switch=False, chargemode_phases=0, phases_in_use=1, imported_since_plugged=0, - expected_phases=1, timestamp_perform_phase_switch="2022/05/11, 15:00:02"), + expected_phases=1, timestamp_last_phase_switch="2022/05/11, 15:00:02"), Params("auto phase during charge 3", connected_phases=3, auto_phase_switch_hw=True, prevent_phase_switch=False, chargemode_phases=0, phases_in_use=1, imported_since_plugged=0, expected_phases=1, charge_state=True), @@ -94,7 +94,7 @@ def test_get_phases_by_selected_chargemode(monkeypatch, cp: Chargepoint, params: cp.data.set.log.imported_since_plugged = params.imported_since_plugged charging_ev_data = cp.data.set.charging_ev_data charging_ev_data.ev_template.data.prevent_phase_switch = params.prevent_phase_switch - cp.data.control_parameter.timestamp_perform_phase_switch = params.timestamp_perform_phase_switch + cp.data.control_parameter.timestamp_last_phase_switch = params.timestamp_last_phase_switch cp.data.control_parameter.phases = params.phases_in_use # execution diff --git a/packages/control/counter.py b/packages/control/counter.py index 6a5079c55b..80531f12a9 100644 --- a/packages/control/counter.py +++ b/packages/control/counter.py @@ -8,7 +8,7 @@ from control import data from control.chargemode import Chargemode -from control.ev import Ev +from control.ev.ev import Ev from control.chargepoint.chargepoint import Chargepoint from control.chargepoint.chargepoint_state import ChargepointState from dataclass_utils.factories import currents_list_factory, voltages_list_factory @@ -120,7 +120,8 @@ def _get_loadmanagement_state(self) -> None: if self.data.get.fault_state == FaultStateLevel.ERROR: if self.data.set.error_timer is None: self.data.set.error_timer = timecheck.create_timestamp() - if timecheck.check_timestamp(self.data.set.error_timer, self.MAX_EVU_ERROR_DURATION) is False: + return True + elif timecheck.check_timestamp(self.data.set.error_timer, self.MAX_EVU_ERROR_DURATION) is False: for cp in connected_cps: if self.num == data.data.counter_all_data.get_id_evu_counter(): data.data.cp_data[cp].set_state_and_log( @@ -334,7 +335,7 @@ def switch_on_timer_expired(self, chargepoint: Chargepoint) -> None: control_parameter.timestamp_switch_on_off = None self.data.set.reserved_surplus -= pv_config.switch_on_threshold*control_parameter.phases msg = self.SWITCH_ON_EXPIRED.format(pv_config.switch_on_threshold) - control_parameter.state = ChargepointState.CHARGING_ALLOWED + control_parameter.state = ChargepointState.WAIT_FOR_USING_PHASES if chargepoint.data.set.charging_ev_data.charge_template.data.chargemode.pv_charging.feed_in_limit: feed_in_yield = pv_config.feed_in_yield @@ -492,6 +493,7 @@ def reset_switch_on_off(self, chargepoint: Chargepoint, charging_ev: Ev): else: evu_counter.data.set.released_surplus -= (pv_config.switch_on_threshold * chargepoint.data.control_parameter.phases) + chargepoint.data.control_parameter.state = ChargepointState.NO_CHARGING_ALLOWED except Exception: log.exception("Fehler im allgemeinen PV-Modul") diff --git a/packages/control/counter_test.py b/packages/control/counter_test.py index b2326c93d9..4b10d1335f 100644 --- a/packages/control/counter_test.py +++ b/packages/control/counter_test.py @@ -7,7 +7,8 @@ from control import data from control.chargepoint.chargepoint import Chargepoint from control.counter import Counter, CounterData, Get -from control.ev import ChargeTemplate, Ev +from control.ev.ev import Ev +from control.ev.charge_template import ChargeTemplate from control.general import General from control.chargepoint.chargepoint_state import ChargepointState from modules.common.fault_state import FaultStateLevel diff --git a/packages/control/data.py b/packages/control/data.py index 60228e0a36..68bf8b7da4 100644 --- a/packages/control/data.py +++ b/packages/control/data.py @@ -20,7 +20,9 @@ from helpermodules.subdata import SubData from control.counter import Counter from control.counter_all import CounterAll -from control.ev import ChargeTemplate, Ev, EvTemplate +from control.ev.charge_template import ChargeTemplate +from control.ev.ev import Ev +from control.ev.ev_template import EvTemplate from control.general import General from control.optional import Optional from modules.common.abstract_device import AbstractDevice @@ -333,7 +335,6 @@ def __copy_cp_data(self) -> None: except TypeError: self.cp_data[cp] = Chargepoint(SubData.cp_data[cp].chargepoint.num, None) self.cp_data[cp].template = copy.deepcopy(SubData.cp_data[cp].chargepoint.template) - self.cp_data[cp].set_current_prev = copy.deepcopy(SubData.cp_data[cp].chargepoint.set_current_prev) self.cp_data[cp].data = copy.deepcopy(SubData.cp_data[cp].chargepoint.data) self.cp_data[cp].chargepoint_module = SubData.cp_data[cp].chargepoint.chargepoint_module self.cp_all_data = copy.deepcopy(SubData.cp_all_data) diff --git a/packages/control/ev.py b/packages/control/ev.py deleted file mode 100644 index ada4191105..0000000000 --- a/packages/control/ev.py +++ /dev/null @@ -1,983 +0,0 @@ -""" EV-Logik -ermittelt, den Ladestrom, den das EV gerne zur Verfügung hätte. - -In den control Parametern wird sich der Lademodus, Submodus, Priorität, Phasen und Stromstärke gemerkt, -mit denen das EV aktuell in der Regelung berücksichtigt wird. Bei der Ermittlung der benötigten Strom- -stärke wird auch geprüft, ob sich an diesen Parametern etwas geändert hat. Falls ja, muss das EV -in der Regelung neu priorisiert werden und eine neue Zuteilung des Stroms erhalten. -""" -from dataclasses import asdict, dataclass, field -import logging -import traceback -from typing import List, Dict, Optional, Tuple - -from control import data -from control.chargepoint.chargepoint_state import ChargepointState, PHASE_SWITCH_STATES -from control.chargepoint.charging_type import ChargingType -from control.chargepoint.control_parameter import ControlParameter -from control.limiting_value import LimitingValue -from dataclass_utils.factories import empty_dict_factory, empty_list_factory -from helpermodules.abstract_plans import Limit, limit_factory, ScheduledChargingPlan, TimeChargingPlan -from helpermodules import timecheck -from helpermodules.constants import NO_ERROR -from modules.common.abstract_vehicle import VehicleUpdateData -from modules.common.configurable_vehicle import ConfigurableVehicle - -log = logging.getLogger(__name__) - - -def get_vehicle_default() -> dict: - return { - "charge_template": 0, - "ev_template": 0, - "name": "Fahrzeug", - "info": { - "manufacturer": None, - "model": None, - }, - "tag_id": [], - "get/soc": 0 - } - - -def get_new_charge_template() -> dict: - ct_default = asdict(ChargeTemplateData()) - ct_default["chargemode"]["scheduled_charging"].pop("plans") - ct_default["time_charging"].pop("plans") - return ct_default - - -def get_charge_template_default() -> dict: - ct_default = asdict(ChargeTemplateData(name="Standard-Lade-Profil")) - ct_default["chargemode"]["scheduled_charging"].pop("plans") - ct_default["time_charging"].pop("plans") - return ct_default - -# Avoid anti-pattern: mutable default arguments - - -@dataclass -class ScheduledCharging: - plans: Dict[int, ScheduledChargingPlan] = field(default_factory=empty_dict_factory, metadata={ - "topic": ""}) - - -@dataclass -class TimeCharging: - active: bool = False - plans: Dict[int, TimeChargingPlan] = field(default_factory=empty_dict_factory, metadata={ - "topic": ""}) - - -@dataclass -class InstantCharging: - current: int = 10 - dc_current: float = 145 - limit: Limit = field(default_factory=limit_factory) - - -@dataclass -class PvCharging: - dc_min_current: float = 145 - dc_min_soc_current: float = 145 - min_soc_current: int = 10 - min_current: int = 0 - feed_in_limit: bool = False - min_soc: int = 0 - max_soc: int = 100 - - -def pv_charging_factory() -> PvCharging: - return PvCharging() - - -def scheduled_charging_factory() -> ScheduledCharging: - return ScheduledCharging() - - -def instant_charging_factory() -> InstantCharging: - return InstantCharging() - - -@dataclass -class Chargemode: - selected: str = "stop" - pv_charging: PvCharging = field(default_factory=pv_charging_factory) - scheduled_charging: ScheduledCharging = field(default_factory=scheduled_charging_factory) - instant_charging: InstantCharging = field(default_factory=instant_charging_factory) - - -def time_charging_factory() -> TimeCharging: - return TimeCharging() - - -def chargemode_factory() -> Chargemode: - return Chargemode() - - -@dataclass -class Et: - active: bool = False - max_price: float = 0.0002 - - -def et_factory() -> Et: - return Et() - - -@dataclass -class ChargeTemplateData: - name: str = "Lade-Profil" - prio: bool = False - load_default: bool = False - et: Et = field(default_factory=et_factory) - time_charging: TimeCharging = field(default_factory=time_charging_factory) - chargemode: Chargemode = field(default_factory=chargemode_factory) - - -def charge_template_data_factory() -> ChargeTemplateData: - return ChargeTemplateData() - - -@dataclass -class EvTemplateData: - dc_min_current: int = 0 - dc_max_current: int = 0 - name: str = "Fahrzeug-Profil" - max_current_multi_phases: int = 16 - max_phases: int = 3 - phase_switch_pause: int = 2 - prevent_phase_switch: bool = False - prevent_charge_stop: bool = False - control_pilot_interruption: bool = False - control_pilot_interruption_duration: int = 4 - average_consump: float = 17000 - min_current: int = 6 - max_current_single_phase: int = 16 - battery_capacity: float = 82000 - efficiency: float = 90 - nominal_difference: float = 1 - keep_charge_active_duration: int = 40 - - -def ev_template_data_factory() -> EvTemplateData: - return EvTemplateData() - - -@dataclass -class EvTemplate: - """ Klasse mit den EV-Daten - """ - - data: EvTemplateData = field(default_factory=ev_template_data_factory, metadata={ - "topic": "config"}) - et_num: int = 0 - - -def ev_template_factory() -> EvTemplate: - return EvTemplate() - - -@dataclass -class Set: - soc_error_counter: int = field( - default=0, metadata={"topic": "set/soc_error_counter"}) - - -def set_factory() -> Set: - return Set() - - -@dataclass -class Get: - soc: Optional[int] = field(default=None, metadata={"topic": "get/soc"}) - soc_timestamp: Optional[float] = field( - default=None, metadata={"topic": "get/soc_timestamp"}) - force_soc_update: bool = field(default=False, metadata={ - "topic": "get/force_soc_update"}) - range: Optional[float] = field(default=None, metadata={"topic": "get/range"}) - fault_state: int = field(default=0, metadata={"topic": "get/fault_state"}) - fault_str: str = field(default=NO_ERROR, metadata={"topic": "get/fault_str"}) - - -def get_factory() -> Get: - return Get() - - -@dataclass -class EvData: - set: Set = field(default_factory=set_factory) - charge_template: int = field(default=0, metadata={"topic": "charge_template"}) - ev_template: int = field(default=0, metadata={"topic": "ev_template"}) - name: str = field(default="neues Fahrzeug", metadata={"topic": "name"}) - tag_id: List[str] = field(default_factory=empty_list_factory, metadata={ - "topic": "tag_id"}) - get: Get = field(default_factory=get_factory) - - -class Ev: - """Logik des EV - """ - - def __init__(self, index: int): - try: - self.ev_template: EvTemplate = EvTemplate() - self.charge_template: ChargeTemplate = ChargeTemplate(0) - self.soc_module: ConfigurableVehicle = None - self.chargemode_changed = False - self.submode_changed = False - self.num = index - self.data = EvData() - except Exception: - log.exception("Fehler im ev-Modul "+str(self.num)) - - def soc_interval_expired(self, vehicle_update_data: VehicleUpdateData) -> bool: - request_soc = False - if self.data.get.soc_timestamp is None: - # Initiale Abfrage - request_soc = True - else: - if vehicle_update_data.plug_state is True or self.soc_module.general_config.request_only_plugged is False: - if (vehicle_update_data.charge_state is True or - (self.data.set.soc_error_counter < 3 and self.data.get.fault_state == 2)): - interval = self.soc_module.general_config.request_interval_charging - else: - interval = self.soc_module.general_config.request_interval_not_charging - # Zeitstempel prüfen, ob wieder abgefragt werden muss. - if timecheck.check_timestamp(self.data.get.soc_timestamp, interval-5) is False: - # Zeit ist abgelaufen - request_soc = True - return request_soc - - def get_required_current(self, - control_parameter: ControlParameter, - imported: float, - max_phases_hw: int, - phase_switch_supported: bool, - charging_type: str) -> Tuple[bool, Optional[str], str, float, int]: - """ ermittelt, ob und mit welchem Strom das EV geladen werden soll (unabhängig vom Lastmanagement) - - Parameter - --------- - imported_since_mode_switch: float - seit dem letzten Lademodi-Wechsel geladene Energie. - Return - ------ - state: bool - Soll geladen werden? - message: str - Nachricht, warum nicht geladen werden soll - submode: str - Lademodus, in dem tatsächlich geladen wird - required_current: int - Strom, der nach Ladekonfiguration benötigt wird - """ - phases = None - required_current = None - submode = None - message = None - state = True - try: - if self.charge_template.data.chargemode.selected == "scheduled_charging": - if control_parameter.imported_at_plan_start is None: - control_parameter.imported_at_plan_start = imported - used_amount = imported - control_parameter.imported_at_plan_start - plan_data = self.charge_template.scheduled_charging_recent_plan( - self.data.get.soc, - self.ev_template, - control_parameter.phases, - used_amount, - max_phases_hw, - phase_switch_supported, - charging_type) - soc_request_interval_offset = 0 - if plan_data: - name = self.charge_template.data.chargemode.scheduled_charging.plans[plan_data.num].name - # Wenn mit einem neuen Plan geladen wird, muss auch die Energiemenge von neuem gezählt werden. - if (self.charge_template.data.chargemode.scheduled_charging.plans[plan_data.num].limit. - selected == "amount" and - name != control_parameter.current_plan): - control_parameter.imported_at_plan_start = imported - # Wenn der SoC ein paar Minuten alt ist, kann der Termin trotzdem gehalten werden. - # Zielladen kann nicht genauer arbeiten, als das Abfrageintervall vom SoC. - if (self.soc_module and - self.charge_template.data.chargemode. - scheduled_charging.plans[plan_data.num].limit.selected == "soc"): - soc_request_interval_offset = self.soc_module.general_config.request_interval_charging - control_parameter.current_plan = name - else: - control_parameter.current_plan = None - required_current, submode, message, phases = self.charge_template.scheduled_charging_calc_current( - plan_data, - self.data.get.soc, - used_amount, - control_parameter.phases, - control_parameter.min_current, - soc_request_interval_offset) - - # Wenn Zielladen auf Überschuss wartet, prüfen, ob Zeitladen aktiv ist. - if (submode != "instant_charging" and - self.charge_template.data.time_charging.active): - if control_parameter.imported_at_plan_start is None: - control_parameter.imported_at_plan_start = imported - used_amount = imported - control_parameter.imported_at_plan_start - tmp_current, tmp_submode, tmp_message, name = self.charge_template.time_charging( - self.data.get.soc, - used_amount, - charging_type - ) - # Info vom Zielladen erhalten - message = f"{message or ''} {tmp_message or ''}".strip() - if tmp_current > 0: - control_parameter.current_plan = name - # Wenn mit einem neuen Plan geladen wird, muss auch die Energiemenge von neuem gezählt werden. - if name != control_parameter.current_plan: - control_parameter.imported_at_plan_start = imported - required_current = tmp_current - submode = tmp_submode - if (required_current == 0) or (required_current is None): - if self.charge_template.data.chargemode.selected == "instant_charging": - # Wenn der Submode auf stop gestellt wird, wird auch die Energiemenge seit Wechsel des Modus - # zurückgesetzt, dann darf nicht die Energiemenge erneute geladen werden. - if control_parameter.imported_instant_charging is None: - control_parameter.imported_instant_charging = imported - used_amount = imported - control_parameter.imported_instant_charging - required_current, submode, message = self.charge_template.instant_charging( - self.data.get.soc, - used_amount, - charging_type) - elif self.charge_template.data.chargemode.selected == "pv_charging": - required_current, submode, message = self.charge_template.pv_charging( - self.data.get.soc, control_parameter.min_current, charging_type) - elif self.charge_template.data.chargemode.selected == "standby": - # Text von Zeit-und Zielladen nicht überschreiben. - if message is None: - required_current, submode, message = self.charge_template.standby() - else: - required_current, submode, _ = self.charge_template.standby() - elif self.charge_template.data.chargemode.selected == "stop": - required_current, submode, message = self.charge_template.stop() - if submode == "stop" or submode == "standby" or (self.charge_template.data.chargemode.selected == "stop"): - state = False - if phases is None: - phases = control_parameter.phases - return state, message, submode, required_current, phases - except Exception as e: - log.exception("Fehler im ev-Modul "+str(self.num)) - return (False, f"Kein Ladevorgang, da ein Fehler aufgetreten ist: {' '.join(e.args)}", "stop", 0, - control_parameter.phases) - - def set_chargemode_changed(self, control_parameter: ControlParameter, submode: str) -> None: - if ((submode == "time_charging" and control_parameter.chargemode != "time_charging") or - (submode != "time_charging" and - control_parameter.chargemode != self.charge_template.data.chargemode.selected)): - self.chargemode_changed = True - log.debug("Änderung des Lademodus") - else: - self.chargemode_changed = False - - def set_submode_changed(self, control_parameter: ControlParameter, submode: str) -> None: - self.submode_changed = (submode != control_parameter.submode) - - def check_min_max_current(self, - control_parameter: ControlParameter, - required_current: float, - phases: int, - charging_type: str, - pv: bool = False,) -> Tuple[float, Optional[str]]: - """ prüft, ob der gesetzte Ladestrom über dem Mindest-Ladestrom und unter dem Maximal-Ladestrom des EVs liegt. - Falls nicht, wird der Ladestrom auf den Mindest-Ladestrom bzw. den Maximal-Ladestrom des EV gesetzt. - Wenn PV-Laden aktiv ist, darf die Stromstärke nicht unter den PV-Mindeststrom gesetzt werden. - """ - msg = None - # Überprüfung bei 0 (automatische Umschaltung) erfolgt nach der Prüfung der Phasenumschaltung, wenn fest - # steht, mit vielen Phasen geladen werden soll. - if phases != 0: - # EV soll/darf nicht laden - if required_current != 0: - if not pv: - if charging_type == ChargingType.AC.value: - min_current = self.ev_template.data.min_current - else: - min_current = self.ev_template.data.dc_min_current - else: - min_current = control_parameter.required_current - if required_current < min_current: - required_current = min_current - msg = ("Die Einstellungen in dem Fahrzeug-Profil beschränken den Strom auf " - f"mindestens {required_current} A.") - else: - if charging_type == ChargingType.AC.value: - if phases == 1: - max_current = self.ev_template.data.max_current_single_phase - else: - max_current = self.ev_template.data.max_current_multi_phases - else: - max_current = self.ev_template.data.dc_max_current - if required_current > max_current: - required_current = max_current - msg = ("Die Einstellungen in dem Fahrzeug-Profil beschränken den Strom auf " - f"maximal {required_current} A.") - return required_current, msg - - CURRENT_OUT_OF_NOMINAL_DIFFERENCE = (", da das Fahrzeug nicht mit der vorgegebenen Stromstärke +/- der erlaubten " - + "Stromabweichung aus dem Fahrzeug-Profil/Minimalen Dauerstrom lädt.") - ENOUGH_POWER = ", da ausreichend Überschuss für mehrphasiges Laden zur Verfügung steht." - NOT_ENOUGH_POWER = ", da nicht ausreichend Überschuss für mehrphasiges Laden zur Verfügung steht." - - def _check_phase_switch_conditions(self, - control_parameter: ControlParameter, - get_currents: List[float], - get_power: float, - max_current_cp: int, - limit: LimitingValue) -> Tuple[bool, Optional[str]]: - # Manche EV laden mit 6.1A bei 6A Soll-Strom - min_current = (max(control_parameter.min_current, control_parameter.required_current) + - self.ev_template.data.nominal_difference) - max_current = (min(self.ev_template.data.max_current_single_phase, max_current_cp) - - self.ev_template.data.nominal_difference) - phases_in_use = control_parameter.phases - pv_config = data.data.general_data.data.chargemode_config.pv_charging - max_phases_ev = self.ev_template.data.max_phases - if self.charge_template.data.chargemode.pv_charging.feed_in_limit: - feed_in_yield = pv_config.feed_in_yield - else: - feed_in_yield = 0 - all_surplus = data.data.counter_all_data.get_evu_counter().get_usable_surplus(feed_in_yield) - required_surplus = control_parameter.min_current * max_phases_ev * 230 - get_power - condition_1_to_3 = (((max(get_currents) > max_current and - all_surplus > required_surplus) or limit == LimitingValue.UNBALANCED_LOAD.value) and - phases_in_use == 1) - condition_3_to_1 = max(get_currents) < min_current and all_surplus <= 0 and phases_in_use > 1 - if condition_1_to_3 or condition_3_to_1: - return True, None - else: - if phases_in_use > 1 and all_surplus > 0: - return False, self.ENOUGH_POWER - elif phases_in_use == 1 and all_surplus < required_surplus: - return False, self.NOT_ENOUGH_POWER - else: - return False, self.CURRENT_OUT_OF_NOMINAL_DIFFERENCE - - PHASE_SWITCH_DELAY_TEXT = '{} Phasen in {}.' - - def auto_phase_switch(self, - control_parameter: ControlParameter, - cp_num: int, - get_currents: List[float], - get_power: float, - max_current_cp: int, - max_phases: int, - limit: LimitingValue) -> Tuple[int, float, Optional[str]]: - message = None - current = control_parameter.required_current - timestamp_auto_phase_switch = control_parameter.timestamp_auto_phase_switch - phases_to_use = control_parameter.phases - phases_in_use = control_parameter.phases - pv_config = data.data.general_data.data.chargemode_config.pv_charging - cm_config = data.data.general_data.data.chargemode_config - if self.charge_template.data.chargemode.pv_charging.feed_in_limit: - feed_in_yield = pv_config.feed_in_yield - else: - feed_in_yield = 0 - all_surplus = data.data.counter_all_data.get_evu_counter().get_usable_surplus(feed_in_yield) - if phases_in_use == 1: - direction_str = f"Umschaltung von 1 auf {max_phases}" - delay = cm_config.phase_switch_delay * 60 - required_reserved_power = (control_parameter.min_current * max_phases * 230 - - self.ev_template.data.max_current_single_phase * 230) - - new_phase = max_phases - new_current = control_parameter.min_current - else: - direction_str = f"Umschaltung von {max_phases} auf 1" - delay = (16 - cm_config.phase_switch_delay) * 60 - # Es kann einphasig mit entsprechend niedriger Leistung gestartet werden. - required_reserved_power = 0 - new_phase = 1 - new_current = self.ev_template.data.max_current_single_phase - - log.debug( - f'Genutzter Strom: {max(get_currents)}A, Überschuss: {all_surplus}W, benötigte neue Leistung: ' - f'{required_reserved_power}W') - # Wenn gerade umgeschaltet wird, darf kein Timer gestartet werden. - if not self.ev_template.data.prevent_phase_switch: - condition, condition_msg = self._check_phase_switch_conditions(control_parameter, - get_currents, - get_power, - max_current_cp, - limit) - if control_parameter.state not in PHASE_SWITCH_STATES: - if condition: - # Umschaltverzögerung starten - timestamp_auto_phase_switch = timecheck.create_timestamp() - # Wenn nach der Umschaltung weniger Leistung benötigt wird, soll während der Verzögerung keine - # neuen eingeschaltet werden. - data.data.counter_all_data.get_evu_counter( - ).data.set.reserved_surplus += max(0, required_reserved_power) - message = self.PHASE_SWITCH_DELAY_TEXT.format( - direction_str, - timecheck.convert_timestamp_delta_to_time_string(timestamp_auto_phase_switch, delay)) - control_parameter.state = ChargepointState.PHASE_SWITCH_DELAY - elif condition_msg: - log.debug(f"Keine Phasenumschaltung{condition_msg}") - else: - if condition: - # Timer laufen lassen - if timecheck.check_timestamp(timestamp_auto_phase_switch, delay): - message = self.PHASE_SWITCH_DELAY_TEXT.format( - direction_str, - timecheck.convert_timestamp_delta_to_time_string(timestamp_auto_phase_switch, delay)) - else: - timestamp_auto_phase_switch = None - data.data.counter_all_data.get_evu_counter( - ).data.set.reserved_surplus -= max(0, required_reserved_power) - phases_to_use = new_phase - current = new_current - log.debug("Phasenumschaltung kann nun durchgeführt werden.") - control_parameter.state = ChargepointState.PHASE_SWITCH_DELAY_EXPIRED - else: - timestamp_auto_phase_switch = None - data.data.counter_all_data.get_evu_counter( - ).data.set.reserved_surplus -= max(0, required_reserved_power) - message = f"Verzögerung für die {direction_str} Phasen abgebrochen{condition_msg}" - control_parameter.state = ChargepointState.CHARGING_ALLOWED - - if message: - log.info(f"LP {cp_num}: {message}") - if timestamp_auto_phase_switch != control_parameter.timestamp_auto_phase_switch: - control_parameter.timestamp_auto_phase_switch = timestamp_auto_phase_switch - return phases_to_use, current, message - - def reset_phase_switch(self, control_parameter: ControlParameter): - """ Zurücksetzen der Zeitstempel und reservierten Leistung. - - Die Phasenumschaltung kann nicht abgebrochen werden! - """ - if control_parameter.timestamp_auto_phase_switch is not None: - control_parameter.timestamp_auto_phase_switch = None - # Wenn der Timer läuft, ist den Control-Parametern die alte Phasenzahl hinterlegt. - if control_parameter.phases == 1: - reserved = control_parameter.required_current * \ - 3 * 230 - self.ev_template.data.max_current_single_phase * 230 - data.data.counter_all_data.get_evu_counter().data.set.reserved_surplus -= reserved - log.debug( - "Zurücksetzen der reservierten Leistung für die Phasenumschaltung. reservierte Leistung: " + - str(data.data.counter_all_data.get_evu_counter().data.set.reserved_surplus)) - else: - reserved = self.ev_template.data.max_current_single_phase * \ - 230 - control_parameter.required_current * 3 * 230 - data.data.counter_all_data.get_evu_counter().data.set.reserved_surplus -= reserved - log.debug( - "Zurücksetzen der reservierten Leistung für die Phasenumschaltung. reservierte Leistung: " + - str(data.data.counter_all_data.get_evu_counter().data.set.reserved_surplus)) - - def load_default_profile(self): - """ prüft, ob nach dem Abstecken das Standardprofil geladen werden soll und lädt dieses ggf.. - """ - pass - - def lock_cp(self): - """prüft, ob nach dem Abstecken der LP gesperrt werden soll und sperrt diesen ggf.. - """ - pass - - -@dataclass -class SelectedPlan: - remaining_time: float = 0 - available_current: float = 14 - duration: float = 0 - max_current: int = 16 - missing_amount: float = 0 - phases: int = 1 - num: int = 0 - - -@dataclass -class ChargeTemplate: - """ Klasse der Lade-Profile - """ - ct_num: int - data: ChargeTemplateData = field(default_factory=charge_template_data_factory, metadata={ - "topic": ""}) - - BUFFER = -1200 # nach mehr als 20 Min Überschreitung wird der Termin als verpasst angesehen - CHARGING_PRICE_EXCEEDED = "Keine Ladung, da der aktuelle Strompreis über dem maximalen Strompreis liegt." - - TIME_CHARGING_NO_PLAN_CONFIGURED = "Keine Ladung, da keine Zeitfenster für Zeitladen konfiguriert sind." - TIME_CHARGING_NO_PLAN_ACTIVE = "Keine Ladung, da kein Zeitfenster für Zeitladen aktiv ist." - TIME_CHARGING_SOC_REACHED = "Kein Zeitladen, da der Soc bereits erreicht wurde." - TIME_CHARGING_AMOUNT_REACHED = "Kein Zeitladen, da die Energiemenge bereits geladen wurde." - - def time_charging(self, - soc: Optional[float], - used_amount_time_charging: float, - charging_type: str) -> Tuple[int, str, Optional[str], Optional[str]]: - """ prüft, ob ein Zeitfenster aktiv ist und setzt entsprechend den Ladestrom - """ - message = None - try: - if self.data.time_charging.plans: - plan = timecheck.check_plans_timeframe(self.data.time_charging.plans) - if plan is not None: - current = plan.current if charging_type == ChargingType.AC.value else plan.dc_current - if self.data.et.active and data.data.optional_data.et_provider_available(): - if not data.data.optional_data.et_price_lower_than_limit(self.data.et.max_price): - return 0, "stop", self.CHARGING_PRICE_EXCEEDED, plan.name - if plan.limit.selected == "none": # kein Limit konfiguriert, mit konfigurierter Stromstärke laden - return current, "time_charging", message, plan.name - elif plan.limit.selected == "soc": # SoC Limit konfiguriert - if soc: - if soc < plan.limit.soc: - return current, "time_charging", message, plan.name # Limit nicht erreicht - else: - return 0, "stop", self.TIME_CHARGING_SOC_REACHED, plan.name # Limit erreicht - else: - return plan.current, "time_charging", message, plan.name - elif plan.limit.selected == "amount": # Energiemengenlimit konfiguriert - if used_amount_time_charging < plan.limit.amount: - return current, "time_charging", message, plan.name # Limit nicht erreicht - else: - return 0, "stop", self.TIME_CHARGING_AMOUNT_REACHED, plan.name # Limit erreicht - else: - raise TypeError(f'{plan.limit.selected} unbekanntes Zeitladen-Limit.') - else: - message = self.TIME_CHARGING_NO_PLAN_ACTIVE - else: - message = self.TIME_CHARGING_NO_PLAN_CONFIGURED - log.debug(message) - return 0, "stop", message, None - except Exception: - log.exception("Fehler im ev-Modul "+str(self.ct_num)) - return 0, "stop", "Keine Ladung, da da ein interner Fehler aufgetreten ist: "+traceback.format_exc(), None - - INSTANT_CHARGING_SOC_REACHED = "Kein Sofortladen, da der Soc bereits erreicht wurde." - INSTANT_CHARGING_AMOUNT_REACHED = "Kein Sofortladen, da die Energiemenge bereits geladen wurde." - - def instant_charging(self, - soc: Optional[float], - imported_instant_charging: float, - charging_type: str) -> Tuple[int, str, Optional[str]]: - """ prüft, ob die Lademengenbegrenzung erreicht wurde und setzt entsprechend den Ladestrom. - """ - message = None - try: - instant_charging = self.data.chargemode.instant_charging - if charging_type == ChargingType.AC.value: - current = instant_charging.current - else: - current = instant_charging.dc_current - if self.data.et.active and data.data.optional_data.et_provider_available(): - if not data.data.optional_data.et_price_lower_than_limit(self.data.et.max_price): - return 0, "stop", self.CHARGING_PRICE_EXCEEDED - if instant_charging.limit.selected == "none": - return current, "instant_charging", message - elif instant_charging.limit.selected == "soc": - if soc: - if soc < instant_charging.limit.soc: - return current, "instant_charging", message - else: - return 0, "stop", self.INSTANT_CHARGING_SOC_REACHED - else: - return current, "instant_charging", message - elif instant_charging.limit.selected == "amount": - if imported_instant_charging < self.data.chargemode.instant_charging.limit.amount: - return current, "instant_charging", message - else: - return 0, "stop", self.INSTANT_CHARGING_AMOUNT_REACHED - else: - raise TypeError(f'{instant_charging.limit.selected} unbekanntes Sofortladen-Limit.') - except Exception: - log.exception("Fehler im ev-Modul "+str(self.ct_num)) - return 0, "stop", "Keine Ladung, da da ein interner Fehler aufgetreten ist: "+traceback.format_exc() - - PV_CHARGING_SOC_REACHED = "Keine Ladung, da der maximale Soc bereits erreicht wurde." - PV_CHARGING_SOC_CHARGING = ("Ladung evtl. auch ohne PV-Überschuss, da der Mindest-SoC des Fahrzeugs noch nicht " - "erreicht wurde.") - PV_CHARGING_MIN_CURRENT_CHARGING = "Ladung evtl. auch ohne PV-Überschuss, da minimaler Dauerstrom aktiv ist." - - def pv_charging(self, soc: Optional[float], min_current: int, charging_type: str) -> Tuple[int, str, Optional[str]]: - """ prüft, ob Min-oder Max-Soc erreicht wurden und setzt entsprechend den Ladestrom. - """ - message = None - try: - pv_charging = self.data.chargemode.pv_charging - if soc is None or soc < pv_charging.max_soc: - if pv_charging.min_soc != 0 and soc is not None: - if soc < pv_charging.min_soc: - if charging_type == ChargingType.AC.value: - current = pv_charging.min_soc_current - else: - current = pv_charging.dc_min_soc_current - return current, "instant_charging", self.PV_CHARGING_SOC_CHARGING - if charging_type == ChargingType.AC.value: - pv_min_current = pv_charging.min_current - else: - pv_min_current = pv_charging.dc_min_current - if pv_min_current == 0: - # nur PV; Ampere darf nicht 0 sein, wenn geladen werden soll - return min_current, "pv_charging", message - else: - # Min PV - return pv_min_current, "instant_charging", self.PV_CHARGING_MIN_CURRENT_CHARGING - else: - return 0, "stop", self.PV_CHARGING_SOC_REACHED - except Exception: - log.exception("Fehler im ev-Modul "+str(self.ct_num)) - return 0, "stop", "Keine Ladung, da ein interner Fehler aufgetreten ist: "+traceback.format_exc() - - def scheduled_charging_recent_plan(self, - soc: float, - ev_template: EvTemplate, - phases: int, - used_amount: float, - max_phases: int, - phase_switch_supported: bool, - charging_type: str) -> Tuple[Optional[SelectedPlan], float]: - """ prüft, ob der Ziel-SoC oder die Ziel-Energiemenge erreicht wurde und stellt den zur Erreichung nötigen - Ladestrom ein. Um etwas mehr Puffer zu haben, wird bis 20 Min nach dem Zieltermin noch geladen, wenn dieser - nicht eingehalten werden konnte. - """ - if phase_switch_supported: - if charging_type == ChargingType.AC.value: - max_current = ev_template.data.max_current_multi_phases - else: - max_current = ev_template.data.dc_max_current - instant_phases = data.data.general_data.get_phases_chargemode("scheduled_charging", "instant_charging") - if instant_phases == 0: - planned_phases = 3 - else: - planned_phases = instant_phases - planned_phases = min(planned_phases, max_phases) - plan_data = self.search_plan(max_current, soc, ev_template, planned_phases, used_amount, charging_type) - if (plan_data and - charging_type == ChargingType.AC.value and - instant_phases == 0 and - plan_data.remaining_time > 300 and - self.data.et.active is False): - max_current = ev_template.data.max_current_single_phase - plan_data_single_phase = self.search_plan( - max_current, soc, ev_template, 1, used_amount, charging_type) - if plan_data_single_phase: - if plan_data_single_phase.remaining_time > 300: - plan_data = plan_data_single_phase - else: - if charging_type == ChargingType.AC.value: - if phases == 1: - max_current = ev_template.data.max_current_single_phase - else: - max_current = ev_template.data.max_current_multi_phases - else: - max_current = ev_template.data.dc_max_current - plan_data = self.search_plan(max_current, soc, ev_template, phases, used_amount, charging_type) - return plan_data - - def search_plan(self, - max_current: int, - soc: Optional[float], - ev_template: EvTemplate, - phases: int, - used_amount: float, - charging_type: str) -> Optional[SelectedPlan]: - smallest_remaining_time = float("inf") - missed_date_today_of_plan_with_smallest_remaining_time = False - plan_data: Optional[SelectedPlan] = None - battery_capacity = ev_template.data.battery_capacity - for num, plan in self.data.chargemode.scheduled_charging.plans.items(): - if plan.active: - if plan.limit.selected == "soc" and soc is None: - raise ValueError("Um Zielladen mit SoC-Ziel nutzen zu können, bitte ein SoC-Modul konfigurieren " - f"oder im Plan {plan.name} als Begrenzung Energie einstellen.") - try: - duration, missing_amount = self.calculate_duration( - plan, soc, battery_capacity, used_amount, phases, charging_type, ev_template) - remaining_time, missed_date_today = timecheck.check_duration(plan, duration, self.BUFFER) - if remaining_time: - # Wenn der Zeitpunkt vorüber, aber noch nicht abgelaufen ist oder - # wenn noch gar kein Plan vorhanden ist, - if ((remaining_time < 0 and missed_date_today is False) or - # oder der Zeitpunkt noch nicht vorüber ist - remaining_time > 0): - # Wenn die verbleibende Zeit geringer als die niedrigste bisherige verbleibende Zeit ist - if (remaining_time < smallest_remaining_time or - # oder wenn der Zeitpunkt abgelaufen ist und es noch einen Zeitpunkt gibt, der in - # der Zukunft liegt. - (missed_date_today_of_plan_with_smallest_remaining_time and 0 < remaining_time)): - smallest_remaining_time = remaining_time - missed_date_today_of_plan_with_smallest_remaining_time = missed_date_today - if charging_type == ChargingType.AC.value: - available_current = plan.current - else: - available_current = plan.dc_current - plan_data = SelectedPlan( - remaining_time=remaining_time, - available_current=available_current, - max_current=max_current, - phases=phases, - num=num, - missing_amount=missing_amount, - duration=duration) - log.debug(f"Plan-Nr. {num}: Differenz zum Start {remaining_time}s, Dauer {duration/3600}h, " - f"Termin heute verpasst: {missed_date_today}") - except Exception: - log.exception("Fehler im ev-Modul "+str(self.ct_num)) - return plan_data - - def calculate_duration(self, - plan: ScheduledChargingPlan, - soc: Optional[float], - battery_capacity: float, - used_amount: float, - phases: int, - charging_type: str, - ev_template: EvTemplate) -> Tuple[float, float]: - if plan.limit.selected == "soc": - if soc is not None: - missing_amount = ((plan.limit.soc_scheduled - soc) / 100) * battery_capacity - else: - raise ValueError("Um Zielladen mit SoC-Ziel nutzen zu können, bitte ein SoC-Modul konfigurieren.") - else: - missing_amount = plan.limit.amount - used_amount - current = plan.current if charging_type == ChargingType.AC.value else plan.dc_current - current = max(current, ev_template.data.min_current if charging_type == - ChargingType.AC.value else ev_template.data.dc_min_current) - duration = missing_amount/(current * phases*230) * 3600 - return duration, missing_amount - - SCHEDULED_REACHED_LIMIT_SOC = ("Kein Zielladen, da noch Zeit bis zum Zieltermin ist. " - "Kein Zielladen mit Überschuss, da das SoC-Limit für Überschuss-Laden " + - "erreicht wurde.") - SCHEDULED_CHARGING_REACHED_LIMIT_SOC = ("Kein Zielladen, da das Limit für Fahrzeug Laden mit Überschuss (SoC-Limit)" - " sowie der Fahrzeug-SoC (Ziel-SoC) bereits erreicht wurde.") - SCHEDULED_CHARGING_REACHED_AMOUNT = "Kein Zielladen, da die Energiemenge bereits erreicht wurde." - SCHEDULED_CHARGING_REACHED_SCHEDULED_SOC = ("Falls vorhanden wird mit EVU-Überschuss geladen, da der Ziel-Soc " - "für Zielladen bereits erreicht wurde.") - SCHEDULED_CHARGING_NO_PLANS_CONFIGURED = "Keine Ladung, da keine Ziel-Termine konfiguriert sind." - SCHEDULED_CHARGING_NO_DATE_PENDING = "Kein Zielladen, da kein Ziel-Termin in den nächsten 24 Stunden ansteht." - SCHEDULED_CHARGING_USE_PV = ("Kein Zielladen, da noch Zeit bis zum Zieltermin ist. Falls vorhanden, " - "wird mit Überschuss geladen.") - SCHEDULED_CHARGING_MAX_CURRENT = ("Zielladen mit {}A. Der Ladestrom wurde erhöht, um den Zieltermin zu erreichen. " - "Es wird bis max. 20 Minuten nach dem angegebenen Zieltermin geladen.") - SCHEDULED_CHARGING_LIMITED_BY_SOC = 'einen SoC von {}%' - SCHEDULED_CHARGING_LIMITED_BY_AMOUNT = '{}kWh geladene Energie' - SCHEDULED_CHARGING_IN_TIME = ('Zielladen mit mindestens {}A, um {} um {} zu erreichen. Falls vorhanden wird ' - 'zusätzlich EVU-Überschuss geladen.') - SCHEDULED_CHARGING_CHEAP_HOUR = "Zielladen, da ein günstiger Zeitpunkt zum preisbasierten Laden ist." - SCHEDULED_CHARGING_EXPENSIVE_HOUR = ("Zielladen ausstehend, da jetzt kein günstiger Zeitpunkt zum preisbasierten " - "Laden ist. Falls vorhanden, wird mit Überschuss geladen.") - - def scheduled_charging_calc_current(self, - plan_data: Optional[SelectedPlan], - soc: int, - used_amount: float, - control_parameter_phases: int, - min_current: int, - soc_request_interval_offset: int) -> Tuple[float, str, str, int]: - current = 0 - submode = "stop" - if plan_data is None: - if len(self.data.chargemode.scheduled_charging.plans) == 0: - return current, submode, self.SCHEDULED_CHARGING_NO_PLANS_CONFIGURED, control_parameter_phases - else: - return current, submode, self.SCHEDULED_CHARGING_NO_DATE_PENDING, control_parameter_phases - current_plan = self.data.chargemode.scheduled_charging.plans[plan_data.num] - limit = current_plan.limit - phases = plan_data.phases - log.debug("Verwendeter Plan: "+str(current_plan.name)) - if limit.selected == "soc" and soc >= limit.soc_limit and soc >= limit.soc_scheduled: - message = self.SCHEDULED_CHARGING_REACHED_LIMIT_SOC - elif limit.selected == "soc" and limit.soc_scheduled <= soc < limit.soc_limit: - message = self.SCHEDULED_CHARGING_REACHED_SCHEDULED_SOC - current = min_current - submode = "pv_charging" - # bei Überschuss-Laden mit der Phasenzahl aus den control_parameter laden, - # um die Umschaltung zu berücksichtigen. - phases = control_parameter_phases - elif limit.selected == "amount" and used_amount >= limit.amount: - message = self.SCHEDULED_CHARGING_REACHED_AMOUNT - elif 0 - soc_request_interval_offset < plan_data.remaining_time < 300 + soc_request_interval_offset: - # 5 Min vor spätestem Ladestart - if limit.selected == "soc": - limit_string = self.SCHEDULED_CHARGING_LIMITED_BY_SOC.format(limit.soc_scheduled) - else: - limit_string = self.SCHEDULED_CHARGING_LIMITED_BY_AMOUNT.format(limit.amount/1000) - message = self.SCHEDULED_CHARGING_IN_TIME.format( - plan_data.available_current, limit_string, current_plan.time) - current = plan_data.available_current - submode = "instant_charging" - # weniger als die berechnete Zeit verfügbar - # Ladestart wurde um maximal 20 Min verpasst. - elif plan_data.remaining_time <= 0 - soc_request_interval_offset: - if plan_data.duration + plan_data.remaining_time < 0: - current = plan_data.max_current - else: - current = min(plan_data.missing_amount/((plan_data.duration + plan_data.remaining_time) / - 3600)/(phases*230), plan_data.max_current) - message = self.SCHEDULED_CHARGING_MAX_CURRENT.format(round(current, 2)) - submode = "instant_charging" - else: - # Wenn Elektronische Tarife aktiv sind, prüfen, ob jetzt ein günstiger Zeitpunkt zum Laden - # ist. - if self.data.et.active and data.data.optional_data.et_provider_available(): - hour_list = data.data.optional_data.et_get_loading_hours(plan_data.duration, plan_data.remaining_time) - log.debug(f"Günstige Ladezeiten: {hour_list}") - if timecheck.is_list_valid(hour_list): - message = self.SCHEDULED_CHARGING_CHEAP_HOUR - current = plan_data.available_current - submode = "instant_charging" - elif ((limit.selected == "soc" and soc <= limit.soc_limit) or - (limit.selected == "amount" and used_amount < limit.amount)): - message = self.SCHEDULED_CHARGING_EXPENSIVE_HOUR - current = min_current - submode = "pv_charging" - phases = control_parameter_phases - else: - message = self.SCHEDULED_REACHED_LIMIT_SOC - else: - # Wenn SoC-Limit erreicht wurde, soll nicht mehr mit Überschuss geladen werden - if limit.selected == "soc" and soc >= limit.soc_limit: - message = self.SCHEDULED_REACHED_LIMIT_SOC - else: - message = self.SCHEDULED_CHARGING_USE_PV - current = min_current - submode = "pv_charging" - phases = control_parameter_phases - return current, submode, message, phases - - def standby(self) -> Tuple[int, str, str]: - return 0, "standby", "Keine Ladung, da der Lademodus Standby aktiv ist." - - def stop(self) -> Tuple[int, str, str]: - return 0, "stop", "Keine Ladung, da der Lademodus Stop aktiv ist." - - -def get_ev_to_rfid(rfid: str, vehicle_id: Optional[str] = None) -> Optional[int]: - """ ermittelt zum übergebenen ID-Tag das Fahrzeug - - Parameter - --------- - rfid: string - ID-Tag - vehicle_id: string - MAC-Adresse des ID-Tags (nur openWB Pro) - - Return - ------ - vehicle: int - Nummer des EV, das zum Tag gehört - """ - for vehicle in data.data.ev_data: - try: - if "ev" in vehicle: - if vehicle_id is not None and vehicle_id in data.data.ev_data[vehicle].data.tag_id: - log.debug(f"MAC {vehicle_id} wird EV {data.data.ev_data[vehicle].num} zugeordnet.") - return data.data.ev_data[vehicle].num - if rfid in data.data.ev_data[vehicle].data.tag_id: - log.debug(f"RFID {rfid} wird EV {data.data.ev_data[vehicle].num} zugeordnet.") - return data.data.ev_data[vehicle].num - except Exception: - log.exception("Fehler im ev-Modul "+vehicle) - return None - else: - return None diff --git a/packages/control/ev/charge_template.py b/packages/control/ev/charge_template.py new file mode 100644 index 0000000000..ed0493350c --- /dev/null +++ b/packages/control/ev/charge_template.py @@ -0,0 +1,478 @@ +from dataclasses import asdict, dataclass, field +import logging +import traceback +from typing import Dict, Optional, Tuple + +from control import data +from control.chargepoint.charging_type import ChargingType +from control.ev.ev_template import EvTemplate +from dataclass_utils.factories import empty_dict_factory +from helpermodules.abstract_plans import Limit, limit_factory, ScheduledChargingPlan, TimeChargingPlan +from helpermodules import timecheck +log = logging.getLogger(__name__) + + +def get_new_charge_template() -> dict: + ct_default = asdict(ChargeTemplateData()) + ct_default["chargemode"]["scheduled_charging"].pop("plans") + ct_default["time_charging"].pop("plans") + return ct_default + + +def get_charge_template_default() -> dict: + ct_default = asdict(ChargeTemplateData(name="Standard-Lade-Profil")) + ct_default["chargemode"]["scheduled_charging"].pop("plans") + ct_default["time_charging"].pop("plans") + return ct_default + + +@dataclass +class ScheduledCharging: + plans: Dict[int, ScheduledChargingPlan] = field(default_factory=empty_dict_factory, metadata={ + "topic": ""}) + + +@dataclass +class TimeCharging: + active: bool = False + plans: Dict[int, TimeChargingPlan] = field(default_factory=empty_dict_factory, metadata={ + "topic": ""}) + + +@dataclass +class InstantCharging: + current: int = 10 + dc_current: float = 145 + limit: Limit = field(default_factory=limit_factory) + + +@dataclass +class PvCharging: + dc_min_current: float = 145 + dc_min_soc_current: float = 145 + min_soc_current: int = 10 + min_current: int = 0 + feed_in_limit: bool = False + min_soc: int = 0 + max_soc: int = 100 + + +def pv_charging_factory() -> PvCharging: + return PvCharging() + + +def scheduled_charging_factory() -> ScheduledCharging: + return ScheduledCharging() + + +def instant_charging_factory() -> InstantCharging: + return InstantCharging() + + +@dataclass +class Chargemode: + selected: str = "stop" + pv_charging: PvCharging = field(default_factory=pv_charging_factory) + scheduled_charging: ScheduledCharging = field(default_factory=scheduled_charging_factory) + instant_charging: InstantCharging = field(default_factory=instant_charging_factory) + + +def time_charging_factory() -> TimeCharging: + return TimeCharging() + + +def chargemode_factory() -> Chargemode: + return Chargemode() + + +@dataclass +class Et: + active: bool = False + max_price: float = 0.0002 + + +def et_factory() -> Et: + return Et() + + +@dataclass +class ChargeTemplateData: + name: str = "Lade-Profil" + prio: bool = False + load_default: bool = False + et: Et = field(default_factory=et_factory) + time_charging: TimeCharging = field(default_factory=time_charging_factory) + chargemode: Chargemode = field(default_factory=chargemode_factory) + + +def charge_template_data_factory() -> ChargeTemplateData: + return ChargeTemplateData() + + +@dataclass +class SelectedPlan: + remaining_time: float = 0 + available_current: float = 14 + duration: float = 0 + max_current: int = 16 + missing_amount: float = 0 + phases: int = 1 + id: int = 0 + + +@dataclass +class ChargeTemplate: + """ Klasse der Lade-Profile + """ + ct_num: int + data: ChargeTemplateData = field(default_factory=charge_template_data_factory, metadata={ + "topic": ""}) + + BUFFER = -1200 # nach mehr als 20 Min Überschreitung wird der Termin als verpasst angesehen + CHARGING_PRICE_EXCEEDED = "Keine Ladung, da der aktuelle Strompreis über dem maximalen Strompreis liegt." + + TIME_CHARGING_NO_PLAN_CONFIGURED = "Keine Ladung, da keine Zeitfenster für Zeitladen konfiguriert sind." + TIME_CHARGING_NO_PLAN_ACTIVE = "Keine Ladung, da kein Zeitfenster für Zeitladen aktiv ist." + TIME_CHARGING_SOC_REACHED = "Kein Zeitladen, da der Soc bereits erreicht wurde." + TIME_CHARGING_AMOUNT_REACHED = "Kein Zeitladen, da die Energiemenge bereits geladen wurde." + + def time_charging(self, + soc: Optional[float], + used_amount_time_charging: float, + charging_type: str) -> Tuple[int, str, Optional[str], Optional[str]]: + """ prüft, ob ein Zeitfenster aktiv ist und setzt entsprechend den Ladestrom + """ + message = None + try: + if self.data.time_charging.plans: + plan = timecheck.check_plans_timeframe(self.data.time_charging.plans) + if plan is not None: + current = plan.current if charging_type == ChargingType.AC.value else plan.dc_current + if self.data.et.active and data.data.optional_data.et_provider_available(): + if not data.data.optional_data.et_price_lower_than_limit(self.data.et.max_price): + return 0, "stop", self.CHARGING_PRICE_EXCEEDED, plan.id + if plan.limit.selected == "none": # kein Limit konfiguriert, mit konfigurierter Stromstärke laden + return current, "time_charging", message, plan.id + elif plan.limit.selected == "soc": # SoC Limit konfiguriert + if soc: + if soc < plan.limit.soc: + return current, "time_charging", message, plan.id # Limit nicht erreicht + else: + return 0, "stop", self.TIME_CHARGING_SOC_REACHED, plan.id # Limit erreicht + else: + return plan.current, "time_charging", message, plan.id + elif plan.limit.selected == "amount": # Energiemengenlimit konfiguriert + if used_amount_time_charging < plan.limit.amount: + return current, "time_charging", message, plan.id # Limit nicht erreicht + else: + return 0, "stop", self.TIME_CHARGING_AMOUNT_REACHED, plan.id # Limit erreicht + else: + raise TypeError(f'{plan.limit.selected} unbekanntes Zeitladen-Limit.') + else: + message = self.TIME_CHARGING_NO_PLAN_ACTIVE + else: + message = self.TIME_CHARGING_NO_PLAN_CONFIGURED + log.debug(message) + return 0, "stop", message, None + except Exception: + log.exception("Fehler im ev-Modul "+str(self.ct_num)) + return 0, "stop", "Keine Ladung, da da ein interner Fehler aufgetreten ist: "+traceback.format_exc(), None + + INSTANT_CHARGING_SOC_REACHED = "Kein Sofortladen, da der Soc bereits erreicht wurde." + INSTANT_CHARGING_AMOUNT_REACHED = "Kein Sofortladen, da die Energiemenge bereits geladen wurde." + + def instant_charging(self, + soc: Optional[float], + imported_instant_charging: float, + charging_type: str) -> Tuple[int, str, Optional[str]]: + """ prüft, ob die Lademengenbegrenzung erreicht wurde und setzt entsprechend den Ladestrom. + """ + message = None + try: + instant_charging = self.data.chargemode.instant_charging + if charging_type == ChargingType.AC.value: + current = instant_charging.current + else: + current = instant_charging.dc_current + if self.data.et.active and data.data.optional_data.et_provider_available(): + if not data.data.optional_data.et_price_lower_than_limit(self.data.et.max_price): + return 0, "stop", self.CHARGING_PRICE_EXCEEDED + if instant_charging.limit.selected == "none": + return current, "instant_charging", message + elif instant_charging.limit.selected == "soc": + if soc: + if soc < instant_charging.limit.soc: + return current, "instant_charging", message + else: + return 0, "stop", self.INSTANT_CHARGING_SOC_REACHED + else: + return current, "instant_charging", message + elif instant_charging.limit.selected == "amount": + if imported_instant_charging < self.data.chargemode.instant_charging.limit.amount: + return current, "instant_charging", message + else: + return 0, "stop", self.INSTANT_CHARGING_AMOUNT_REACHED + else: + raise TypeError(f'{instant_charging.limit.selected} unbekanntes Sofortladen-Limit.') + except Exception: + log.exception("Fehler im ev-Modul "+str(self.ct_num)) + return 0, "stop", "Keine Ladung, da da ein interner Fehler aufgetreten ist: "+traceback.format_exc() + + PV_CHARGING_SOC_REACHED = "Keine Ladung, da der maximale Soc bereits erreicht wurde." + PV_CHARGING_SOC_CHARGING = ("Ladung evtl. auch ohne PV-Überschuss, da der Mindest-SoC des Fahrzeugs noch nicht " + "erreicht wurde.") + PV_CHARGING_MIN_CURRENT_CHARGING = "Ladung evtl. auch ohne PV-Überschuss, da minimaler Dauerstrom aktiv ist." + + def pv_charging(self, soc: Optional[float], min_current: int, charging_type: str) -> Tuple[int, str, Optional[str]]: + """ prüft, ob Min-oder Max-Soc erreicht wurden und setzt entsprechend den Ladestrom. + """ + message = None + try: + pv_charging = self.data.chargemode.pv_charging + if soc is None or soc < pv_charging.max_soc: + if pv_charging.min_soc != 0 and soc is not None: + if soc < pv_charging.min_soc: + if charging_type == ChargingType.AC.value: + current = pv_charging.min_soc_current + else: + current = pv_charging.dc_min_soc_current + return current, "instant_charging", self.PV_CHARGING_SOC_CHARGING + if charging_type == ChargingType.AC.value: + pv_min_current = pv_charging.min_current + else: + pv_min_current = pv_charging.dc_min_current + if pv_min_current == 0: + # nur PV; Ampere darf nicht 0 sein, wenn geladen werden soll + return min_current, "pv_charging", message + else: + # Min PV + return pv_min_current, "instant_charging", self.PV_CHARGING_MIN_CURRENT_CHARGING + else: + return 0, "stop", self.PV_CHARGING_SOC_REACHED + except Exception: + log.exception("Fehler im ev-Modul "+str(self.ct_num)) + return 0, "stop", "Keine Ladung, da ein interner Fehler aufgetreten ist: "+traceback.format_exc() + + def scheduled_charging_recent_plan(self, + soc: float, + ev_template: EvTemplate, + phases: int, + used_amount: float, + max_phases: int, + phase_switch_supported: bool, + charging_type: str) -> Optional[SelectedPlan]: + """ prüft, ob der Ziel-SoC oder die Ziel-Energiemenge erreicht wurde und stellt den zur Erreichung nötigen + Ladestrom ein. Um etwas mehr Puffer zu haben, wird bis 20 Min nach dem Zieltermin noch geladen, wenn dieser + nicht eingehalten werden konnte. + """ + if phase_switch_supported: + if charging_type == ChargingType.AC.value: + max_current = ev_template.data.max_current_multi_phases + else: + max_current = ev_template.data.dc_max_current + instant_phases = data.data.general_data.get_phases_chargemode("scheduled_charging", "instant_charging") + if instant_phases == 0: + planned_phases = 3 + else: + planned_phases = instant_phases + planned_phases = min(planned_phases, max_phases) + plan_data = self._search_plan(max_current, soc, ev_template, planned_phases, used_amount, charging_type) + if (plan_data and + charging_type == ChargingType.AC.value and + instant_phases == 0 and + plan_data.remaining_time > 300 and + self.data.et.active is False): + max_current = ev_template.data.max_current_single_phase + plan_data_single_phase = self._search_plan( + max_current, soc, ev_template, 1, used_amount, charging_type) + if plan_data_single_phase: + if plan_data_single_phase.remaining_time > 0: + plan_data = plan_data_single_phase + else: + if charging_type == ChargingType.AC.value: + if phases == 1: + max_current = ev_template.data.max_current_single_phase + else: + max_current = ev_template.data.max_current_multi_phases + else: + max_current = ev_template.data.dc_max_current + plan_data = self._search_plan(max_current, soc, ev_template, phases, used_amount, charging_type) + return plan_data + + def _search_plan(self, + max_current: int, + soc: Optional[float], + ev_template: EvTemplate, + phases: int, + used_amount: float, + charging_type: str) -> Optional[SelectedPlan]: + smallest_remaining_time = float("inf") + missed_date_today_of_plan_with_smallest_remaining_time = False + plan_data: Optional[SelectedPlan] = None + battery_capacity = ev_template.data.battery_capacity + for plan in self.data.chargemode.scheduled_charging.plans.values(): + if plan.active: + if plan.limit.selected == "soc" and soc is None: + raise ValueError("Um Zielladen mit SoC-Ziel nutzen zu können, bitte ein SoC-Modul konfigurieren " + f"oder im Plan {plan.name} als Begrenzung Energie einstellen.") + try: + duration, missing_amount = self._calculate_duration( + plan, soc, battery_capacity, used_amount, phases, charging_type, ev_template) + remaining_time, missed_date_today = timecheck.check_duration(plan, duration, self.BUFFER) + if remaining_time: + # Wenn der Zeitpunkt vorüber, aber noch nicht abgelaufen ist oder + # wenn noch gar kein Plan vorhanden ist, + if ((remaining_time < 0 and missed_date_today is False) or + # oder der Zeitpunkt noch nicht vorüber ist + remaining_time > 0): + # Wenn die verbleibende Zeit geringer als die niedrigste bisherige verbleibende Zeit ist + if (remaining_time < smallest_remaining_time or + # oder wenn der Zeitpunkt abgelaufen ist und es noch einen Zeitpunkt gibt, der in + # der Zukunft liegt. + (missed_date_today_of_plan_with_smallest_remaining_time and 0 < remaining_time)): + smallest_remaining_time = remaining_time + missed_date_today_of_plan_with_smallest_remaining_time = missed_date_today + if charging_type == ChargingType.AC.value: + available_current = plan.current + else: + available_current = plan.dc_current + plan_data = SelectedPlan( + remaining_time=remaining_time, + available_current=available_current, + max_current=max_current, + phases=phases, + id=plan.id, + missing_amount=missing_amount, + duration=duration) + log.debug(f"Plan-Nr. {plan.id}: Differenz zum Start {remaining_time}s, Dauer {duration/3600}h, " + f"Termin heute verpasst: {missed_date_today}") + except Exception: + log.exception("Fehler im ev-Modul "+str(self.ct_num)) + return plan_data + + def _calculate_duration(self, + plan: ScheduledChargingPlan, + soc: Optional[float], + battery_capacity: float, + used_amount: float, + phases: int, + charging_type: str, + ev_template: EvTemplate) -> Tuple[float, float]: + if plan.limit.selected == "soc": + if soc is not None: + missing_amount = ((plan.limit.soc_scheduled - soc) / 100) * battery_capacity + else: + raise ValueError("Um Zielladen mit SoC-Ziel nutzen zu können, bitte ein SoC-Modul konfigurieren.") + else: + missing_amount = plan.limit.amount - used_amount + current = plan.current if charging_type == ChargingType.AC.value else plan.dc_current + current = max(current, ev_template.data.min_current if charging_type == + ChargingType.AC.value else ev_template.data.dc_min_current) + duration = missing_amount/(current * phases*230) * 3600 + return duration, missing_amount + + SCHEDULED_REACHED_LIMIT_SOC = ("Kein Zielladen, da noch Zeit bis zum Zieltermin ist. " + "Kein Zielladen mit Überschuss, da das SoC-Limit für Überschuss-Laden " + + "erreicht wurde.") + SCHEDULED_CHARGING_REACHED_LIMIT_SOC = ("Kein Zielladen, da das Limit für Fahrzeug Laden mit Überschuss (SoC-Limit)" + " sowie der Fahrzeug-SoC (Ziel-SoC) bereits erreicht wurde.") + SCHEDULED_CHARGING_REACHED_AMOUNT = "Kein Zielladen, da die Energiemenge bereits erreicht wurde." + SCHEDULED_CHARGING_REACHED_SCHEDULED_SOC = ("Falls vorhanden wird mit EVU-Überschuss geladen, da der Ziel-Soc " + "für Zielladen bereits erreicht wurde.") + SCHEDULED_CHARGING_NO_PLANS_CONFIGURED = "Keine Ladung, da keine Ziel-Termine konfiguriert sind." + SCHEDULED_CHARGING_NO_DATE_PENDING = "Kein Zielladen, da kein Ziel-Termin ansteht." + SCHEDULED_CHARGING_USE_PV = ("Kein Zielladen, da noch Zeit bis zum Zieltermin ist. Falls vorhanden, " + "wird mit Überschuss geladen.") + SCHEDULED_CHARGING_MAX_CURRENT = ("Zielladen mit {}A. Der Ladestrom wurde erhöht, um den Zieltermin zu erreichen. " + "Es wird bis max. 20 Minuten nach dem angegebenen Zieltermin geladen.") + SCHEDULED_CHARGING_LIMITED_BY_SOC = 'einen SoC von {}%' + SCHEDULED_CHARGING_LIMITED_BY_AMOUNT = '{}kWh geladene Energie' + SCHEDULED_CHARGING_IN_TIME = ('Zielladen mit mindestens {}A, um {} um {} zu erreichen. Falls vorhanden wird ' + 'zusätzlich EVU-Überschuss geladen.') + SCHEDULED_CHARGING_CHEAP_HOUR = "Zielladen, da ein günstiger Zeitpunkt zum preisbasierten Laden ist." + SCHEDULED_CHARGING_EXPENSIVE_HOUR = ("Zielladen ausstehend, da jetzt kein günstiger Zeitpunkt zum preisbasierten " + "Laden ist. Falls vorhanden, wird mit Überschuss geladen.") + + def scheduled_charging_calc_current(self, + plan_data: Optional[SelectedPlan], + soc: int, + used_amount: float, + control_parameter_phases: int, + min_current: int, + soc_request_interval_offset: int) -> Tuple[float, str, str, int]: + current = 0 + submode = "stop" + if plan_data is None: + if len(self.data.chargemode.scheduled_charging.plans) == 0: + return current, submode, self.SCHEDULED_CHARGING_NO_PLANS_CONFIGURED, control_parameter_phases + else: + return current, submode, self.SCHEDULED_CHARGING_NO_DATE_PENDING, control_parameter_phases + current_plan = self.data.chargemode.scheduled_charging.plans[str(plan_data.id)] + limit = current_plan.limit + phases = plan_data.phases + log.debug("Verwendeter Plan: "+str(current_plan.name)) + if limit.selected == "soc" and soc >= limit.soc_limit and soc >= limit.soc_scheduled: + message = self.SCHEDULED_CHARGING_REACHED_LIMIT_SOC + elif limit.selected == "soc" and limit.soc_scheduled <= soc < limit.soc_limit: + message = self.SCHEDULED_CHARGING_REACHED_SCHEDULED_SOC + current = min_current + submode = "pv_charging" + # bei Überschuss-Laden mit der Phasenzahl aus den control_parameter laden, + # um die Umschaltung zu berücksichtigen. + phases = control_parameter_phases + elif limit.selected == "amount" and used_amount >= limit.amount: + message = self.SCHEDULED_CHARGING_REACHED_AMOUNT + elif 0 - soc_request_interval_offset < plan_data.remaining_time < 300 + soc_request_interval_offset: + # 5 Min vor spätestem Ladestart + if limit.selected == "soc": + limit_string = self.SCHEDULED_CHARGING_LIMITED_BY_SOC.format(limit.soc_scheduled) + else: + limit_string = self.SCHEDULED_CHARGING_LIMITED_BY_AMOUNT.format(limit.amount/1000) + message = self.SCHEDULED_CHARGING_IN_TIME.format( + plan_data.available_current, limit_string, current_plan.time) + current = plan_data.available_current + submode = "instant_charging" + # weniger als die berechnete Zeit verfügbar + # Ladestart wurde um maximal 20 Min verpasst. + elif plan_data.remaining_time <= 0 - soc_request_interval_offset: + if plan_data.duration + plan_data.remaining_time < 0: + current = plan_data.max_current + else: + current = min(plan_data.missing_amount/((plan_data.duration + plan_data.remaining_time) / + 3600)/(phases*230), plan_data.max_current) + message = self.SCHEDULED_CHARGING_MAX_CURRENT.format(round(current, 2)) + submode = "instant_charging" + else: + # Wenn dynamische Tarife aktiv sind, prüfen, ob jetzt ein günstiger Zeitpunkt zum Laden + # ist. + if self.data.et.active and data.data.optional_data.et_provider_available(): + hour_list = data.data.optional_data.et_get_loading_hours(plan_data.duration, plan_data.remaining_time) + log.debug(f"Günstige Ladezeiten: {hour_list}") + if timecheck.is_list_valid(hour_list): + message = self.SCHEDULED_CHARGING_CHEAP_HOUR + current = plan_data.available_current + submode = "instant_charging" + elif ((limit.selected == "soc" and soc <= limit.soc_limit) or + (limit.selected == "amount" and used_amount < limit.amount)): + message = self.SCHEDULED_CHARGING_EXPENSIVE_HOUR + current = min_current + submode = "pv_charging" + phases = control_parameter_phases + else: + message = self.SCHEDULED_REACHED_LIMIT_SOC + else: + # Wenn SoC-Limit erreicht wurde, soll nicht mehr mit Überschuss geladen werden + if limit.selected == "soc" and soc >= limit.soc_limit: + message = self.SCHEDULED_REACHED_LIMIT_SOC + else: + message = self.SCHEDULED_CHARGING_USE_PV + current = min_current + submode = "pv_charging" + phases = control_parameter_phases + return current, submode, message, phases + + def standby(self) -> Tuple[int, str, str]: + return 0, "standby", "Keine Ladung, da der Lademodus Standby aktiv ist." + + def stop(self) -> Tuple[int, str, str]: + return 0, "stop", "Keine Ladung, da der Lademodus Stop aktiv ist." diff --git a/packages/control/ev_charge_template_test.py b/packages/control/ev/charge_template_test.py similarity index 83% rename from packages/control/ev_charge_template_test.py rename to packages/control/ev/charge_template_test.py index ecf5a5dd0d..a036ffed0a 100644 --- a/packages/control/ev_charge_template_test.py +++ b/packages/control/ev/charge_template_test.py @@ -5,8 +5,10 @@ from control import data from control import optional +from control.ev.charge_template import SelectedPlan from control.chargepoint.charging_type import ChargingType -from control.ev import ChargeTemplate, EvTemplate, EvTemplateData, SelectedPlan +from control.ev.ev import ChargeTemplate +from control.ev.ev_template import EvTemplate, EvTemplateData from control.general import General from helpermodules import timecheck from helpermodules.abstract_plans import Limit, ScheduledChargingPlan, TimeChargingPlan @@ -24,29 +26,29 @@ def data_module() -> None: [ pytest.param({}, 0, 0, None, (0, "stop", ChargeTemplate.TIME_CHARGING_NO_PLAN_CONFIGURED, None), id="no plan defined"), - pytest.param({"0": TimeChargingPlan()}, 0, 0, None, + pytest.param({"0": TimeChargingPlan(id=0)}, 0, 0, None, (0, "stop", ChargeTemplate.TIME_CHARGING_NO_PLAN_ACTIVE, None), id="no plan active"), - pytest.param({"0": TimeChargingPlan()}, 0, 0, TimeChargingPlan(), - (16, "time_charging", None, "neuer Zeitladen-Plan"), id="plan active"), - pytest.param({"0": TimeChargingPlan(limit=Limit(selected="soc"))}, 100, 0, - TimeChargingPlan(limit=Limit(selected="soc")), - (0, "stop", ChargeTemplate.TIME_CHARGING_SOC_REACHED, "neuer Zeitladen-Plan"), + pytest.param({"0": TimeChargingPlan(id=0)}, 0, 0, TimeChargingPlan(id=0), + (16, "time_charging", None, 0), id="plan active"), + pytest.param({"0": TimeChargingPlan(id=0, limit=Limit(selected="soc"))}, 100, 0, + TimeChargingPlan(id=0, limit=Limit(selected="soc")), + (0, "stop", ChargeTemplate.TIME_CHARGING_SOC_REACHED, 0), id="plan active, soc is reached"), - pytest.param({"0": TimeChargingPlan(limit=Limit(selected="soc"))}, 40, 0, - TimeChargingPlan(limit=Limit(selected="soc")), - (16, "time_charging", None, "neuer Zeitladen-Plan"), id="plan active, soc is not reached"), - pytest.param({"0": TimeChargingPlan(limit=Limit(selected="soc"))}, None, 0, - TimeChargingPlan(limit=Limit(selected="soc")), - (16, "time_charging", None, "neuer Zeitladen-Plan"), id="plan active, soc is not defined"), - pytest.param({"0": TimeChargingPlan(limit=Limit(selected="amount"))}, 0, 1500, - TimeChargingPlan(limit=Limit(selected="amount")), - (0, "stop", ChargeTemplate.TIME_CHARGING_AMOUNT_REACHED, "neuer Zeitladen-Plan"), + pytest.param({"0": TimeChargingPlan(id=0, limit=Limit(selected="soc"))}, 40, 0, + TimeChargingPlan(id=0, limit=Limit(selected="soc")), + (16, "time_charging", None, 0), id="plan active, soc is not reached"), + pytest.param({"0": TimeChargingPlan(id=0, limit=Limit(selected="soc"))}, None, 0, + TimeChargingPlan(id=0, limit=Limit(selected="soc")), + (16, "time_charging", None, 0), id="plan active, soc is not defined"), + pytest.param({"0": TimeChargingPlan(id=0, limit=Limit(selected="amount"))}, 0, 1500, + TimeChargingPlan(id=0, limit=Limit(selected="amount")), + (0, "stop", ChargeTemplate.TIME_CHARGING_AMOUNT_REACHED, 0), id="plan active, used_amount_time_charging is reached"), - pytest.param({"0": TimeChargingPlan(limit=Limit(selected="amount"))}, 0, 500, - TimeChargingPlan(limit=Limit(selected="amount")), - (16, "time_charging", None, "neuer Zeitladen-Plan"), + pytest.param({"0": TimeChargingPlan(id=0, limit=Limit(selected="amount"))}, 0, 500, + TimeChargingPlan(id=0, limit=Limit(selected="amount")), + (16, "time_charging", None, 0), id="plan active, used_amount_time_charging is not reached"), - pytest.param({"0": TimeChargingPlan()}, 0, 0, None, + pytest.param({"0": TimeChargingPlan(id=0)}, 0, 0, None, (0, "stop", ChargeTemplate.TIME_CHARGING_NO_PLAN_ACTIVE, None), id="plan defined but not found"), ] ) @@ -149,7 +151,7 @@ def test_scheduled_charging_recent_plan(params: Params, monkeypatch): get_phases_chargemode_mock = Mock(return_value=params.chargemode_phases) monkeypatch.setattr(data.data.general_data, "get_phases_chargemode", get_phases_chargemode_mock) search_plan_mock = Mock(return_value=params.search_plan) - monkeypatch.setattr(ChargeTemplate, "search_plan", search_plan_mock) + monkeypatch.setattr(ChargeTemplate, "_search_plan", search_plan_mock) evt_data = Mock(spec=EvTemplateData, max_current_multi_phases=16, max_current_single_phase=32) evt = Mock(spec=EvTemplate, data=evt_data) @@ -174,7 +176,7 @@ def test_calculate_duration(selected: str, phases: int, expected_duration: float plan = ScheduledChargingPlan() plan.limit.selected = selected # execution - duration, missing_amount = ct.calculate_duration(plan, 60, 45000, 200, phases, ChargingType.AC.value, EvTemplate()) + duration, missing_amount = ct._calculate_duration(plan, 60, 45000, 200, phases, ChargingType.AC.value, EvTemplate()) # evaluation assert duration == expected_duration @@ -196,20 +198,21 @@ def test_search_plan(check_duration_return1: Tuple[Optional[float], bool], monkeypatch): # setup calculate_duration_mock = Mock(return_value=(100, 200)) - monkeypatch.setattr(ChargeTemplate, "calculate_duration", calculate_duration_mock) + monkeypatch.setattr(ChargeTemplate, "_calculate_duration", calculate_duration_mock) check_duration_mock = Mock(side_effect=[check_duration_return1, check_duration_return2]) monkeypatch.setattr(timecheck, "check_duration", check_duration_mock) ct = ChargeTemplate(0) - plan_mock = Mock(spec=ScheduledChargingPlan, active=True, current=14, limit=Limit(selected="amount")) - ct.data.chargemode.scheduled_charging.plans = {0: plan_mock, 1: plan_mock} + plan_mock_0 = Mock(spec=ScheduledChargingPlan, active=True, current=14, id=0, limit=Limit(selected="amount")) + plan_mock_1 = Mock(spec=ScheduledChargingPlan, active=True, current=14, id=1, limit=Limit(selected="amount")) + ct.data.chargemode.scheduled_charging.plans = {"0": plan_mock_0, "1": plan_mock_1} # execution - plan_data = ct.search_plan(14, 60, EvTemplate(), 3, 200, ChargingType.AC.value) + plan_data = ct._search_plan(14, 60, EvTemplate(), 3, 200, ChargingType.AC.value) # evaluation if expected_plan_num is None: assert plan_data is None else: - assert plan_data.num == expected_plan_num + assert plan_data.id == expected_plan_num assert plan_data.duration == 100 @@ -250,9 +253,10 @@ def test_scheduled_charging_calc_current(plan_data: SelectedPlan, expected: Tuple[float, str, str, int]): # setup ct = ChargeTemplate(0) - plan = ScheduledChargingPlan(active=True) + plan = ScheduledChargingPlan(active=True, id=0) plan.limit.selected = selected - ct.data.chargemode.scheduled_charging.plans = {0: plan} + # json verwandelt Keys in strings + ct.data.chargemode.scheduled_charging.plans = {"0": plan} # execution ret = ct.scheduled_charging_calc_current(plan_data, soc, used_amount, 3, 6, 0) @@ -283,7 +287,7 @@ def test_scheduled_charging_calc_current_electricity_tariff(loading_hour, expect ct = ChargeTemplate(0) plan = ScheduledChargingPlan(active=True) plan.limit.selected = "soc" - ct.data.chargemode.scheduled_charging.plans = {0: plan} + ct.data.chargemode.scheduled_charging.plans = {"0": plan} ct.data.et.active = True mock_et_get_loading_hours = Mock(return_value=[]) monkeypatch.setattr(data.data.optional_data, "et_get_loading_hours", mock_et_get_loading_hours) diff --git a/packages/control/ev/ev.py b/packages/control/ev/ev.py new file mode 100644 index 0000000000..2f31fd1425 --- /dev/null +++ b/packages/control/ev/ev.py @@ -0,0 +1,459 @@ +""" EV-Logik +ermittelt, den Ladestrom, den das EV gerne zur Verfügung hätte. + +In den control Parametern wird sich der Lademodus, Submodus, Priorität, Phasen und Stromstärke gemerkt, +mit denen das EV aktuell in der Regelung berücksichtigt wird. Bei der Ermittlung der benötigten Strom- +stärke wird auch geprüft, ob sich an diesen Parametern etwas geändert hat. Falls ja, muss das EV +in der Regelung neu priorisiert werden und eine neue Zuteilung des Stroms erhalten. +""" +from dataclasses import dataclass, field +import logging +from typing import List, Optional, Tuple + +from control import data +from control.chargepoint.chargepoint_state import ChargepointState, PHASE_SWITCH_STATES +from control.chargepoint.charging_type import ChargingType +from control.chargepoint.control_parameter import ControlParameter +from control.ev.charge_template import ChargeTemplate +from control.ev.ev_template import EvTemplate +from control.limiting_value import LimitingValue +from dataclass_utils.factories import empty_list_factory +from helpermodules import timecheck +from helpermodules.constants import NO_ERROR +from modules.common.abstract_vehicle import VehicleUpdateData +from modules.common.configurable_vehicle import ConfigurableVehicle + +log = logging.getLogger(__name__) + + +def get_vehicle_default() -> dict: + return { + "charge_template": 0, + "ev_template": 0, + "name": "Fahrzeug", + "info": { + "manufacturer": None, + "model": None, + }, + "tag_id": [], + "get/soc": 0 + } + + +@dataclass +class Set: + soc_error_counter: int = field( + default=0, metadata={"topic": "set/soc_error_counter"}) + + +def set_factory() -> Set: + return Set() + + +@dataclass +class Get: + soc: Optional[int] = field(default=None, metadata={"topic": "get/soc"}) + soc_request_timestamp: Optional[float] = field( + default=None, metadata={"topic": "get/soc_request_timestamp"}) + soc_timestamp: Optional[float] = field( + default=None, metadata={"topic": "get/soc_timestamp"}) + force_soc_update: bool = field(default=False, metadata={ + "topic": "get/force_soc_update"}) + range: Optional[float] = field(default=None, metadata={"topic": "get/range"}) + fault_state: int = field(default=0, metadata={"topic": "get/fault_state"}) + fault_str: str = field(default=NO_ERROR, metadata={"topic": "get/fault_str"}) + + +def get_factory() -> Get: + return Get() + + +@dataclass +class EvData: + set: Set = field(default_factory=set_factory) + charge_template: int = field(default=0, metadata={"topic": "charge_template"}) + ev_template: int = field(default=0, metadata={"topic": "ev_template"}) + name: str = field(default="neues Fahrzeug", metadata={"topic": "name"}) + tag_id: List[str] = field(default_factory=empty_list_factory, metadata={ + "topic": "tag_id"}) + get: Get = field(default_factory=get_factory) + + +class Ev: + """Logik des EV + """ + + def __init__(self, index: int): + try: + self.ev_template: EvTemplate = EvTemplate() + self.charge_template: ChargeTemplate = ChargeTemplate(0) + self.soc_module: ConfigurableVehicle = None + self.chargemode_changed = False + self.submode_changed = False + self.num = index + self.data = EvData() + except Exception: + log.exception("Fehler im ev-Modul "+str(self.num)) + + def soc_interval_expired(self, vehicle_update_data: VehicleUpdateData) -> bool: + request_soc = False + if self.data.get.soc_request_timestamp is None: + # Initiale Abfrage + request_soc = True + else: + if vehicle_update_data.plug_state is True or self.soc_module.general_config.request_only_plugged is False: + if (vehicle_update_data.charge_state is True or + (self.data.set.soc_error_counter < 3 and self.data.get.fault_state == 2)): + interval = self.soc_module.general_config.request_interval_charging + else: + interval = self.soc_module.general_config.request_interval_not_charging + # Zeitstempel prüfen, ob wieder abgefragt werden muss. + if timecheck.check_timestamp(self.data.get.soc_request_timestamp, interval-5) is False: + # Zeit ist abgelaufen + request_soc = True + return request_soc + + def get_required_current(self, + control_parameter: ControlParameter, + imported: float, + max_phases_hw: int, + phase_switch_supported: bool, + charging_type: str) -> Tuple[bool, Optional[str], str, float, int]: + """ ermittelt, ob und mit welchem Strom das EV geladen werden soll (unabhängig vom Lastmanagement) + + Parameter + --------- + imported_since_mode_switch: float + seit dem letzten Lademodi-Wechsel geladene Energie. + Return + ------ + state: bool + Soll geladen werden? + message: str + Nachricht, warum nicht geladen werden soll + submode: str + Lademodus, in dem tatsächlich geladen wird + required_current: int + Strom, der nach Ladekonfiguration benötigt wird + """ + phases = None + required_current = None + submode = None + message = None + state = True + try: + if self.charge_template.data.chargemode.selected == "scheduled_charging": + if control_parameter.imported_at_plan_start is None: + control_parameter.imported_at_plan_start = imported + used_amount = imported - control_parameter.imported_at_plan_start + plan_data = self.charge_template.scheduled_charging_recent_plan( + self.data.get.soc, + self.ev_template, + control_parameter.phases, + used_amount, + max_phases_hw, + phase_switch_supported, + charging_type) + soc_request_interval_offset = 0 + if plan_data: + # Wenn mit einem neuen Plan geladen wird, muss auch die Energiemenge von neuem gezählt werden. + if (self.charge_template.data.chargemode.scheduled_charging.plans[str(plan_data.id)].limit. + selected == "amount" and + plan_data.id != control_parameter.current_plan): + control_parameter.imported_at_plan_start = imported + # Wenn der SoC ein paar Minuten alt ist, kann der Termin trotzdem gehalten werden. + # Zielladen kann nicht genauer arbeiten, als das Abfrageintervall vom SoC. + if (self.soc_module and + self.charge_template.data.chargemode. + scheduled_charging.plans[str(plan_data.id)].limit.selected == "soc"): + soc_request_interval_offset = self.soc_module.general_config.request_interval_charging + control_parameter.current_plan = plan_data.id + else: + control_parameter.current_plan = None + required_current, submode, message, phases = self.charge_template.scheduled_charging_calc_current( + plan_data, + self.data.get.soc, + used_amount, + control_parameter.phases, + control_parameter.min_current, + soc_request_interval_offset) + + # Wenn Zielladen auf Überschuss wartet, prüfen, ob Zeitladen aktiv ist. + if (submode != "instant_charging" and + self.charge_template.data.time_charging.active): + if control_parameter.imported_at_plan_start is None: + control_parameter.imported_at_plan_start = imported + used_amount = imported - control_parameter.imported_at_plan_start + tmp_current, tmp_submode, tmp_message, plan_id = self.charge_template.time_charging( + self.data.get.soc, + used_amount, + charging_type + ) + # Info vom Zielladen erhalten + message = f"{message or ''} {tmp_message or ''}".strip() + if tmp_current > 0: + # Wenn mit einem neuen Plan geladen wird, muss auch die Energiemenge von neuem gezählt werden. + if plan_id != control_parameter.current_plan: + control_parameter.imported_at_plan_start = imported + control_parameter.current_plan = plan_id + required_current = tmp_current + submode = tmp_submode + if (required_current == 0) or (required_current is None): + if self.charge_template.data.chargemode.selected == "instant_charging": + # Wenn der Submode auf stop gestellt wird, wird auch die Energiemenge seit Wechsel des Modus + # zurückgesetzt, dann darf nicht die Energiemenge erneute geladen werden. + if control_parameter.imported_instant_charging is None: + control_parameter.imported_instant_charging = imported + used_amount = imported - control_parameter.imported_instant_charging + required_current, submode, message = self.charge_template.instant_charging( + self.data.get.soc, + used_amount, + charging_type) + elif self.charge_template.data.chargemode.selected == "pv_charging": + required_current, submode, message = self.charge_template.pv_charging( + self.data.get.soc, control_parameter.min_current, charging_type) + elif self.charge_template.data.chargemode.selected == "standby": + # Text von Zeit-und Zielladen nicht überschreiben. + if message is None: + required_current, submode, message = self.charge_template.standby() + else: + required_current, submode, _ = self.charge_template.standby() + elif self.charge_template.data.chargemode.selected == "stop": + required_current, submode, message = self.charge_template.stop() + if submode == "stop" or submode == "standby" or (self.charge_template.data.chargemode.selected == "stop"): + state = False + if phases is None: + phases = control_parameter.phases + return state, message, submode, required_current, phases + except Exception as e: + log.exception("Fehler im ev-Modul "+str(self.num)) + return (False, f"Kein Ladevorgang, da ein Fehler aufgetreten ist: {' '.join(e.args)}", "stop", 0, + control_parameter.phases) + + def set_chargemode_changed(self, control_parameter: ControlParameter, submode: str) -> None: + if ((submode == "time_charging" and control_parameter.chargemode != "time_charging") or + (submode != "time_charging" and + control_parameter.chargemode != self.charge_template.data.chargemode.selected)): + self.chargemode_changed = True + log.debug("Änderung des Lademodus") + else: + self.chargemode_changed = False + + def set_submode_changed(self, control_parameter: ControlParameter, submode: str) -> None: + self.submode_changed = (submode != control_parameter.submode) + + def check_min_max_current(self, + control_parameter: ControlParameter, + required_current: float, + phases: int, + charging_type: str, + pv: bool = False,) -> Tuple[float, Optional[str]]: + """ prüft, ob der gesetzte Ladestrom über dem Mindest-Ladestrom und unter dem Maximal-Ladestrom des EVs liegt. + Falls nicht, wird der Ladestrom auf den Mindest-Ladestrom bzw. den Maximal-Ladestrom des EV gesetzt. + Wenn PV-Laden aktiv ist, darf die Stromstärke nicht unter den PV-Mindeststrom gesetzt werden. + """ + msg = None + # Überprüfung bei 0 (automatische Umschaltung) erfolgt nach der Prüfung der Phasenumschaltung, wenn fest + # steht, mit vielen Phasen geladen werden soll. + if phases != 0: + # EV soll/darf nicht laden + if required_current != 0: + if not pv: + if charging_type == ChargingType.AC.value: + min_current = self.ev_template.data.min_current + else: + min_current = self.ev_template.data.dc_min_current + else: + min_current = control_parameter.required_current + if required_current < min_current: + required_current = min_current + msg = ("Die Einstellungen in dem Fahrzeug-Profil beschränken den Strom auf " + f"mindestens {required_current} A.") + else: + if charging_type == ChargingType.AC.value: + if phases == 1: + max_current = self.ev_template.data.max_current_single_phase + else: + max_current = self.ev_template.data.max_current_multi_phases + else: + max_current = self.ev_template.data.dc_max_current + if required_current > max_current: + required_current = max_current + msg = ("Die Einstellungen in dem Fahrzeug-Profil beschränken den Strom auf " + f"maximal {required_current} A.") + return required_current, msg + + CURRENT_OUT_OF_NOMINAL_DIFFERENCE = (", da das Fahrzeug nicht mit der vorgegebenen Stromstärke +/- der erlaubten " + + "Stromabweichung aus dem Fahrzeug-Profil/Minimalen Dauerstrom lädt.") + ENOUGH_POWER = ", da ausreichend Überschuss für mehrphasiges Laden zur Verfügung steht." + NOT_ENOUGH_POWER = ", da nicht ausreichend Überschuss für mehrphasiges Laden zur Verfügung steht." + + def _check_phase_switch_conditions(self, + control_parameter: ControlParameter, + get_currents: List[float], + get_power: float, + max_current_cp: int, + limit: LimitingValue) -> Tuple[bool, Optional[str]]: + # Manche EV laden mit 6.1A bei 6A Soll-Strom + min_current = (max(control_parameter.min_current, control_parameter.required_current) + + self.ev_template.data.nominal_difference) + max_current = (min(self.ev_template.data.max_current_single_phase, max_current_cp) + - self.ev_template.data.nominal_difference) + phases_in_use = control_parameter.phases + pv_config = data.data.general_data.data.chargemode_config.pv_charging + max_phases_ev = self.ev_template.data.max_phases + if self.charge_template.data.chargemode.pv_charging.feed_in_limit: + feed_in_yield = pv_config.feed_in_yield + else: + feed_in_yield = 0 + all_surplus = data.data.counter_all_data.get_evu_counter().get_usable_surplus(feed_in_yield) + required_surplus = control_parameter.min_current * max_phases_ev * 230 - get_power + condition_1_to_3 = (((max(get_currents) > max_current and + all_surplus > required_surplus) or limit == LimitingValue.UNBALANCED_LOAD.value) and + phases_in_use == 1) + condition_3_to_1 = max(get_currents) < min_current and all_surplus <= 0 and phases_in_use > 1 + if condition_1_to_3 or condition_3_to_1: + return True, None + else: + if phases_in_use > 1 and all_surplus > 0: + return False, self.ENOUGH_POWER + elif phases_in_use == 1 and all_surplus < required_surplus: + return False, self.NOT_ENOUGH_POWER + else: + return False, self.CURRENT_OUT_OF_NOMINAL_DIFFERENCE + + PHASE_SWITCH_DELAY_TEXT = '{} Phasen in {}.' + + def auto_phase_switch(self, + control_parameter: ControlParameter, + cp_num: int, + get_currents: List[float], + get_power: float, + max_current_cp: int, + max_phases: int, + limit: LimitingValue) -> Tuple[int, float, Optional[str]]: + message = None + timestamp_last_phase_switch = control_parameter.timestamp_last_phase_switch + current = control_parameter.required_current + phases_to_use = control_parameter.phases + phases_in_use = control_parameter.phases + pv_config = data.data.general_data.data.chargemode_config.pv_charging + cm_config = data.data.general_data.data.chargemode_config + if self.charge_template.data.chargemode.pv_charging.feed_in_limit: + feed_in_yield = pv_config.feed_in_yield + else: + feed_in_yield = 0 + all_surplus = data.data.counter_all_data.get_evu_counter().get_usable_surplus(feed_in_yield) + delay = cm_config.phase_switch_delay * 60 + if phases_in_use == 1: + direction_str = f"Umschaltung von 1 auf {max_phases}" + required_reserved_power = (control_parameter.min_current * max_phases * 230 - + self.ev_template.data.max_current_single_phase * 230) + + new_phase = max_phases + new_current = control_parameter.min_current + else: + direction_str = f"Umschaltung von {max_phases} auf 1" + # Es kann einphasig mit entsprechend niedriger Leistung gestartet werden. + required_reserved_power = 0 + new_phase = 1 + new_current = self.ev_template.data.max_current_single_phase + + log.debug( + f'Genutzter Strom: {max(get_currents)}A, Überschuss: {all_surplus}W, benötigte neue Leistung: ' + f'{required_reserved_power}W') + # Wenn gerade umgeschaltet wird, darf kein Timer gestartet werden. + if not self.ev_template.data.prevent_phase_switch: + condition, condition_msg = self._check_phase_switch_conditions(control_parameter, + get_currents, + get_power, + max_current_cp, + limit) + if control_parameter.state not in PHASE_SWITCH_STATES: + if condition: + # Wenn nach der Umschaltung weniger Leistung benötigt wird, soll während der Verzögerung keine + # neuen eingeschaltet werden. + data.data.counter_all_data.get_evu_counter( + ).data.set.reserved_surplus += max(0, required_reserved_power) + message = self.PHASE_SWITCH_DELAY_TEXT.format( + direction_str, + timecheck.convert_timestamp_delta_to_time_string(timestamp_last_phase_switch, delay)) + control_parameter.state = ChargepointState.PHASE_SWITCH_DELAY + elif condition_msg: + log.debug(f"Keine Phasenumschaltung{condition_msg}") + else: + if condition: + # Timer laufen lassen + if timecheck.check_timestamp(control_parameter.timestamp_last_phase_switch, delay): + message = self.PHASE_SWITCH_DELAY_TEXT.format( + direction_str, + timecheck.convert_timestamp_delta_to_time_string(timestamp_last_phase_switch, delay)) + else: + data.data.counter_all_data.get_evu_counter( + ).data.set.reserved_surplus -= max(0, required_reserved_power) + phases_to_use = new_phase + current = new_current + log.debug("Phasenumschaltung kann nun durchgeführt werden.") + control_parameter.state = ChargepointState.PHASE_SWITCH_AWAITED + else: + data.data.counter_all_data.get_evu_counter( + ).data.set.reserved_surplus -= max(0, required_reserved_power) + message = f"Verzögerung für die {direction_str} Phasen abgebrochen{condition_msg}" + control_parameter.state = ChargepointState.CHARGING_ALLOWED + + if message: + log.info(f"LP {cp_num}: {message}") + return phases_to_use, current, message + + def reset_phase_switch(self, control_parameter: ControlParameter): + """ Zurücksetzen der Zeitstempel und reservierten Leistung. + + Die Phasenumschaltung kann nicht abgebrochen werden! + """ + if control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY: + # Wenn der Timer läuft, ist den Control-Parametern die alte Phasenzahl hinterlegt. + if control_parameter.phases == 1: + reserved = control_parameter.required_current * \ + 3 * 230 - self.ev_template.data.max_current_single_phase * 230 + data.data.counter_all_data.get_evu_counter().data.set.reserved_surplus -= reserved + log.debug( + "Zurücksetzen der reservierten Leistung für die Phasenumschaltung. reservierte Leistung: " + + str(data.data.counter_all_data.get_evu_counter().data.set.reserved_surplus)) + else: + reserved = self.ev_template.data.max_current_single_phase * \ + 230 - control_parameter.required_current * 3 * 230 + data.data.counter_all_data.get_evu_counter().data.set.reserved_surplus -= reserved + log.debug( + "Zurücksetzen der reservierten Leistung für die Phasenumschaltung. reservierte Leistung: " + + str(data.data.counter_all_data.get_evu_counter().data.set.reserved_surplus)) + + +def get_ev_to_rfid(rfid: str, vehicle_id: Optional[str] = None) -> Optional[int]: + """ ermittelt zum übergebenen ID-Tag das Fahrzeug + + Parameter + --------- + rfid: string + ID-Tag + vehicle_id: string + MAC-Adresse des ID-Tags (nur openWB Pro) + + Return + ------ + vehicle: int + Nummer des EV, das zum Tag gehört + """ + for vehicle in data.data.ev_data: + try: + if "ev" in vehicle: + if vehicle_id is not None and vehicle_id in data.data.ev_data[vehicle].data.tag_id: + log.debug(f"MAC {vehicle_id} wird EV {data.data.ev_data[vehicle].num} zugeordnet.") + return data.data.ev_data[vehicle].num + if rfid in data.data.ev_data[vehicle].data.tag_id: + log.debug(f"RFID {rfid} wird EV {data.data.ev_data[vehicle].num} zugeordnet.") + return data.data.ev_data[vehicle].num + except Exception: + log.exception("Fehler im ev-Modul "+vehicle) + return None + else: + return None diff --git a/packages/control/ev/ev_template.py b/packages/control/ev/ev_template.py new file mode 100644 index 0000000000..8da234a1ff --- /dev/null +++ b/packages/control/ev/ev_template.py @@ -0,0 +1,36 @@ +from dataclasses import dataclass, field + + +@dataclass +class EvTemplateData: + dc_min_current: int = 0 + dc_max_current: int = 0 + name: str = "Fahrzeug-Profil" + max_current_multi_phases: int = 16 + max_phases: int = 3 + phase_switch_pause: int = 2 + prevent_phase_switch: bool = False + prevent_charge_stop: bool = False + control_pilot_interruption: bool = False + control_pilot_interruption_duration: int = 4 + average_consump: float = 17000 + min_current: int = 6 + max_current_single_phase: int = 16 + battery_capacity: float = 82000 + efficiency: float = 90 + nominal_difference: float = 1 + keep_charge_active_duration: int = 40 + + +def ev_template_data_factory() -> EvTemplateData: + return EvTemplateData() + + +@dataclass +class EvTemplate: + """ Klasse mit den EV-Daten + """ + + data: EvTemplateData = field(default_factory=ev_template_data_factory, metadata={ + "topic": "config"}) + et_num: int = 0 diff --git a/packages/control/ev_test.py b/packages/control/ev/ev_test.py similarity index 78% rename from packages/control/ev_test.py rename to packages/control/ev/ev_test.py index 1f3078165f..638d08dec5 100644 --- a/packages/control/ev_test.py +++ b/packages/control/ev/ev_test.py @@ -3,7 +3,7 @@ import pytest -from control.ev import Ev +from control.ev.ev import Ev from helpermodules import timecheck from modules.common.abstract_vehicle import VehicleUpdateData from modules.vehicles.mqtt.config import MqttSocSetup @@ -11,8 +11,8 @@ @pytest.mark.parametrize( - "check_timestamp, charge_state, soc_timestamp, expected_request_soc", - [pytest.param(False, False, None, True, id="no soc_timestamp"), + "check_timestamp, charge_state, soc_request_timestamp, expected_request_soc", + [pytest.param(False, False, None, True, id="no soc_request_timestamp"), pytest.param(True, False, 100, False, id="not charging, not expired"), pytest.param(False, False, 100, True, id="not charging, expired"), pytest.param(True, True, 100, False, id="charging, not expired"), @@ -20,13 +20,13 @@ ]) def test_soc_interval_expired(check_timestamp: bool, charge_state: bool, - soc_timestamp: Optional[float], + soc_request_timestamp: Optional[float], expected_request_soc: bool, monkeypatch): # setup ev = Ev(0) ev.soc_module = create_vehicle(MqttSocSetup(), 0) - ev.data.get.soc_timestamp = soc_timestamp + ev.data.get.soc_request_timestamp = soc_request_timestamp check_timestamp_mock = Mock(return_value=check_timestamp) monkeypatch.setattr(timecheck, "check_timestamp", check_timestamp_mock) diff --git a/packages/control/general.py b/packages/control/general.py index 330434058e..7950eada3d 100644 --- a/packages/control/general.py +++ b/packages/control/general.py @@ -93,11 +93,11 @@ def time_charging_factory() -> TimeCharging: @dataclass class ChargemodeConfig: instant_charging: InstantCharging = field(default_factory=instant_charging_factory) - phase_switch_delay: int = field(default=7, metadata={ + phase_switch_delay: int = field(default=5, metadata={ "topic": "chargemode_config/phase_switch_delay"}) pv_charging: PvCharging = field(default_factory=pv_charging_factory) retry_failed_phase_switches: bool = field( - default=True, + default=False, metadata={"topic": "chargemode_config/retry_failed_phase_switches"}) scheduled_charging: ScheduledCharging = field(default_factory=scheduled_charging_factory) time_charging: TimeCharging = field(default_factory=time_charging_factory) diff --git a/packages/control/ocpp.py b/packages/control/ocpp.py index c2a8edb24b..7d5f3f7901 100644 --- a/packages/control/ocpp.py +++ b/packages/control/ocpp.py @@ -56,6 +56,7 @@ def boot_notification(self: OptionalProtocol, firmware_version=data.data.system_data["system"].data["version"], meter_serial_number=serial_number )) + log.debug(f"BootNotification für Chargebox ID: {chargebox_id} gesendet.") except Exception as e: fault_state.from_exception(e) diff --git a/packages/control/ocpp_test.py b/packages/control/ocpp_test.py index d9e3efa51f..e56eaee676 100644 --- a/packages/control/ocpp_test.py +++ b/packages/control/ocpp_test.py @@ -5,7 +5,7 @@ from control.chargepoint.chargepoint import Chargepoint from control.chargepoint.chargepoint_template import CpTemplate from control.counter import Counter -from control.ev import Ev +from control.ev.ev import Ev from modules.chargepoints.mqtt.chargepoint_module import ChargepointModule from modules.chargepoints.mqtt.config import Mqtt @@ -67,11 +67,11 @@ def test_send_ocpp_data(mock_data, monkeypatch): send_heart_beat_mock = Mock() monkeypatch.setattr(data.data.optional_data, "send_heart_beat", send_heart_beat_mock) - data.data.optional_data.ocpp_boot_notification_sent = False + data.data.optional_data.data.ocpp.boot_notification_sent = False data.data.optional_data._transfer_meter_values() boot_notification_mock.call_args == (("cp1", "mqtt", "123456"),) send_heart_beat_mock.call_args == (("cp1",),) transfer_values_mock.call_args == (("cp1", 1, 0),) - assert data.data.optional_data.ocpp_boot_notification_sent is True + assert data.data.optional_data.data.ocpp.boot_notification_sent is True diff --git a/packages/control/optional.py b/packages/control/optional.py index 8a33678668..dea75d3df8 100644 --- a/packages/control/optional.py +++ b/packages/control/optional.py @@ -14,6 +14,7 @@ from helpermodules.timecheck import create_unix_timestamp_current_full_hour from helpermodules.utils import thread_handler from modules.common.configurable_tariff import ConfigurableElectricityTariff +from modules.common.configurable_monitoring import ConfigurableMonitoring log = logging.getLogger(__name__) @@ -23,12 +24,20 @@ def __init__(self): try: self.data = OptionalData() self.et_module: ConfigurableElectricityTariff = None + self.monitoring_module: ConfigurableMonitoring = None self.data.dc_charging = hardware_configuration.get_hardware_configuration_setting("dc_charging") Pub().pub("openWB/optional/dc_charging", self.data.dc_charging) - self.ocpp_boot_notification_sent = False except Exception: log.exception("Fehler im Optional-Modul") + def monitoring_start(self): + if self.monitoring_module is not None: + self.monitoring_module.start_monitoring() + + def monitoring_stop(self): + if self.mon_module is not None: + self.mon_module.stop_monitoring() + def et_provider_available(self) -> bool: return self.et_module is not None and self.data.et.get.fault_state != 2 @@ -53,7 +62,7 @@ def et_price_lower_than_limit(self, max_price: float): return False def et_get_current_price(self): - return self.data.et.get.prices[str(create_unix_timestamp_current_full_hour())] + return self.data.et.get.prices[str(int(create_unix_timestamp_current_full_hour()))] def et_get_loading_hours(self, duration: float, remaining_time: float) -> List[int]: """ @@ -104,13 +113,14 @@ def ocpp_transfer_meter_values(self): def _transfer_meter_values(self): for cp in data.data.cp_data.values(): try: - if self.ocpp_boot_notification_sent is False: + if self.data.ocpp.boot_notification_sent is False: # Boot-Notfification nicht in der init-Funktion aufrufen, da noch nicht alles initialisiert ist self.boot_notification(cp.data.config.ocpp_chargebox_id, cp.chargepoint_module.fault_state, cp.chargepoint_module.config.type, cp.data.get.serial_number) - self.ocpp_boot_notification_sent = True + self.data.ocpp.boot_notification_sent = True + Pub().pub("openWB/set/optional/ocpp/boot_notification_sent", True) if cp.data.set.ocpp_transaction_id is not None: self.send_heart_beat(cp.data.config.ocpp_chargebox_id, cp.chargepoint_module.fault_state) self.transfer_values(cp.data.config.ocpp_chargebox_id, diff --git a/packages/control/optional_data.py b/packages/control/optional_data.py index 80f7ac4dd3..8b9a76aea4 100644 --- a/packages/control/optional_data.py +++ b/packages/control/optional_data.py @@ -61,6 +61,7 @@ def rfid_factory() -> Rfid: @dataclass class Ocpp: active: bool = False + boot_notification_sent: bool = False url: Optional[str] = None version: str = "ocpp1.6" diff --git a/packages/control/phase_switch.py b/packages/control/phase_switch.py index 4b4df1a51e..40537e7e08 100644 --- a/packages/control/phase_switch.py +++ b/packages/control/phase_switch.py @@ -4,7 +4,7 @@ import threading import time -from control.ev import Ev +from control.ev.ev import Ev from helpermodules.utils._thread_handler import is_thread_alive, thread_handler from modules.common.abstract_chargepoint import AbstractChargepoint diff --git a/packages/control/process.py b/packages/control/process.py index f0f0b12547..cce967d51e 100644 --- a/packages/control/process.py +++ b/packages/control/process.py @@ -27,7 +27,6 @@ def process_algorithm_results(self) -> None: for cp in data.data.cp_data.values(): try: control_parameter = cp.data.control_parameter - cp.remember_previous_values() if cp.data.set.charging_ev != -1: # Ladelog-Daten müssen vor dem Setzen des Stroms gesammelt werden, # damit bei Phasenumschaltungs-empfindlichen EV sicher noch nicht geladen wurde. @@ -35,8 +34,9 @@ def process_algorithm_results(self) -> None: cp.initiate_control_pilot_interruption() cp.initiate_phase_switch() if control_parameter.state == ChargepointState.NO_CHARGING_ALLOWED and cp.data.set.current != 0: - control_parameter.state = ChargepointState.CHARGING_ALLOWED + control_parameter.state = ChargepointState.WAIT_FOR_USING_PHASES self._update_state(cp) + cp.set_timestamp_charge_start() else: # LP, an denen nicht geladen werden darf if cp.data.set.charging_ev_prev != -1: @@ -58,6 +58,7 @@ def process_algorithm_results(self) -> None: if cp.chargepoint_module.fault_state.fault_state != FaultStateLevel.NO_ERROR: cp.chargepoint_module.fault_state.store_error() modules_threads.append(self._start_charging(cp)) + cp.remember_previous_values() except Exception: log.exception("Fehler im Process-Modul für Ladepunkt "+str(cp)) for bat_component in get_controllable_bat_components(): @@ -100,8 +101,7 @@ def _update_state(self, chargepoint: chargepoint.Chargepoint) -> None: "LP"+str(chargepoint.num)+": Ladung wurde trotz verhinderter Unterbrechung gestoppt.") # Wenn ein EV zugeordnet ist und die Phasenumschaltung aktiv ist, darf kein Strom gesetzt werden. - if (chargepoint.data.control_parameter.timestamp_perform_phase_switch is not None or - chargepoint.data.control_parameter.state == ChargepointState.PERFORMING_PHASE_SWITCH): + if chargepoint.data.control_parameter.state == ChargepointState.PERFORMING_PHASE_SWITCH: current = 0 chargepoint.data.set.current = current diff --git a/packages/helpermodules/abstract_plans.py b/packages/helpermodules/abstract_plans.py index b690c0a20f..60586a9944 100644 --- a/packages/helpermodules/abstract_plans.py +++ b/packages/helpermodules/abstract_plans.py @@ -1,5 +1,5 @@ from dataclasses import dataclass, field -from typing import List +from typing import List, Optional def once_factory() -> List: @@ -63,6 +63,7 @@ class TimeframePlan(PlanBase): class ScheduledChargingPlan(PlanBase): current: int = 14 dc_current: float = 145 + id: Optional[int] = None name: str = "neuer Zielladen-Plan" limit: ScheduledLimit = field(default_factory=scheduled_limit_factory) time: str = "07:00" # ToDo: aktuelle Zeit verwenden @@ -73,9 +74,10 @@ class TimeChargingPlan(TimeframePlan): name: str = "neuer Zeitladen-Plan" current: int = 16 dc_current: float = 145 + id: Optional[int] = None limit: Limit = field(default_factory=limit_factory) @dataclass class AutolockPlan(TimeframePlan): - name: str = "neuer Autolock-Plan" + name: str = "neuer Plan für Sperren nach Uhrzeit" diff --git a/packages/helpermodules/broker.py b/packages/helpermodules/broker.py index 7f24b15e74..ab7feb3149 100644 --- a/packages/helpermodules/broker.py +++ b/packages/helpermodules/broker.py @@ -1,5 +1,5 @@ +import datetime import logging -import os import paho.mqtt.client as mqtt import time from typing import Callable @@ -7,10 +7,19 @@ log = logging.getLogger(__name__) +def get_name_suffix() -> str: + with open('/proc/cpuinfo', 'r') as f: + for line in f: + if line[0:6] == 'Serial': + serial = line[10:26] + serial = "0000000000000000" + return f"{serial}-{datetime.datetime.today().timestamp()}" + + class InternalBrokerClient: def __init__(self, name: str, on_connect: Callable, on_message: Callable) -> None: try: - self.name = f"openWB-{name}-{self._get_serial()}" + self.name = f"openWB-{name}-{get_name_suffix()}" self.client = mqtt.Client(self.name) self.client.on_connect = on_connect self.client.on_message = on_message @@ -30,20 +39,11 @@ def disconnect(self) -> None: self.client.disconnect() log.info(f"Verbindung von Client {self.name} geschlossen.") - def _get_serial(self) -> str: - """ Extract serial from cpuinfo file - """ - with open('/proc/cpuinfo', 'r') as f: - for line in f: - if line[0:6] == 'Serial': - return line[10:26] - return "0000000000000000" - class InternalBrokerPublisher: def __init__(self) -> None: try: - self.client = mqtt.Client(f"openWB-python-bulkpublisher-{os.getpid()}") + self.client = mqtt.Client(f"openWB-python-bulkpublisher-{get_name_suffix()}") self.client.connect("localhost", 1886) except Exception: log.exception("Fehler beim Verbindungsaufbau zum Bulkpublisher") diff --git a/packages/helpermodules/command.py b/packages/helpermodules/command.py index de9ada6524..edba8e6098 100644 --- a/packages/helpermodules/command.py +++ b/packages/helpermodules/command.py @@ -16,7 +16,10 @@ from control.chargepoint.chargepoint_template import get_autolock_plan_default, get_chargepoint_template_default # ToDo: move to module commands if implemented +from control.ev.charge_template import get_new_charge_template +from control.ev.ev_template import EvTemplateData from helpermodules import pub +from helpermodules.abstract_plans import ScheduledChargingPlan, TimeChargingPlan from helpermodules.utils.run_command import run_command from modules.backup_clouds.onedrive.api import generateMSALAuthCode, retrieveMSALTokens @@ -28,7 +31,8 @@ from helpermodules.pub import Pub, pub_single from helpermodules.subdata import SubData from helpermodules.utils.topic_parser import decode_payload -from control import bat, bridge, data, ev, counter, counter_all, pv +from control import bat, bridge, data, counter, counter_all, pv +from control.ev import ev from modules.chargepoints.internal_openwb.chargepoint_module import ChargepointModule from modules.chargepoints.internal_openwb.config import InternalChargepointMode from modules.common.component_type import ComponentType, special_to_general_type_mapping, type_to_topic_mapping @@ -192,7 +196,7 @@ def setup_added_chargepoint(): if check_num_msg is not None: pub_user_message( payload, connection_id, f"{check_num_msg} Wenn Sie weitere Ladepunkte anbinden wollen, müssen Sie " - "diese als externe Ladepunkte anbinden. Die externen Ladepunkte in den Steuerungsmodus 'secondary'" + "diese als secondary openWB anbinden. Die weiteren Ladepunkte in den Steuerungsmodus 'secondary'" " versetzen.", MessageType.ERROR) return chargepoint_config["id"] = new_id @@ -217,7 +221,7 @@ def setup_added_chargepoint(): else: pub_user_message(payload, connection_id, "Bitte zuerst einen EVU-Zähler konfigurieren oder in den Steuerungsmodus 'secondary' " - "umschalten, wenn die openWB als externer Ladepunkt betrieben werden soll.", + "umschalten.", MessageType.ERROR) MAX_NUM_OF_DUOS_REACHED = ("Es können maximal zwei interne Ladepunkte für eine openWB Series 1/2 Duo konfiguriert " @@ -307,7 +311,7 @@ def addAutolockPlan(self, connection_id: str, payload: dict) -> None: Pub().pub("openWB/set/command/max_id/autolock_plan", new_id) pub_user_message( payload, connection_id, - f'Neuer Autolock-Plan mit ID \'{new_id}\' zu Profil ' + f'Neuer Plan für Sperren nach Uhrzeit mit ID \'{new_id}\' zu Profil ' f'\'{payload["data"]["template"]}\' hinzugefügt.', MessageType.SUCCESS) @@ -325,7 +329,7 @@ def removeAutolockPlan(self, connection_id: str, payload: dict) -> None: "") pub_user_message( payload, connection_id, - f'Autolock-Plan mit ID \'{payload["data"]["plan"]}\' vom Profil ' + f'Plan für Sperren nach Uhrzeit mit ID \'{payload["data"]["plan"]}\' vom Profil ' f'\'{payload["data"]["template"]}\' gelöscht.', MessageType.SUCCESS) @@ -333,7 +337,7 @@ def addChargeTemplate(self, connection_id: str, payload: dict) -> None: """ sendet das Topic, zu dem ein neues Lade-Profil erstellt werden soll. """ new_id = self.max_id_charge_template + 1 - charge_template_default = ev.get_new_charge_template() + charge_template_default = get_new_charge_template() Pub().pub("openWB/set/vehicle/template/charge_template/" + str(new_id), charge_template_default) self.max_id_charge_template = new_id @@ -362,11 +366,12 @@ def addChargeTemplateSchedulePlan(self, connection_id: str, payload: dict) -> No """ sendet das Topic, zu dem ein neuer Zielladen-Plan erstellt werden soll. """ new_id = self.max_id_charge_template_scheduled_plan + 1 - charge_template_default = dataclass_utils.asdict(ev.ScheduledChargingPlan()) + charge_template_default = ScheduledChargingPlan() + charge_template_default.id = new_id Pub().pub( f'openWB/set/vehicle/template/charge_template/{payload["data"]["template"]}' f'/chargemode/scheduled_charging/plans/{new_id}', - charge_template_default) + dataclass_utils.asdict(charge_template_default)) self.max_id_charge_template_scheduled_plan = new_id Pub().pub( "openWB/set/command/max_id/charge_template_scheduled_plan", new_id) @@ -398,11 +403,12 @@ def addChargeTemplateTimeChargingPlan(self, connection_id: str, payload: dict) - """ sendet das Topic, zu dem ein neuer Zeitladen-Plan erstellt werden soll. """ new_id = self.max_id_charge_template_time_charging_plan + 1 - time_charging_plan_default = dataclass_utils.asdict(ev.TimeChargingPlan()) + time_charging_plan_default = TimeChargingPlan() + time_charging_plan_default.id = new_id Pub().pub( f'openWB/set/vehicle/template/charge_template/{payload["data"]["template"]}' f'/time_charging/plans/{new_id}', - time_charging_plan_default) + dataclass_utils.asdict(time_charging_plan_default)) self.max_id_charge_template_time_charging_plan = new_id Pub().pub( "openWB/set/command/max_id/charge_template_time_charging_plan", new_id) @@ -483,7 +489,7 @@ def addEvTemplate(self, connection_id: str, payload: dict) -> None: """ sendet das Topic, zu dem ein neues Fahrzeug-Profil erstellt werden soll. """ new_id = self.max_id_ev_template + 1 - ev_template_default = dataclass_utils.asdict(ev.EvTemplateData()) + ev_template_default = dataclass_utils.asdict(EvTemplateData()) Pub().pub(f'openWB/set/vehicle/template/ev_template/{new_id}', ev_template_default) self.max_id_ev_template = new_id Pub().pub("openWB/set/command/max_id/ev_template", new_id) @@ -742,6 +748,16 @@ def dataMigration(self, connection_id: str, payload: dict) -> None: migrate_data.migrate() pub_user_message(payload, connection_id, "Datenübernahme abgeschlossen.", MessageType.SUCCESS) + def removeCloudBridge(self, connection_id: str, payload: dict): + received_id = ProcessBrokerBranch("system/mqtt/bridge/").get_cloud_id() + if received_id: + Pub().pub("openWB/set/command/removeMqttBridge/todo", { + "command": "removeMqttBridge", + "data": { + "bridge": int(received_id[0]) + } + }) + class ErrorHandlingContext: def __init__(self, payload: dict, connection_id: str): @@ -818,6 +834,15 @@ def check_mqtt_bridge_exists(self, name: str) -> bool: log.exception("Fehler im Command-Modul") return self.mqtt_bridge_exists + def get_cloud_id(self): + try: + self.ids = [] + InternalBrokerClient("processBrokerBranch", self.on_connect, self.__on_message_cloud_id).start_finite_loop() + return self.ids + except Exception: + log.exception("Fehler im Command-Modul") + return [] + def on_connect(self, client, userdata, flags, rc): """ connect to broker and subscribe to set topics """ @@ -875,3 +900,11 @@ def __on_message_mqtt_bridge_exists(self, client, userdata, msg): self.mqtt_bridge_exists = True except Exception: log.exception("Fehler in ProcessBrokerBranch") + + def __on_message_cloud_id(self, client, userdata, msg): + try: + if decode_payload(msg.payload)['remote']['is_openwb_cloud']: + id = msg.topic.replace("openWB/"+self.topic_str, "") + self.ids.append(id) + except Exception: + log.exception("Fehler in ProcessBrokerBranch") diff --git a/packages/helpermodules/create_debug.py b/packages/helpermodules/create_debug.py index f5c1f1d657..461b46f802 100644 --- a/packages/helpermodules/create_debug.py +++ b/packages/helpermodules/create_debug.py @@ -203,7 +203,8 @@ def write_to_file(file_handler, func, default: Optional[Any] = None): data = f.read() req.get_http_session().put("https://openwb.de/tools/debug2.php", data=data, - params={'debugemail': debug_email}) + params={'debugemail': debug_email}, + timeout=10) log.info("***** cleanup...") os.remove(debug_file) diff --git a/packages/helpermodules/data_migration/data_migration.py b/packages/helpermodules/data_migration/data_migration.py index 810b0d0e51..369641a846 100644 --- a/packages/helpermodules/data_migration/data_migration.py +++ b/packages/helpermodules/data_migration/data_migration.py @@ -18,7 +18,8 @@ from threading import Thread from typing import Callable, Dict, List, Optional, Union -from control import data, ev +from control import data +from control.ev import ev from dataclass_utils import dataclass_from_dict import dataclass_utils from helpermodules.data_migration.id_mapping import MapId diff --git a/packages/helpermodules/logger.py b/packages/helpermodules/logger.py index 06bd3c6c6e..93fafcf7e5 100644 --- a/packages/helpermodules/logger.py +++ b/packages/helpermodules/logger.py @@ -5,12 +5,91 @@ import sys import threading import typing_extensions +import re FORMAT_STR_DETAILED = '%(asctime)s - {%(name)s:%(lineno)s} - {%(levelname)s:%(threadName)s} - %(message)s' FORMAT_STR_SHORT = '%(asctime)s - %(message)s' RAMDISK_PATH = str(Path(__file__).resolve().parents[2]) + '/ramdisk/' PERSISTENT_LOG_PATH = str(Path(__file__).resolve().parents[2]) + '/data/log/' +KNOWN_SENSITIVE_FIELDS = [ + 'password', 'secret', 'token', 'apikey', 'access_token', + 'refresh_token', 'accesstoken', 'refreshtoken' +] +REDACTION_PATTERNS = [ + (r'({field})[=:]([^\s&]+)', r'\1=***REDACTED***'), # field=value, i.e. for URL query parameters + (r'"{field}":\s*"(.*?)"', r'"{field}": "***REDACTED***"'), # "field": "value", JSON formatted data + (r'\'{field}\':\s*\'(.*?)\'', r"'{field}': '***REDACTED***'") # 'field': 'value', JSON formatted data +] + + +def redact_sensitive_info(message: str, additional_fields: list = None) -> str: + """ + Redacts sensitive information from the given message. + + This function replaces occurrences of known sensitive fields and their values + in the message with a redaction placeholder (***REDACTED***). The fields to be + redacted are defined in the KNOWN_SENSITIVE_FIELDS list. The function uses + predefined patterns to identify and replace the sensitive information. + + Args: + message (str): The log message to be redacted. + + Returns: + str: The redacted log message. + """ + fields_to_redact = KNOWN_SENSITIVE_FIELDS + (additional_fields or []) + for field in fields_to_redact: + for pattern, replacement in REDACTION_PATTERNS: + pattern = pattern.replace('{field}', field) + replacement = replacement.replace('{field}', field) + message = re.sub(pattern, replacement, message, flags=re.IGNORECASE) + return message + + +class RedactingFilter(logging.Filter): + """ + A logging filter that redacts sensitive information from log messages. + + This filter replaces occurrences of known sensitive fields and their values + in the log message with a redaction placeholder (***REDACTED***). The fields to be + redacted are defined in the KNOWN_SENSITIVE_FIELDS list. Additional fields to be + redacted can be specified using the 'redact_fields' key in the 'extra' parameter + when logging. + + Example: + log.debug("sample data with redaction=" + dumps(data, indent=4), extra={'redact_fields': 'username,password'}) + + Args: + name (str): The name of the filter. + """ + def __init__(self, name: str = ''): + super().__init__(name) + + def filter(self, record: logging.LogRecord) -> bool: + """ + Redacts sensitive information from the log record's message. + + This method formats the log message with its arguments, applies the redaction + logic to replace sensitive information, and updates the log record's message. + + Args: + record (logging.LogRecord): The log record to be filtered. + extra (dict, optional): Additional fields to be redacted, specified using the 'redact_fields' key. + + Returns: + bool: True to indicate that the log record should be processed. + """ + + message = record.getMessage() # required for lazy formatting like urllib3 + + additional_fields = getattr(record, 'redact_fields', '') + fields_to_redact = KNOWN_SENSITIVE_FIELDS + [ + field.strip() for field in additional_fields.split(',') if field.strip()] + record.msg = redact_sensitive_info(message, fields_to_redact) + record.args = () + return True + def filter_neg(name: str, record) -> bool: if name in record.threadName: @@ -30,6 +109,7 @@ def mb_to_bytes(megabytes: int) -> int: # Mehrere kleine Dateien verwenden, damit nicht zu viel verworfen wird, wenn die Datei voll ist. main_file_handler = RotatingFileHandler(RAMDISK_PATH + 'main.log', maxBytes=mb_to_bytes(5.5), backupCount=4) main_file_handler.setFormatter(logging.Formatter(FORMAT_STR_DETAILED)) + main_file_handler.addFilter(RedactingFilter()) logging.basicConfig(level=logging.DEBUG, handlers=[main_file_handler]) logging.getLogger().handlers[0].addFilter(functools.partial(filter_neg, "soc")) logging.getLogger().handlers[0].addFilter(functools.partial(filter_neg, "Internal Chargepoint")) @@ -40,6 +120,7 @@ def mb_to_bytes(megabytes: int) -> int: 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_file_handler) data_migration_log = logging.getLogger("data_migration") @@ -47,22 +128,26 @@ def mb_to_bytes(megabytes: int) -> int: 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_file_handler) 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_file_handler) 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_log_handler) 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()) logging.getLogger().addHandler(soc_log_handler) internal_chargepoint_log_handler = RotatingFileHandler(RAMDISK_PATH + 'internal_chargepoint.log', @@ -70,12 +155,14 @@ def mb_to_bytes(megabytes: int) -> int: backupCount=1) internal_chargepoint_log_handler.setFormatter(logging.Formatter(FORMAT_STR_DETAILED)) internal_chargepoint_log_handler.addFilter(functools.partial(filter_pos, "Internal Chargepoint")) + internal_chargepoint_log_handler.addFilter(RedactingFilter()) logging.getLogger().addHandler(internal_chargepoint_log_handler) 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_file_handler) diff --git a/packages/helpermodules/measurement_logging/process_log.py b/packages/helpermodules/measurement_logging/process_log.py index 4a2dfc3ca6..df1bc191ee 100644 --- a/packages/helpermodules/measurement_logging/process_log.py +++ b/packages/helpermodules/measurement_logging/process_log.py @@ -28,7 +28,7 @@ def get_default_charge_log_columns() -> Dict: "time_end": True, "time_time_charged": True, "data_costs": True, - "data_power_source": False, + "data_power_source": True, "vehicle_name": True, "vehicle_chargemode": True, "vehicle_prio": True, diff --git a/packages/helpermodules/measurement_logging/update_yields.py b/packages/helpermodules/measurement_logging/update_yields.py index 73961bae15..02ecccbc08 100644 --- a/packages/helpermodules/measurement_logging/update_yields.py +++ b/packages/helpermodules/measurement_logging/update_yields.py @@ -5,12 +5,12 @@ from control import data from control.chargepoint.chargepoint import Chargepoint +from control.ev.ev import Ev from control.pv_all import PvAll +from control.pv import Pv from helpermodules import timecheck from helpermodules.measurement_logging.process_log import get_totals from helpermodules.pub import Pub -from control.ev import Ev -from control.pv import Pv log = logging.getLogger(__name__) diff --git a/packages/helpermodules/measurement_logging/write_log.py b/packages/helpermodules/measurement_logging/write_log.py index 18641423fd..92707c9215 100644 --- a/packages/helpermodules/measurement_logging/write_log.py +++ b/packages/helpermodules/measurement_logging/write_log.py @@ -1,4 +1,5 @@ from enum import Enum +import os import json import logging from math import isnan @@ -144,6 +145,10 @@ def save_log(log_type: LogType): content = json.load(jsonFile) except FileNotFoundError: content = {"entries": [], "names": {}} + except json.JSONDecodeError: + new_filepath = str(parent_file / f"{file_name}_invalid.json") + os.rename(filepath, new_filepath) + content = {"entries": [], "names": {}} previous_entry = get_previous_entry(parent_file, content) diff --git a/packages/helpermodules/setdata.py b/packages/helpermodules/setdata.py index 8dc6292998..dec04bf379 100644 --- a/packages/helpermodules/setdata.py +++ b/packages/helpermodules/setdata.py @@ -423,7 +423,8 @@ def process_vehicle_topic(self, msg: mqtt.MQTTMessage): elif ("/charge_template" in msg.topic or "/ev_template" in msg.topic): self._validate_value(msg, int, [(0, float("inf"))]) - elif "/get/soc_timestamp" in msg.topic: + elif ("/get/soc_request_timestamp" in msg.topic or + "/get/soc_timestamp" in msg.topic): self._validate_value(msg, float) elif "/get/soc" in msg.topic: self._validate_value(msg, float, [(0, 100)]) @@ -528,7 +529,8 @@ def process_chargepoint_topic(self, msg: mqtt.MQTTMessage): if ("/set/charging_ev" in msg.topic or "/set/charging_ev_prev" in msg.topic): self._validate_value(msg, int, [(-1, float("inf"))]) - elif "/set/current" in msg.topic: + elif ("/set/current" in msg.topic or + "/set/current_prev" in msg.topic): if hardware_configuration.get_hardware_configuration_setting("dc_charging"): self._validate_value(msg, float, [(0, 0), (6, 32), (0, 450)]) else: @@ -574,14 +576,13 @@ def process_chargepoint_topic(self, msg: mqtt.MQTTMessage): elif "/control_parameter/prio" in msg.topic: self._validate_value(msg, bool) elif "/control_parameter/current_plan" in msg.topic: - self._validate_value(msg, str) + self._validate_value(msg, int) elif ("/control_parameter/imported_instant_charging" in msg.topic or "/control_parameter/imported_at_plan_start" in msg.topic or "/control_parameter/min_current" in msg.topic or "/control_parameter/timestamp_switch_on_off" in msg.topic or - "/control_parameter/timestamp_auto_phase_switch" in msg.topic or "/control_parameter/timestamp_charge_start" in msg.topic or - "/control_parameter/timestamp_perform_phase_switch" in msg.topic): + "/control_parameter/timestamp_last_phase_switch" in msg.topic): self._validate_value(msg, float, [(0, float("inf"))]) elif "/control_parameter/state" in msg.topic: self._validate_value(msg, int, [(0, 7)]) @@ -621,7 +622,8 @@ def process_chargepoint_get_topics(self, msg): self._validate_value(msg, bool) elif "/get/fault_state" in msg.topic: self._validate_value(msg, int, [(0, 2)]) - elif "/get/evse_current" in msg.topic: + elif ("/get/evse_current" in msg.topic or + "/get/max_evse_current" in msg.topic): self._validate_value(msg, float, [(0, 0), (6, 32), (600, 3200)]) elif ("/get/error_timestamp" in msg.topic or "/get/rfid_timestamp" in msg.topic): @@ -783,7 +785,7 @@ def process_general_topic(self, msg: mqtt.MQTTMessage): elif "openWB/set/general/chargemode_config/pv_charging/switch_off_threshold" in msg.topic: self._validate_value(msg, float) elif "openWB/set/general/chargemode_config/phase_switch_delay" in msg.topic: - self._validate_value(msg, int, [(1, 15)]) + self._validate_value(msg, int, [(5, 20)]) elif "openWB/set/general/chargemode_config/pv_charging/control_range" in msg.topic: self._validate_value(msg, int, collection=list) elif (("openWB/set/general/chargemode_config/pv_charging/phases_to_use" in msg.topic or @@ -862,17 +864,17 @@ def process_optional_topic(self, msg: mqtt.MQTTMessage): elif ("openWB/set/optional/et/provider" in msg.topic or "openWB/set/optional/ocpp/config" in msg.topic): self._validate_value(msg, "json") + elif "openWB/set/optional/monitoring" in msg.topic: + self._validate_value(msg, "json") elif "openWB/set/optional/rfid/active" in msg.topic: self._validate_value(msg, bool) elif "openWB/set/optional/int_display/rotation" in msg.topic: self._validate_value(msg, int, [(0, 0), (90, 90), (180, 180), (270, 270)]) - elif "openWB/set/optional/int_display/active" in msg.topic: - self._validate_value(msg, bool) - elif "openWB/set/optional/int_display/on_if_plugged_in" in msg.topic: - self._validate_value(msg, bool) - elif "openWB/set/optional/int_display/only_local_charge_points" in msg.topic: - self._validate_value(msg, bool) - elif "openWB/set/optional/int_display/pin_active" in msg.topic: + elif ("openWB/set/optional/int_display/active" in msg.topic or + "openWB/set/optional/ocpp/boot_notification_sent" in msg.topic or + "openWB/set/optional/int_display/on_if_plugged_in" in msg.topic or + "openWB/set/optional/int_display/only_local_charge_points" in msg.topic or + "openWB/set/optional/int_display/pin_active" in msg.topic): self._validate_value(msg, bool) elif "openWB/set/optional/int_display/pin_code" in msg.topic: self._validate_value(msg, str) diff --git a/packages/helpermodules/subdata.py b/packages/helpermodules/subdata.py index 82a99dfb7b..f834771322 100644 --- a/packages/helpermodules/subdata.py +++ b/packages/helpermodules/subdata.py @@ -9,15 +9,18 @@ import subprocess import paho.mqtt.client as mqtt -from control import bat_all, bat, counter, counter_all, ev, general, optional, pv, pv_all +from control import bat_all, bat, counter, counter_all, general, optional, pv, pv_all from control.chargepoint import chargepoint from control.chargepoint.chargepoint_all import AllChargepoints from control.chargepoint.chargepoint_data import Log from control.chargepoint.chargepoint_state_update import ChargepointStateUpdate from control.chargepoint.chargepoint_template import CpTemplate, CpTemplateData +from control.ev.charge_template import ChargeTemplate, ChargeTemplateData +from control.ev import ev +from control.ev.ev_template import EvTemplate, EvTemplateData from control.optional_data import Ocpp from helpermodules import graph, system -from helpermodules.abstract_plans import AutolockPlan +from helpermodules.abstract_plans import AutolockPlan, ScheduledChargingPlan, TimeChargingPlan from helpermodules.broker import InternalBrokerClient from helpermodules.messaging import MessageType, pub_system_message from helpermodules.utils.run_command import run_command @@ -49,8 +52,8 @@ class SubData: pv_data: Dict[str, pv.Pv] = {} pv_all_data = pv_all.PvAll() ev_data: Dict[str, ev.Ev] = {} - ev_template_data: Dict[str, ev.EvTemplate] = {} - ev_charge_template_data: Dict[str, ev.ChargeTemplate] = {} + ev_template_data: Dict[str, EvTemplate] = {} + ev_charge_template_data: Dict[str, ChargeTemplate] = {} counter_data: Dict[str, counter.Counter] = {} counter_all_data = counter_all.CounterAll() bat_all_data = bat_all.BatAll() @@ -331,7 +334,7 @@ def process_vehicle_charge_template_topic(self, var: Dict[str, ev.ChargeTemplate str(index_second)+" in dem Lade-Profil "+str(index)+" gefunden werden.") else: var["ct"+index].data.chargemode.scheduled_charging.plans[ - index_second] = dataclass_from_dict(ev.ScheduledChargingPlan, decode_payload(msg.payload)) + index_second] = dataclass_from_dict(ScheduledChargingPlan, decode_payload(msg.payload)) self.event_scheduled_charging_plan.set() elif re.search("/vehicle/template/charge_template/[0-9]+/time_charging/plans/[0-9]+$", msg.topic) is not None: @@ -344,20 +347,20 @@ def process_vehicle_charge_template_topic(self, var: Dict[str, ev.ChargeTemplate str(index_second)+" in dem Lade-Profil "+str(index)+" gefunden werden.") else: var["ct"+index].data.time_charging.plans[ - index_second] = dataclass_from_dict(ev.TimeChargingPlan, decode_payload(msg.payload)) + index_second] = dataclass_from_dict(TimeChargingPlan, decode_payload(msg.payload)) self.event_time_charging_plan.set() else: # Pläne unverändert übernehmen scheduled_charging_plans = var["ct" + index].data.chargemode.scheduled_charging.plans time_charging_plans = var["ct" + index].data.time_charging.plans - var["ct" + index].data = dataclass_from_dict(ev.ChargeTemplateData, decode_payload(msg.payload)) + var["ct" + index].data = dataclass_from_dict(ChargeTemplateData, decode_payload(msg.payload)) var["ct"+index].data.time_charging.plans = time_charging_plans var["ct"+index].data.chargemode.scheduled_charging.plans = scheduled_charging_plans self.event_charge_template.set() except Exception: log.exception("Fehler im subdata-Modul") - def process_vehicle_ev_template_topic(self, var: Dict[str, ev.EvTemplate], msg: mqtt.MQTTMessage): + def process_vehicle_ev_template_topic(self, var: Dict[str, EvTemplate], msg: mqtt.MQTTMessage): """ Handler für die EV-Topics Parameter @@ -375,8 +378,8 @@ def process_vehicle_ev_template_topic(self, var: Dict[str, ev.EvTemplate], msg: var.pop("et"+index) else: if "et"+index not in var: - var["et"+index] = ev.EvTemplate(et_num=int(index)) - var["et" + index].data = dataclass_from_dict(ev.EvTemplateData, decode_payload(msg.payload)) + var["et"+index] = EvTemplate(et_num=int(index)) + var["et" + index].data = dataclass_from_dict(EvTemplateData, decode_payload(msg.payload)) self.event_ev_template.set() except Exception: log.exception("Fehler im subdata-Modul") @@ -682,6 +685,20 @@ def process_optional_topic(self, var: optional.Optional, msg: mqtt.MQTTMessage): elif re.search("/optional/ocpp/", msg.topic) is not None: config_dict = decode_payload(msg.payload) var.data.ocpp = dataclass_from_dict(Ocpp, config_dict) + elif re.search("/optional/monitoring/", msg.topic) is not None: + # do not reconfigure monitoring if topic is received on startup + if self.event_subdata_initialized.is_set(): + config = decode_payload(msg.payload) + if config["type"] is None: + var.monitoring_stop() + var.monitoring_module = None + else: + mod = importlib.import_module(f".monitoring.{config['type']}.api", "modules") + config = dataclass_from_dict(mod.device_descriptor.configuration_factory, config) + var.monitoring_module = mod.create_monitoring(config) + var.monitoring_start() + else: + log.debug("skipping monitoring config on startup") else: self.set_json_payload_class(var.data, msg) except Exception: @@ -825,6 +842,11 @@ def process_system_topic(self, client: mqtt.Client, var: dict, msg: mqtt.MQTTMes var["system"].backup_cloud = ConfigurableBackupCloud(config, mod.create_backup_cloud) elif "openWB/system/backup_cloud/backup_before_update" in msg.topic: self.set_json_payload(var["system"].data["backup_cloud"], msg) + elif ("openWB/system/dataprotection_acknowledged" == msg.topic and + decode_payload(msg.payload) is False): + Pub().pub("openWB/set/command/removeCloudBridge/todo", { + "command": "removeCloudBridge" + }) else: if "module_update_completed" in msg.topic: self.event_module_update_completed.set() @@ -843,6 +865,7 @@ def process_system_topic(self, client: mqtt.Client, var: dict, msg: mqtt.MQTTMes elif "openWB/system/debug_level" == msg.topic: logging.getLogger().setLevel(decode_payload(msg.payload)) self.set_json_payload(var["system"].data, msg) + except Exception: log.exception("Fehler im subdata-Modul") diff --git a/packages/helpermodules/timecheck_test.py b/packages/helpermodules/timecheck_test.py index e8a0ce920e..0f602383ae 100644 --- a/packages/helpermodules/timecheck_test.py +++ b/packages/helpermodules/timecheck_test.py @@ -3,7 +3,7 @@ from unittest.mock import MagicMock, Mock import pytest -from control.ev import ChargeTemplate +from control.ev.charge_template import ChargeTemplate from helpermodules import timecheck from helpermodules.abstract_plans import AutolockPlan, Frequency, ScheduledChargingPlan, TimeChargingPlan diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 7e2b99b84d..1ef2073582 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -8,11 +8,7 @@ import time from typing import List, Optional from paho.mqtt.client import Client as MqttClient, MQTTMessage -from control.bat_all import BatConsiderationMode -from control.chargepoint.charging_type import ChargingType -from control.counter import get_counter_default_config -from control.general import ChargemodeConfig -from control.optional_data import Ocpp + import dataclass_utils from control.chargepoint.chargepoint_template import get_chargepoint_template_default @@ -33,8 +29,14 @@ from helpermodules.utils.run_command import run_command from helpermodules.utils.topic_parser import decode_payload, get_index, get_second_index from control import counter_all -from control import ev -from control.general import Prices +from control.bat_all import BatConsiderationMode +from control.chargepoint.charging_type import ChargingType +from control.counter import get_counter_default_config +from control.ev.charge_template import get_charge_template_default +from control.ev import ev +from control.ev.ev_template import EvTemplateData +from control.general import ChargemodeConfig, Prices +from control.optional_data import Ocpp from modules.common.abstract_vehicle import GeneralVehicleConfig from modules.common.component_type import ComponentType from modules.devices.sungrow.sungrow.version import Version @@ -49,7 +51,7 @@ class UpdateConfig: - DATASTORE_VERSION = 65 + DATASTORE_VERSION = 75 valid_topic = [ "^openWB/bat/config/configured$", "^openWB/bat/config/power_limit_mode$", @@ -91,8 +93,7 @@ class UpdateConfig: "^openWB/chargepoint/[0-9]+/control_parameter/limit$", "^openWB/chargepoint/[0-9]+/control_parameter/prio$", "^openWB/chargepoint/[0-9]+/control_parameter/required_current$", - "^openWB/chargepoint/[0-9]+/control_parameter/timestamp_auto_phase_switch$", - "^openWB/chargepoint/[0-9]+/control_parameter/timestamp_perform_phase_switch$", + "^openWB/chargepoint/[0-9]+/control_parameter/timestamp_last_phase_switch$", "^openWB/chargepoint/[0-9]+/control_parameter/timestamp_switch_on_off$", "^openWB/chargepoint/[0-9]+/control_parameter/used_amount_instant_charging$", "^openWB/chargepoint/[0-9]+/control_parameter/phases$", @@ -103,6 +104,7 @@ class UpdateConfig: "^openWB/chargepoint/[0-9]+/get/fault_state$", "^openWB/chargepoint/[0-9]+/get/fault_str$", "^openWB/chargepoint/[0-9]+/get/frequency$", + "^openWB/chargepoint/[0-9]+/get/max_evse_current$", "^openWB/chargepoint/[0-9]+/get/plug_state$", "^openWB/chargepoint/[0-9]+/get/phases_in_use$", "^openWB/chargepoint/[0-9]+/get/exported$", @@ -260,6 +262,7 @@ class UpdateConfig: "^openWB/optional/int_display/theme$", "^openWB/optional/int_display/only_local_charge_points", "^openWB/optional/led/active$", + "^openWB/optional/monitoring/config$", "^openWB/optional/rfid/active$", "^openWB/optional/ocpp/config$", @@ -300,6 +303,7 @@ class UpdateConfig: "^openWB/vehicle/[0-9]+/get/force_soc_update$", "^openWB/vehicle/[0-9]+/get/range$", "^openWB/vehicle/[0-9]+/get/soc$", + "^openWB/vehicle/[0-9]+/get/soc_request_timestamp$", "^openWB/vehicle/[0-9]+/get/soc_timestamp$", "^openWB/vehicle/[0-9]+/match_ev/selected$", "^openWB/vehicle/[0-9]+/match_ev/tag_id$", @@ -405,6 +409,7 @@ class UpdateConfig: "^openWB/system/configurable/devices_components$", "^openWB/system/configurable/electricity_tariffs$", "^openWB/system/configurable/display_themes$", + "^openWB/system/configurable/monitoring$", "^openWB/system/configurable/ripple_control_receivers$", "^openWB/system/configurable/soc_modules$", "^openWB/system/configurable/web_themes$", @@ -453,9 +458,9 @@ class UpdateConfig: ("openWB/vehicle/0/ev_template", ev.Ev(0).ev_template.et_num), ("openWB/vehicle/0/tag_id", ev.Ev(0).data.tag_id), ("openWB/vehicle/0/get/soc", ev.Ev(0).data.get.soc), - ("openWB/vehicle/template/ev_template/0", asdict(ev.EvTemplateData(name="Standard-Fahrzeug-Profil", - min_current=10))), - ("openWB/vehicle/template/charge_template/0", ev.get_charge_template_default()), + ("openWB/vehicle/template/ev_template/0", asdict(EvTemplateData(name="Standard-Fahrzeug-Profil", + min_current=10))), + ("openWB/vehicle/template/charge_template/0", get_charge_template_default()), ("openWB/general/charge_log_data_config", get_default_charge_log_columns()), ("openWB/general/chargemode_config/instant_charging/phases_to_use", 3), ("openWB/general/chargemode_config/pv_charging/bat_mode", BatConsiderationMode.EV_MODE.value), @@ -465,7 +470,7 @@ class UpdateConfig: ("openWB/general/chargemode_config/pv_charging/bat_power_reserve", 200), ("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active", True), ("openWB/general/chargemode_config/pv_charging/control_range", [0, 230]), - ("openWB/general/chargemode_config/pv_charging/switch_off_threshold", 50), + ("openWB/general/chargemode_config/pv_charging/switch_off_threshold", 0), ("openWB/general/chargemode_config/pv_charging/switch_off_delay", 60), ("openWB/general/chargemode_config/pv_charging/switch_on_delay", 30), ("openWB/general/chargemode_config/pv_charging/switch_on_threshold", 1500), @@ -512,6 +517,7 @@ class UpdateConfig: ("openWB/optional/int_display/theme", dataclass_utils.asdict(CardsDisplayTheme())), ("openWB/optional/int_display/only_local_charge_points", False), ("openWB/optional/led/active", False), + ("openWB/optional/monitoring/config", NO_MODULE), ("openWB/optional/ocpp/config", dataclass_utils.asdict(Ocpp())), ("openWB/optional/rfid/active", False), ("openWB/system/backup_cloud/config", NO_MODULE), @@ -1839,3 +1845,115 @@ def upgrade_datastore_64(self) -> None: 'https://wb-solution.de/shop/', MessageType.INFO) self.__update_topic("openWB/system/datastore_version", 65) + + def upgrade_datastore_65(self) -> None: + # sungrow version fixed in upgrade_datastore_71 + self.__update_topic("openWB/system/datastore_version", 66) + + def upgrade_datastore_66(self) -> None: + def upgrade(topic: str, payload) -> None: + if re.search("openWB/system/device/[0-9]+", topic) is not None: + payload = decode_payload(payload) + # add type + if payload.get("type") == "huawei" and "type" not in payload["configuration"]: + payload["configuration"].update({"type": "s_dongle"}) + Pub().pub(topic, payload) + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 67) + + def upgrade_datastore_67(self) -> None: + def upgrade(topic: str, payload) -> Optional[dict]: + if "openWB/general/chargemode_config/phase_switch_delay" == topic: + if decode_payload(payload) < 5: + return {"openWB/general/chargemode_config/phase_switch_delay": 5} + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 68) + + def upgrade_datastore_68(self) -> None: + def upgrade(topic: str, payload) -> None: + if re.search("openWB/system/device/[0-9]+", topic) is not None: + payload = decode_payload(payload) + index = get_index(topic) + if payload.get("type") == "discovergy": + for component_topic, component_payload in self.all_received_topics.items(): + if re.search(f"openWB/system/device/{index}/component/[0-9]+/config", + component_topic) is not None: + config_payload = decode_payload(component_payload) + if "info" not in config_payload: + config_payload.update({"info": {"manufacturer": None, "model": None}}) + return {component_topic: config_payload} + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 69) + + def upgrade_datastore_69(self) -> None: + def upgrade(topic: str, payload) -> Optional[dict]: + if (re.search("openWB/vehicle/template/charge_template/[0-9]+/chargemode/scheduled_charging/plans/[0-9]+", + topic) is not None or + re.search("openWB/vehicle/template/charge_template/[0-9]+/time_charging/plans/[0-9]+", + topic) is not None): + payload = decode_payload(payload) + payload["id"] = int(get_second_index(topic)) + return {topic: payload} + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 70) + + def upgrade_datastore_70(self) -> None: + def upgrade(topic: str, payload) -> None: + if re.search("openWB/vehicle/[0-9]+/soc_module/config", topic) is not None: + payload = decode_payload(payload) + # replace smarteq soc module by no_module + if payload.get("type") == "smarteq": + payload = NO_MODULE + Pub().pub(topic, payload) + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 71) + + def upgrade_datastore_71(self) -> None: + def upgrade(topic: str, payload) -> None: + if re.search("openWB/system/device/[0-9]+", topic) is not None: + payload = decode_payload(payload) + # update firmware of Sungrow + if payload.get("type") == "sungrow": + if "firmware" not in payload["configuration"]: + payload["configuration"].update({"firmware": "v1"}) + elif payload["configuration"].get("firmware") == "v111": + payload["configuration"]["firmware"] = "v1" + elif payload["configuration"].get("firmware") == "v112": + payload["configuration"]["firmware"] = "v2" + Pub().pub(topic, payload) + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 72) + + def upgrade_datastore_72(self) -> None: + def upgrade(topic: str, payload) -> None: + if re.search("openWB/vehicle/[0-9]+/soc_module/config", topic) is not None: + payload = decode_payload(payload) + # replace bmw soc module by no_module + if payload.get("type") == "bmw": + payload = NO_MODULE + Pub().pub(topic, payload) + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 73) + + def upgrade_datastore_73(self) -> None: + def upgrade(topic: str, payload) -> Optional[dict]: + # add manufacturer and model to components + if re.search("openWB/system/device/[0-9]+/component/[0-9]+/config", topic) is not None: + config_payload = decode_payload(payload) + if "info" not in config_payload: + config_payload.update({"info": {"manufacturer": None, "model": None}}) + return {topic: config_payload} + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 74) + + def upgrade_datastore_74(self) -> None: + def upgrade(topic: str, payload) -> None: + if re.search("openWB/system/device/[0-9]+", topic) is not None: + payload = decode_payload(payload) + # update firmware of Sungrow + if payload.get("type") == "solax": + if "version" not in payload["configuration"]: + payload["configuration"].update({"version": "g3"}) + Pub().pub(topic, payload) + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 75) diff --git a/packages/helpermodules/utils/error_handling.py b/packages/helpermodules/utils/error_handling.py index 50153c188a..0545c503f2 100644 --- a/packages/helpermodules/utils/error_handling.py +++ b/packages/helpermodules/utils/error_handling.py @@ -30,7 +30,7 @@ def __exit__(self, exception_type, exception, exception_traceback) -> bool: Pub().pub(self.topic, self.error_timestamp) log.error(exception) if self.hide_exception is False or timecheck.check_timestamp(self.error_timestamp, self.timeout) is False: - raise exception + return False return True def error_counter_exceeded(self) -> bool: diff --git a/packages/modules/vehicles/bmw/__init__.py b/packages/modules/chargepoints/external_openwb/__init__.py similarity index 100% rename from packages/modules/vehicles/bmw/__init__.py rename to packages/modules/chargepoints/external_openwb/__init__.py diff --git a/packages/modules/chargepoints/external_openwb/config.py b/packages/modules/chargepoints/external_openwb/config.py index 50c322aeb5..92f3c67431 100644 --- a/packages/modules/chargepoints/external_openwb/config.py +++ b/packages/modules/chargepoints/external_openwb/config.py @@ -11,7 +11,7 @@ def __init__(self, ip_address: Optional[str] = None, duo_num: int = 0): class OpenWBSeries(SetupChargepoint[OpenWBSeriesConfiguration]): def __init__(self, - name: str = "Externe openWB", + name: str = "Secondary openWB", type: str = "external_openwb", id: int = 0, configuration: OpenWBSeriesConfiguration = None) -> None: diff --git a/packages/modules/chargepoints/internal_openwb/config.py b/packages/modules/chargepoints/internal_openwb/config.py index 94f7f6253d..435d157937 100644 --- a/packages/modules/chargepoints/internal_openwb/config.py +++ b/packages/modules/chargepoints/internal_openwb/config.py @@ -4,9 +4,10 @@ class InternalChargepointMode(Enum): - SOCKET = "socket" DUO = "duo" + PRO_PLUS = "pro_plus" SERIES = "series" + SOCKET = "socket" class InternalOpenWBConfiguration: diff --git a/packages/modules/chargepoints/openwb_pro/chargepoint_module.py b/packages/modules/chargepoints/openwb_pro/chargepoint_module.py index e9e839755e..f6c71843da 100644 --- a/packages/modules/chargepoints/openwb_pro/chargepoint_module.py +++ b/packages/modules/chargepoints/openwb_pro/chargepoint_module.py @@ -37,6 +37,16 @@ def __init__(self, config: OpenWBPro) -> None: 'http://' + self.config.configuration.ip_address + '/connect.php', data={'heartbeatenabled': '1'}) + def set_internal_context_handlers(self, parent_cp, parent_hostname): + self.fault_state = FaultState(ComponentInfo( + parent_cp, + "Ladepunkt "+str(self.config.id), + "chargepoint", + parent_id=parent_cp, + parent_hostname=parent_hostname)) + self.client_error_context = ErrorTimerContext( + f"openWB/set/internal_chargepoint/{self.config.id}/get/error_timestamp", CP_ERROR, hide_exception=True) + def set_current(self, current: float) -> None: if self.client_error_context.error_counter_exceeded(): current = 0 @@ -47,51 +57,55 @@ def set_current(self, current: float) -> None: def get_values(self) -> None: with SingleComponentUpdateContext(self.fault_state): - with self.client_error_context: - ip_address = self.config.configuration.ip_address - json_rsp = self.__session.get('http://'+ip_address+'/connect.php').json() - - chargepoint_state = ChargepointState( - power=json_rsp["power_all"], - powers=json_rsp["powers"], - currents=json_rsp["currents"], - imported=json_rsp["imported"], - exported=json_rsp["exported"], - plug_state=json_rsp["plug_state"], - charge_state=json_rsp["charge_state"], - phases_in_use=json_rsp["phases_in_use"], - vehicle_id=json_rsp["vehicle_id"], - evse_current=json_rsp["offered_current"], - serial_number=json_rsp["serial"] - ) - - if json_rsp.get("voltages"): - meter_msg = check_meter_values(json_rsp["voltages"]) - if meter_msg: - self.fault_state.warning(meter_msg) - chargepoint_state.voltages = json_rsp["voltages"] - if json_rsp.get("soc_value"): - chargepoint_state.soc = json_rsp["soc_value"] - if json_rsp.get("soc_timestamp"): - chargepoint_state.soc_timestamp = json_rsp["soc_timestamp"] - if json_rsp.get("frequency"): - chargepoint_state.frequency = json_rsp["frequency"] - if json_rsp.get("rfid_tag"): - chargepoint_state.rfid = json_rsp["rfid_tag"] - if json_rsp.get("rfid_timestamp"): - chargepoint_state.rfid_timestamp = json_rsp["rfid_timestamp"] - - self.validate_values(chargepoint_state) - self.store.set(chargepoint_state) - self.old_chargepoint_state = chargepoint_state - self.client_error_context.reset_error_counter() - if self.client_error_context.error_counter_exceeded(): - chargepoint_state = ChargepointState() - chargepoint_state.plug_state = False - chargepoint_state.charge_state = False - chargepoint_state.imported = self.old_chargepoint_state.imported - chargepoint_state.exported = self.old_chargepoint_state.exported - self.store.set(chargepoint_state) + chargepoint_state = self.request_values() + self.store.set(chargepoint_state) + + def request_values(self) -> ChargepointState: + with self.client_error_context: + chargepoint_state = self.old_chargepoint_state + ip_address = self.config.configuration.ip_address + json_rsp = self.__session.get('http://'+ip_address+'/connect.php').json() + + chargepoint_state = ChargepointState( + power=json_rsp["power_all"], + powers=json_rsp["powers"], + currents=json_rsp["currents"], + imported=json_rsp["imported"], + exported=json_rsp["exported"], + plug_state=json_rsp["plug_state"], + charge_state=json_rsp["charge_state"], + phases_in_use=json_rsp["phases_in_use"], + vehicle_id=json_rsp["vehicle_id"], + evse_current=json_rsp["offered_current"], + serial_number=json_rsp["serial"] + ) + + if json_rsp.get("voltages"): + meter_msg = check_meter_values(json_rsp["voltages"]) + if meter_msg: + self.fault_state.warning(meter_msg) + chargepoint_state.voltages = json_rsp["voltages"] + if json_rsp.get("soc_value"): + chargepoint_state.soc = json_rsp["soc_value"] + if json_rsp.get("soc_timestamp"): + chargepoint_state.soc_timestamp = json_rsp["soc_timestamp"] + if json_rsp.get("frequency"): + chargepoint_state.frequency = json_rsp["frequency"] + if json_rsp.get("rfid_tag"): + chargepoint_state.rfid = json_rsp["rfid_tag"] + if json_rsp.get("rfid_timestamp"): + chargepoint_state.rfid_timestamp = json_rsp["rfid_timestamp"] + + self.validate_values(chargepoint_state) + self.old_chargepoint_state = chargepoint_state + self.client_error_context.reset_error_counter() + if self.client_error_context.error_counter_exceeded(): + chargepoint_state = ChargepointState() + chargepoint_state.plug_state = False + chargepoint_state.charge_state = False + chargepoint_state.imported = self.old_chargepoint_state.imported + chargepoint_state.exported = self.old_chargepoint_state.exported + return chargepoint_state def validate_values(self, chargepoint_state: ChargepointState) -> None: if chargepoint_state.charge_state is False and max(chargepoint_state.currents) > 1: diff --git a/packages/modules/chargepoints/openwb_pro/chargepoint_module_test.py b/packages/modules/chargepoints/openwb_pro/chargepoint_module_test.py index af4a237c8f..583a2ea1d9 100644 --- a/packages/modules/chargepoints/openwb_pro/chargepoint_module_test.py +++ b/packages/modules/chargepoints/openwb_pro/chargepoint_module_test.py @@ -134,6 +134,7 @@ def sample_wrong_charge_state(): sample_wrong_charge_state = sample() sample_wrong_charge_state.update({'charge_state': False, 'currents': [0, 2, 0], + 'power_all': 0, 'date': '2023:01:30-18:48:31', 'evse_signaling': 'fake'}) return sample_wrong_charge_state @@ -160,9 +161,10 @@ def sample_chargepoint_state_resetted(): pytest.param(sample(), 1652683242, None, None, sample_chargepoint_state(), id="Timestamp gesetzt, kein Fehler aufgetreten"), pytest.param(sample_wrong_charge_state(), None, None, 1652683252, - None, id="kein Timestamp gesetzt, Fehler aufgetreten"), + sample_wrong_charge_state_chargepoint_state(), id="kein Timestamp gesetzt, Fehler aufgetreten"), pytest.param(sample_wrong_charge_state(), 1652683242, None, 1652683242, - None, id="Timestamp gesetzt, Fehler aufgetreten, Timestamp nicht abgelaufen"), + sample_wrong_charge_state_chargepoint_state(), + id="Timestamp gesetzt, Fehler aufgetreten, Timestamp nicht abgelaufen"), pytest.param(sample_wrong_charge_state(), 1652683182, ValueError, 1652683182, sample_chargepoint_state_resetted(), id="Timestamp gesetzt, Fehler aufgetreten, Timestamp abgelaufen"), diff --git a/packages/modules/chargepoints/openwb_pro/config.py b/packages/modules/chargepoints/openwb_pro/config.py index db54fe1672..cab0724e61 100644 --- a/packages/modules/chargepoints/openwb_pro/config.py +++ b/packages/modules/chargepoints/openwb_pro/config.py @@ -11,7 +11,7 @@ def __init__(self, ip_address: Optional[str] = None, duo_num: int = 0): class OpenWBPro(SetupChargepoint[OpenWBProConfiguration]): def __init__(self, - name: str = "openWB Pro", + name: str = "openWB Pro (nicht Pro+)", type: str = "openwb_pro", id: int = 0, configuration: OpenWBProConfiguration = None) -> None: diff --git a/packages/modules/chargepoints/openwb_series2_satellit/chargepoint_module.py b/packages/modules/chargepoints/openwb_series2_satellit/chargepoint_module.py index 9c31a449a5..20734da31f 100644 --- a/packages/modules/chargepoints/openwb_series2_satellit/chargepoint_module.py +++ b/packages/modules/chargepoints/openwb_series2_satellit/chargepoint_module.py @@ -40,6 +40,7 @@ def __init__(self, config: OpenWBseries2Satellit) -> None: f"openWB/set/chargepoint/{self.config.id}/get/error_timestamp", CP_ERROR, hide_exception=True) self._create_client() self._validate_version() + self.max_evse_current = self._client.evse_client.get_max_current() def delay_second_cp(self, delay: float): if self.config.configuration.duo_num == 0: @@ -93,7 +94,8 @@ def get_values(self) -> None: plug_state=plug_state, charge_state=charge_state, phases_in_use=phases_in_use, - serial_number=self._client.meter_client.get_serial_number() + serial_number=self._client.meter_client.get_serial_number(), + max_evse_current=self.max_evse_current ) self.store.set(chargepoint_state) self.client_error_context.reset_error_counter() diff --git a/packages/modules/chargepoints/smartwb/chargepoint_module.py b/packages/modules/chargepoints/smartwb/chargepoint_module.py index 8ec904ec53..cbf4b3b19d 100644 --- a/packages/modules/chargepoints/smartwb/chargepoint_module.py +++ b/packages/modules/chargepoints/smartwb/chargepoint_module.py @@ -75,6 +75,8 @@ def get_values(self) -> None: else: tag = None + max_evse_current = json_rsp["maxCurrent"] + resp = self.session.get('http://'+ip_address+'/evseHost', timeout=timeout) mac = resp.json()["list"][0]["mac"] @@ -87,7 +89,8 @@ def get_values(self) -> None: phases_in_use=self.phases_in_use, voltages=voltages, rfid=tag, - serial_number=mac + serial_number=mac, + max_evse_current=max_evse_current ) self.store.set(chargepoint_state) diff --git a/packages/modules/chargepoints/smartwb/smartwb_test.py b/packages/modules/chargepoints/smartwb/smartwb_test.py index ba978bcc38..32890476a3 100644 --- a/packages/modules/chargepoints/smartwb/smartwb_test.py +++ b/packages/modules/chargepoints/smartwb/smartwb_test.py @@ -28,7 +28,8 @@ class TestSmartWb: plug_state=True, charge_state=False, phases_in_use=3, - serial_number="94:B9:7E:69:F0:D1" + serial_number="94:B9:7E:69:F0:D1", + max_evse_current=32 ) SAMPLE_V1 = { "type": "parameters", @@ -61,7 +62,8 @@ class TestSmartWb: charge_state=True, rfid="0a1b2c3d", rfid_timestamp=1652683252, - serial_number="94:B9:7E:69:F0:D1" + serial_number="94:B9:7E:69:F0:D1", + max_evse_current=16 ) SAMPLE_V2 = { "type": "parameters", @@ -100,7 +102,8 @@ class TestSmartWb: rfid="0a1b2c3d", rfid_timestamp=1652683252, phases_in_use=1, - serial_number="94:B9:7E:69:F0:D1" + serial_number="94:B9:7E:69:F0:D1", + max_evse_current=16 ) SAMPLE_NOT_CHARGING_V2 = { "type": "parameters", diff --git a/packages/modules/common/abstract_vehicle.py b/packages/modules/common/abstract_vehicle.py index 206f7a52ff..3772b4c63d 100644 --- a/packages/modules/common/abstract_vehicle.py +++ b/packages/modules/common/abstract_vehicle.py @@ -11,6 +11,7 @@ class VehicleUpdateData: efficiency: float = 90 soc_from_cp: Optional[float] = None timestamp_soc_from_cp: Optional[int] = None + soc_timestamp: Optional[int] = None @dataclass diff --git a/packages/modules/common/component_state.py b/packages/modules/common/component_state.py index fa2a904658..3a56202ea0 100644 --- a/packages/modules/common/component_state.py +++ b/packages/modules/common/component_state.py @@ -130,7 +130,7 @@ def __init__( @auto_str class CarState: - def __init__(self, soc: float, range: Optional[float] = None, soc_timestamp: float = 0): + def __init__(self, soc: float, range: Optional[float] = None, soc_timestamp: Optional[float] = None): """Args: soc: actual state of charge in percent range: actual range in km @@ -138,7 +138,13 @@ def __init__(self, soc: float, range: Optional[float] = None, soc_timestamp: flo """ self.soc = soc self.range = range - self.soc_timestamp = soc_timestamp + if soc_timestamp is None: + self.soc_timestamp = timecheck.create_timestamp() + else: + if soc_timestamp > 1e10: # Convert soc_timestamp to seconds if it is in milliseconds + log.debug(f'Zeitstempel {soc_timestamp} ist in ms, wird in s gewandelt. Modul sollte angepasst werden.') + soc_timestamp /= 1000 + self.soc_timestamp = soc_timestamp @auto_str @@ -164,7 +170,8 @@ def __init__(self, soc: Optional[float] = None, soc_timestamp: Optional[int] = None, evse_current: Optional[float] = None, - vehicle_id: Optional[str] = None): + vehicle_id: Optional[str] = None, + max_evse_current: Optional[int] = None): self.currents, self.powers, self.voltages = _calculate_powers_and_currents(currents, powers, voltages) self.frequency = frequency self.imported = imported @@ -188,6 +195,7 @@ def __init__(self, self.soc = soc self.soc_timestamp = soc_timestamp self.evse_current = evse_current + self.max_evse_current = max_evse_current self.vehicle_id = vehicle_id diff --git a/packages/modules/common/configurable_monitoring.py b/packages/modules/common/configurable_monitoring.py new file mode 100644 index 0000000000..27b7b18889 --- /dev/null +++ b/packages/modules/common/configurable_monitoring.py @@ -0,0 +1,22 @@ +import logging +from typing import Callable + + +log = logging.getLogger(__name__) + + +class ConfigurableMonitoring(): + def __init__(self, + start_initializer: Callable[[], None], + stop_initializer: Callable[[], None]) -> None: + try: + self._start_monitoring = start_initializer + self._stop_monitoring = stop_initializer + except Exception: + log.exception("Fehler im Monitoring Modul") + + def start_monitoring(self): + self._start_monitoring() + + def stop_monitoring(self): + self._stop_monitoring() diff --git a/packages/modules/common/configurable_tariff.py b/packages/modules/common/configurable_tariff.py index e8c06b2e3a..f7091fda91 100644 --- a/packages/modules/common/configurable_tariff.py +++ b/packages/modules/common/configurable_tariff.py @@ -25,7 +25,7 @@ def update(self): # Wenn beim Initialisieren etwas schief gelaufen ist, ursprüngliche Fehlermeldung beibehalten with SingleComponentUpdateContext(self.fault_state): tariff_state = self._component_updater() - current_hour = create_unix_timestamp_current_full_hour() + current_hour = str(int(create_unix_timestamp_current_full_hour())) self.store.set(tariff_state) self.store.update() for timestamp in tariff_state.prices.keys(): diff --git a/packages/modules/common/configurable_vehicle.py b/packages/modules/common/configurable_vehicle.py index 23282f503c..a9ecba4f2c 100644 --- a/packages/modules/common/configurable_vehicle.py +++ b/packages/modules/common/configurable_vehicle.py @@ -73,7 +73,14 @@ def update(self, vehicle_update_data: VehicleUpdateData): self.calculated_soc_state.soc_start = car_state.soc Pub().pub(f"openWB/set/vehicle/{self.vehicle}/soc_module/calculated_soc_state", asdict(self.calculated_soc_state)) - self.store.set(car_state) + if vehicle_update_data.soc_timestamp is None or vehicle_update_data.soc_timestamp < car_state.soc_timestamp: + # Nur wenn der SoC neuer ist als der bisherige, diesen setzen. + self.store.set(car_state) + elif vehicle_update_data.soc_timestamp > 1e10: + # car_state ist in ms geschrieben, dieser kann überschrieben werden + self.store.set(car_state) + else: + log.debug("Not updating SoC, because timestamp is older.") def _get_carstate_source(self, vehicle_update_data: VehicleUpdateData) -> SocSource: if isinstance(self.vehicle_config, MqttSocSetup): @@ -105,7 +112,7 @@ def _get_carstate_source(self, vehicle_update_data: VehicleUpdateData) -> SocSou # Wenn SoC vom LP nicht mehr aktuell, dann berechnen. return SocSource.CALCULATION - def _get_carstate_by_source(self, vehicle_update_data, source): + def _get_carstate_by_source(self, vehicle_update_data: VehicleUpdateData, source: SocSource) -> CarState: if source == SocSource.API: return self.__component_updater(vehicle_update_data) elif source == SocSource.CALCULATION: @@ -116,7 +123,8 @@ def _get_carstate_by_source(self, vehicle_update_data, source): self.calculated_soc_state.soc_start, vehicle_update_data.battery_capacity)) elif source == SocSource.CP: - return CarState(vehicle_update_data.soc_from_cp) + return CarState(soc=vehicle_update_data.soc_from_cp, + soc_timestamp=vehicle_update_data.timestamp_soc_from_cp) elif source == SocSource.MANUAL: soc = self.calculated_soc_state.manual_soc or self.calculated_soc_state.soc_start self.calculated_soc_state.manual_soc = None diff --git a/packages/modules/common/evse.py b/packages/modules/common/evse.py index e4857e614d..670b779056 100644 --- a/packages/modules/common/evse.py +++ b/packages/modules/common/evse.py @@ -47,6 +47,8 @@ def get_plug_charge_state(self) -> Tuple[bool, bool, float]: str(state)+", Soll-Stromstärke: "+str(set_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 def get_firmware_version(self) -> int: @@ -90,3 +92,8 @@ 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) + + def get_max_current(self) -> int: + time.sleep(0.1) + current = self.client.read_holding_registers(2007, ModbusDataType.UINT_16, unit=self.id) + return current diff --git a/packages/modules/common/hardware_check.py b/packages/modules/common/hardware_check.py index 4f19914f65..fcb5cb508c 100644 --- a/packages/modules/common/hardware_check.py +++ b/packages/modules/common/hardware_check.py @@ -19,7 +19,8 @@ METER_NO_SERIAL_NUMBER = ("Die Seriennummer des Zählers für das Ladelog kann nicht ausgelesen werden. Wenn Sie die " "Seriennummer für Abrechnungszwecke benötigen, wenden Sie sich bitte an unseren Support. Die " "Funktionalität wird dadurch nicht beeinträchtigt!") -EVSE_BROKEN = "Auslesen der EVSE nicht möglich. Vermutlich ist die EVSE defekt oder hat eine unbekannte Modbus-ID." +EVSE_BROKEN = ("Auslesen der EVSE nicht möglich. Vermutlich ist die EVSE defekt oder hat eine unbekannte Modbus-ID. " + "(Fehlermeldung nur relevant, wenn diese auf der Startseite oder im Status angezeigt wird.)") def check_meter_values(voltages: List[float]) -> Optional[str]: diff --git a/packages/modules/common/simcount/_simcounter_store.py b/packages/modules/common/simcount/_simcounter_store.py index b8d61326bd..2c0cb14158 100644 --- a/packages/modules/common/simcount/_simcounter_store.py +++ b/packages/modules/common/simcount/_simcounter_store.py @@ -194,6 +194,11 @@ def restore_last_energy(topic: str, value: str): data.data.system_data[f"device{device_id}"].components[f"component{component_id}"].component_config.type) module = getattr(data.data, f"{module_type}_data")[f"{module_type}{get_second_index(topic)}"].data.get return getattr(module, value) + except AttributeError: + if (value == "imported" and + "inverter" in data.data.system_data[f"device{device_id}"].components[ + f"component{component_id}"].component_config.type): + return 0 except ValueError: # Wenn kein Index enthalten, ist es Hausverbrauch. if value == "exported": diff --git a/packages/modules/common/store/_car.py b/packages/modules/common/store/_car.py index 34621bd12a..6933ba7b9f 100644 --- a/packages/modules/common/store/_car.py +++ b/packages/modules/common/store/_car.py @@ -27,6 +27,9 @@ def update(self): pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc", self.state.soc, 2) if self.state.range: pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/range", self.state.range, 2) + if self.state.soc_timestamp: + pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc_timestamp", self.state.soc_timestamp) + except Exception as e: raise FaultState.from_exception(e) diff --git a/packages/modules/common/store/_chargepoint.py b/packages/modules/common/store/_chargepoint.py index 631040c511..608408c0fb 100644 --- a/packages/modules/common/store/_chargepoint.py +++ b/packages/modules/common/store/_chargepoint.py @@ -51,6 +51,7 @@ def update(self): pub_to_broker("openWB/set/chargepoint/" + str(self.num) + "/get/soc_timestamp", self.state.soc_timestamp) pub_to_broker("openWB/set/chargepoint/" + str(self.num) + "/get/evse_current", self.state.evse_current) pub_to_broker("openWB/set/chargepoint/" + str(self.num) + "/get/vehicle_id", self.state.vehicle_id) + pub_to_broker("openWB/set/chargepoint/" + str(self.num) + "/get/max_evse_current", self.state.max_evse_current) def get_chargepoint_value_store(id: int) -> ValueStore[ChargepointState]: diff --git a/packages/modules/common/store/_chargepoint_internal.py b/packages/modules/common/store/_chargepoint_internal.py index d3d9a9a041..e1ab78736d 100644 --- a/packages/modules/common/store/_chargepoint_internal.py +++ b/packages/modules/common/store/_chargepoint_internal.py @@ -31,6 +31,8 @@ def update(self): "/get/serial_number", self.state.serial_number) pub_to_broker("openWB/set/internal_chargepoint/" + str(self.num) + "/get/evse_current", self.state.evse_current, 2) + pub_to_broker("openWB/set/internal_chargepoint/" + str(self.num) + + "/get/max_evse_current", self.state.max_evse_current, 2) def get_internal_chargepoint_value_store(id: int) -> ValueStore[ChargepointState]: diff --git a/packages/modules/common/store/_counter.py b/packages/modules/common/store/_counter.py index a66430b247..06254e4dac 100644 --- a/packages/modules/common/store/_counter.py +++ b/packages/modules/common/store/_counter.py @@ -93,11 +93,16 @@ def add_exported(element): for element in elements: if element["type"] == ComponentType.CHARGEPOINT.value: chargepoint = data.data.cp_data[f"cp{element['id']}"] - self.currents = list(map(add, - self.currents, - convert_cp_currents_to_evu_currents( - chargepoint.data.config.phase_1, - chargepoint.data.get.currents))) + try: + self.currents = list(map(add, + self.currents, + convert_cp_currents_to_evu_currents( + chargepoint.data.config.phase_1, + chargepoint.data.get.currents))) + except KeyError: + raise KeyError("Für den virtuellen Zähler muss der Anschluss der Phasen von Ladepunkt" + f" {chargepoint.data.config.name} an die Phasen des EVU Zählers " + "angegeben werden.") self.power += chargepoint.data.get.power self.imported += chargepoint.data.get.imported elif element["type"] == ComponentType.BAT.value: diff --git a/packages/modules/configuration.py b/packages/modules/configuration.py index b44d832e4f..625bfe3488 100644 --- a/packages/modules/configuration.py +++ b/packages/modules/configuration.py @@ -19,6 +19,7 @@ def pub_configurable(): _pub_configurable_devices_components() _pub_configurable_chargepoints() _pub_configurable_ripple_control_receivers() + _pub_configurable_monitoring() def _pub_configurable_backup_clouds() -> None: @@ -292,7 +293,12 @@ def create_chargepoints_list(path_list): return chargepoints path_list = Path(_get_packages_path()/"modules"/"chargepoints").glob('**/chargepoint_module.py') - Pub().pub("openWB/set/system/configurable/chargepoints", create_chargepoints_list(path_list)) + cp_list = create_chargepoints_list(path_list) + # Nach Umbennnung der "Externen openWB" zu "Secondary openWB" soll der Eintrag weiterhin an zweiter Stelle + # stehen + cp_list.remove({'value': 'external_openwb', 'text': 'Secondary openWB'}) + cp_list.insert(1, {'value': 'external_openwb', 'text': 'Secondary openWB'}) + Pub().pub("openWB/set/system/configurable/chargepoints", cp_list) path_list = Path(_get_packages_path()/"modules" / "chargepoints/internal_openwb").glob('**/chargepoint_module.py') @@ -336,5 +342,39 @@ def _pub_configurable_ripple_control_receivers() -> None: log.exception("Fehler im configuration-Modul") +def _pub_configurable_monitoring() -> None: + try: + monitoring = [] + path_list = Path(_get_packages_path()/"modules"/"monitoring").glob('**/config.py') + for path in path_list: + try: + if path.name.endswith("_test.py"): + # Tests überspringen + continue + dev_defaults = importlib.import_module( + f".monitoring.{path.parts[-2]}.api", "modules").device_descriptor.configuration_factory() + monitoring.append({ + "value": dev_defaults.type, + "text": dev_defaults.name, + "defaults": dataclass_utils.asdict(dev_defaults) + }) + except Exception: + log.exception("Fehler im configuration-Modul") + monitoring = sorted(monitoring, key=lambda d: d['text'].upper()) + # "leeren" Eintrag an erster Stelle einfügen + monitoring.insert(0, + { + "value": None, + "text": "- kein Monitoring -", + "defaults": { + "type": None, + "configuration": {} + } + }) + Pub().pub("openWB/set/system/configurable/monitoring", monitoring) + except Exception: + log.exception("Fehler im configuration-Modul") + + def _get_packages_path() -> Path: return Path(__file__).resolve().parents[2]/"packages" diff --git a/packages/modules/devices/alpha_ess/alpha_ess/counter.py b/packages/modules/devices/alpha_ess/alpha_ess/counter.py index 47cfbad965..9682ab8333 100644 --- a/packages/modules/devices/alpha_ess/alpha_ess/counter.py +++ b/packages/modules/devices/alpha_ess/alpha_ess/counter.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 import time -from typing import Dict, Union +from typing import Callable, Dict, Union from dataclass_utils import dataclass_from_dict from modules.devices.alpha_ess.alpha_ess.config import AlphaEssConfiguration, AlphaEssCounterSetup @@ -29,22 +29,23 @@ def __init__(self, def update(self): time.sleep(0.1) - counter_state = self.__get_values_factory() + factory_method = self.__get_values_factory() + counter_state = factory_method(self.__modbus_id) self.store.set(counter_state) - def __get_values_factory(self) -> CounterState: + def __get_values_factory(self) -> Callable[[int], CounterState]: if self.__device_config.source == 0 and self.__device_config.version == 0: return self.__get_values_before_v123 else: return self.__get_values_since_v123 - def __get_values_before_v123(self) -> CounterState: + def __get_values_before_v123(self, unit: int) -> CounterState: power, exported, imported = self.__tcp_client.read_holding_registers( - 0x6, [modbus.ModbusDataType.INT_32] * 3, unit=self.__modbus_id) + 0x6, [modbus.ModbusDataType.INT_32] * 3, unit=unit) exported *= 10 imported *= 10 currents = [val / 230 for val in self.__tcp_client.read_holding_registers( - 0x0000, [ModbusDataType.INT_32]*3, unit=self.__modbus_id)] + 0x0000, [ModbusDataType.INT_32]*3, unit=unit)] counter_state = CounterState( currents=currents, @@ -54,14 +55,13 @@ def __get_values_before_v123(self) -> CounterState: ) return counter_state - def __get_values_since_v123(self) -> CounterState: - power = self.__tcp_client.read_holding_registers(0x0021, ModbusDataType.INT_32, unit=self.__modbus_id) + def __get_values_since_v123(self, unit: int) -> CounterState: + power = self.__tcp_client.read_holding_registers(0x0021, ModbusDataType.INT_32, unit=unit) exported, imported = [ val * 10 for val in self.__tcp_client.read_holding_registers( - 0x0010, [ModbusDataType.INT_32] * 2, unit=self.__modbus_id - )] + 0x0010, [ModbusDataType.INT_32] * 2, unit=unit)] currents = [val / 1000 for val in self.__tcp_client.read_holding_registers( - 0x0017, [ModbusDataType.INT_16]*3, unit=self.__modbus_id)] + 0x0017, [ModbusDataType.INT_16]*3, unit=unit)] counter_state = CounterState( currents=currents, diff --git a/packages/modules/vehicles/smarteq/__init__.py b/packages/modules/devices/ampere/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from packages/modules/vehicles/smarteq/__init__.py rename to packages/modules/devices/ampere/__init__.py diff --git a/packages/modules/devices/ampere/ampere/__init__.py b/packages/modules/devices/ampere/ampere/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/modules/devices/ampere/ampere/bat.py b/packages/modules/devices/ampere/ampere/bat.py new file mode 100644 index 0000000000..297efd9178 --- /dev/null +++ b/packages/modules/devices/ampere/ampere/bat.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 +from typing import Dict, Union + +from dataclass_utils import dataclass_from_dict +from modules.common.abstract_device import AbstractBat +from modules.common.component_state import BatState +from modules.common.component_type import ComponentDescriptor +from modules.common.fault_state import ComponentInfo, FaultState +from modules.common.modbus import ModbusDataType, ModbusTcpClient_ +from modules.common.simcount import SimCounter +from modules.common.store import get_bat_value_store +from modules.devices.ampere.ampere.config import AmpereBatSetup + + +class AmpereBat(AbstractBat): + def __init__(self, + device_id: int, + component_config: Union[Dict, AmpereBatSetup], + modbus_id: int) -> None: + self.__device_id = device_id + self.component_config = dataclass_from_dict(AmpereBatSetup, component_config) + self.modbus_id = modbus_id + self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="speicher") + self.store = get_bat_value_store(self.component_config.id) + self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) + + def update(self, client: ModbusTcpClient_) -> None: + power = client.read_input_registers(535, ModbusDataType.INT_16, unit=self.modbus_id) + soc = client.read_input_registers(1339, ModbusDataType.UINT_16, unit=self.modbus_id) + + imported, exported = self.sim_counter.sim_count(power) + bat_state = BatState( + power=power, + soc=soc, + imported=imported, + exported=exported + ) + self.store.set(bat_state) + + +component_descriptor = ComponentDescriptor(configuration_factory=AmpereBatSetup) diff --git a/packages/modules/devices/ampere/ampere/config.py b/packages/modules/devices/ampere/ampere/config.py new file mode 100644 index 0000000000..d523d160ff --- /dev/null +++ b/packages/modules/devices/ampere/ampere/config.py @@ -0,0 +1,66 @@ +from typing import Optional + +from modules.common.component_setup import ComponentSetup +from ..vendor import vendor_descriptor + + +class AmpereConfiguration: + def __init__(self, modbus_id: int = 1, ip_address: Optional[str] = None, port: int = 502): + self.modbus_id = modbus_id + self.ip_address = ip_address + self.port = port + + +class Ampere: + def __init__(self, + name: str = "Ampere Pro", + type: str = "ampere", + id: int = 0, + configuration: AmpereConfiguration = None) -> None: + self.name = name + self.type = type + self.vendor = vendor_descriptor.configuration_factory().type + self.id = id + self.configuration = configuration or AmpereConfiguration() + + +class AmpereBatConfiguration: + def __init__(self): + pass + + +class AmpereBatSetup(ComponentSetup[AmpereBatConfiguration]): + def __init__(self, + name: str = "Ampere Speicher", + type: str = "bat", + id: int = 0, + configuration: AmpereBatConfiguration = None) -> None: + super().__init__(name, type, id, configuration or AmpereBatConfiguration()) + + +class AmpereCounterConfiguration: + def __init__(self): + pass + + +class AmpereCounterSetup(ComponentSetup[AmpereCounterConfiguration]): + def __init__(self, + name: str = "Ampere Pro Zähler", + type: str = "counter", + id: int = 0, + configuration: AmpereCounterConfiguration = None) -> None: + super().__init__(name, type, id, configuration or AmpereCounterConfiguration()) + + +class AmpereInverterConfiguration: + def __init__(self): + pass + + +class AmpereInverterSetup(ComponentSetup[AmpereInverterConfiguration]): + def __init__(self, + name: str = "Ampere Pro Wechselrichter", + type: str = "inverter", + id: int = 0, + configuration: AmpereInverterConfiguration = None) -> None: + super().__init__(name, type, id, configuration or AmpereInverterConfiguration()) diff --git a/packages/modules/devices/ampere/ampere/counter.py b/packages/modules/devices/ampere/ampere/counter.py new file mode 100644 index 0000000000..0f8b64603d --- /dev/null +++ b/packages/modules/devices/ampere/ampere/counter.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +from typing import Dict, Union + +from dataclass_utils import dataclass_from_dict +from modules.common.abstract_device import AbstractCounter +from modules.common.component_state import CounterState +from modules.common.component_type import ComponentDescriptor +from modules.common.fault_state import ComponentInfo, FaultState +from modules.common.modbus import ModbusDataType, ModbusTcpClient_ +from modules.common.simcount import SimCounter +from modules.common.store import get_counter_value_store +from modules.devices.ampere.ampere.config import AmpereCounterSetup + + +class AmpereCounter(AbstractCounter): + def __init__(self, + device_id: int, + component_config: Union[Dict, AmpereCounterSetup], + modbus_id: int) -> None: + self.__device_id = device_id + self.component_config = dataclass_from_dict(AmpereCounterSetup, component_config) + self.modbus_id = modbus_id + self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="bezug") + self.store = get_counter_value_store(self.component_config.id) + self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) + + def update(self, client: ModbusTcpClient_): + powers = client.read_input_registers(1349, [ModbusDataType.INT_16]*3, unit=self.modbus_id) + power = client.read_input_registers(1348, ModbusDataType.INT_16, unit=self.modbus_id) + + imported, exported = self.sim_counter.sim_count(power) + + counter_state = CounterState( + currents=powers, + imported=imported, + exported=exported, + power=power + ) + self.store.set(counter_state) + + +component_descriptor = ComponentDescriptor(configuration_factory=AmpereCounterSetup) diff --git a/packages/modules/devices/ampere/ampere/device.py b/packages/modules/devices/ampere/ampere/device.py new file mode 100644 index 0000000000..ee0e7b942e --- /dev/null +++ b/packages/modules/devices/ampere/ampere/device.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +import logging +from typing import Iterable, Union + +from modules.common.abstract_device import DeviceDescriptor +from modules.common.component_context import SingleComponentUpdateContext +from modules.common.configurable_device import ComponentFactoryByType, ConfigurableDevice, MultiComponentUpdater +from modules.common.modbus import ModbusTcpClient_ +from modules.devices.ampere.ampere.bat import AmpereBat +from modules.devices.ampere.ampere.config import Ampere, AmpereBatSetup, AmpereCounterSetup, AmpereInverterSetup +from modules.devices.ampere.ampere.counter import AmpereCounter +from modules.devices.ampere.ampere.inverter import AmpereInverter + +log = logging.getLogger(__name__) + + +def create_device(device_config: Ampere): + def create_bat_component(component_config: AmpereBatSetup): + return AmpereBat(device_config.id, component_config, device_config.configuration.modbus_id) + + def create_counter_component(component_config: AmpereCounterSetup): + return AmpereCounter(device_config.id, component_config, device_config.configuration.modbus_id) + + def create_inverter_component(component_config: AmpereInverterSetup): + return AmpereInverter(device_config.id, component_config, device_config.configuration.modbus_id) + + def update_components(components: Iterable[Union[AmpereBat, AmpereCounter, AmpereInverter]]): + with client: + for component in components: + with SingleComponentUpdateContext(component.fault_state): + component.update(client) + + try: + client = ModbusTcpClient_(device_config.configuration.ip_address, + device_config.configuration.port) + except Exception: + log.exception("Fehler in create_device") + return ConfigurableDevice( + device_config=device_config, + component_factory=ComponentFactoryByType( + bat=create_bat_component, + counter=create_counter_component, + inverter=create_inverter_component, + ), + component_updater=MultiComponentUpdater(update_components) + ) + + +device_descriptor = DeviceDescriptor(configuration_factory=Ampere) diff --git a/packages/modules/devices/ampere/ampere/inverter.py b/packages/modules/devices/ampere/ampere/inverter.py new file mode 100644 index 0000000000..a7dc6efb42 --- /dev/null +++ b/packages/modules/devices/ampere/ampere/inverter.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 +from typing import Dict, Union + +from dataclass_utils import dataclass_from_dict +from modules.common.abstract_device import AbstractInverter +from modules.common.component_state import InverterState +from modules.common.component_type import ComponentDescriptor +from modules.common.fault_state import ComponentInfo, FaultState +from modules.common.modbus import ModbusDataType, ModbusTcpClient_ +from modules.common.simcount import SimCounter +from modules.common.store import get_inverter_value_store +from modules.devices.ampere.ampere.config import AmpereInverterSetup + + +class AmpereInverter(AbstractInverter): + def __init__(self, + device_id: int, + component_config: Union[Dict, AmpereInverterSetup], + modbus_id: int) -> None: + self.__device_id = device_id + self.component_config = dataclass_from_dict(AmpereInverterSetup, component_config) + self.modbus_id = modbus_id + self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="pv") + self.store = get_inverter_value_store(self.component_config.id) + self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) + + def update(self, client: ModbusTcpClient_) -> None: + pv1_power = client.read_holding_registers(519, ModbusDataType.INT_16, unit=self.modbus_id) * -1 + pv2_power = client.read_holding_registers(522, ModbusDataType.INT_16, unit=self.modbus_id) * -1 + + power = pv1_power + pv2_power + + _, exported = self.sim_counter.sim_count(power) + inverter_state = InverterState( + power=power, + exported=exported + ) + self.store.set(inverter_state) + + +component_descriptor = ComponentDescriptor(configuration_factory=AmpereInverterSetup) diff --git a/packages/modules/devices/ampere/vendor.py b/packages/modules/devices/ampere/vendor.py new file mode 100644 index 0000000000..35271d4db1 --- /dev/null +++ b/packages/modules/devices/ampere/vendor.py @@ -0,0 +1,14 @@ +from pathlib import Path + +from modules.common.abstract_device import DeviceDescriptor +from modules.devices.vendors import VendorGroup + + +class Vendor: + def __init__(self): + self.type = Path(__file__).parent.name + self.vendor = "Ampere" + self.group = VendorGroup.VENDORS.value + + +vendor_descriptor = DeviceDescriptor(configuration_factory=Vendor) diff --git a/packages/modules/devices/deye/deye/bat.py b/packages/modules/devices/deye/deye/bat.py index c3d98ca1ca..0584c89cf3 100644 --- a/packages/modules/devices/deye/deye/bat.py +++ b/packages/modules/devices/deye/deye/bat.py @@ -15,35 +15,45 @@ class DeyeBat(AbstractBat): - def __init__(self, device_id: int, component_config: DeyeBatSetup) -> None: + def __init__(self, device_id: int, + component_config: DeyeBatSetup, + client: ModbusTcpClient_) -> None: self.component_config = dataclass_from_dict(DeyeBatSetup, component_config) self.store = get_bat_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) self.__device_id = device_id + self.client = client self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="speicher") + self.device_type = DeviceType(self.client.read_holding_registers( + 0, ModbusDataType.INT_16, unit=component_config.configuration.modbus_id)) - def update(self, client: ModbusTcpClient_, device_type: DeviceType) -> None: + def update(self) -> None: unit = self.component_config.configuration.modbus_id - if device_type == DeviceType.THREE_PHASE: - power = client.read_holding_registers(590, ModbusDataType.INT_16, unit=unit) * -1 - soc = client.read_holding_registers(588, ModbusDataType.INT_16, unit=unit) - # 516: Geladen in kWh * 0,1 - imported = client.read_holding_registers(516, ModbusDataType.UINT_16, unit=unit) * 100 - # 518: Entladen in kWh * 0,1 - exported = client.read_holding_registers(518, ModbusDataType.UINT_16, unit=unit) * 100 - elif device_type == DeviceType.SINGLE_PHASE_STRING or device_type == DeviceType.SINGLE_PHASE_HYBRID: - power = client.read_holding_registers(190, ModbusDataType.INT_16, unit=unit) * -1 - soc = client.read_holding_registers(184, ModbusDataType.INT_16, unit=unit) + if self.device_type == DeviceType.SINGLE_PHASE_STRING or self.device_type == DeviceType.SINGLE_PHASE_HYBRID: + power = self.client.read_holding_registers(190, ModbusDataType.INT_16, unit=unit) * -1 + soc = self.client.read_holding_registers(184, ModbusDataType.INT_16, unit=unit) - if device_type == DeviceType.SINGLE_PHASE_HYBRID: + if self.device_type == DeviceType.SINGLE_PHASE_HYBRID: # 516: Geladen in kWh * 0,1 - imported = client.read_holding_registers(72, ModbusDataType.UINT_16, unit=unit) * 100 + imported = self.client.read_holding_registers(72, ModbusDataType.UINT_16, unit=unit) * 100 # 518: Entladen in kWh * 0,1 - exported = client.read_holding_registers(74, ModbusDataType.UINT_16, unit=unit) * 100 - elif device_type == DeviceType.SINGLE_PHASE_STRING: + exported = self.client.read_holding_registers(74, ModbusDataType.UINT_16, unit=unit) * 100 + + elif self.device_type == DeviceType.SINGLE_PHASE_STRING: imported, exported = self.sim_counter.sim_count(power) + else: # THREE_PHASE_LV (0x0500, 0x0005), THREE_PHASE_HV (0x0006) + power = self.client.read_holding_registers(590, ModbusDataType.INT_16, unit=unit) * -1 + + if self.device_type == DeviceType.THREE_PHASE_HV: + power = power * 10 + soc = self.client.read_holding_registers(588, ModbusDataType.INT_16, unit=unit) + # 516: Geladen in kWh * 0,1 + imported = self.client.read_holding_registers(516, ModbusDataType.UINT_16, unit=unit) * 100 + # 518: Entladen in kWh * 0,1 + exported = self.client.read_holding_registers(518, ModbusDataType.UINT_16, unit=unit) * 100 + bat_state = BatState( power=power, soc=soc, diff --git a/packages/modules/devices/deye/deye/config.py b/packages/modules/devices/deye/deye/config.py index a14b8fe1c1..991aa26486 100644 --- a/packages/modules/devices/deye/deye/config.py +++ b/packages/modules/devices/deye/deye/config.py @@ -8,11 +8,9 @@ class DeyeConfiguration: def __init__(self, ip_address: Optional[str] = None, - port: int = 8899, - device_type: str = "three_phase"): + port: int = 8899): self.ip_address = ip_address self.port = port - self.device_type = device_type class Deye: diff --git a/packages/modules/devices/deye/deye/counter.py b/packages/modules/devices/deye/deye/counter.py index e92b355b97..ddc1f63ecb 100644 --- a/packages/modules/devices/deye/deye/counter.py +++ b/packages/modules/devices/deye/deye/counter.py @@ -12,44 +12,52 @@ class DeyeCounter(AbstractCounter): - def __init__(self, device_id: int, component_config: DeyeCounterSetup) -> None: + def __init__(self, device_id: int, + component_config: DeyeCounterSetup, + client: ModbusTcpClient_) -> None: self.component_config = dataclass_from_dict(DeyeCounterSetup, component_config) self.store = get_counter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) self.__device_id = device_id + self.client = client self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="bezug") + self.device_type = DeviceType(self.client.read_holding_registers( + 0, ModbusDataType.INT_16, unit=component_config.configuration.modbus_id)) - def update(self, client: ModbusTcpClient_, device_type: DeviceType): + def update(self): unit = self.component_config.configuration.modbus_id - if device_type == DeviceType.THREE_PHASE: - currents = [c / 100 for c in client.read_holding_registers(613, [ModbusDataType.INT_16]*3, unit=unit)] - voltages = [v / 10 for v in client.read_holding_registers(644, [ModbusDataType.INT_16]*3, unit=unit)] - powers = client.read_holding_registers(616, [ModbusDataType.INT_16]*3, unit=unit) - power = sum(powers) - frequency = client.read_holding_registers(187, ModbusDataType.INT_32, unit=unit) * 100 + if self.device_type == DeviceType.SINGLE_PHASE_STRING or self.device_type == DeviceType.SINGLE_PHASE_HYBRID: + frequency = self.client.read_holding_registers(79, ModbusDataType.INT_16, unit=unit) / 100 - # Wenn der Import/export Netz in wh gerechnet wird => *100 !! kommt in kw/h *0.1 - imported = client.read_holding_registers(522, ModbusDataType.INT_16, unit=unit) * 100 - exported = client.read_holding_registers(524, ModbusDataType.INT_16, unit=unit) * 100 - - elif device_type == DeviceType.SINGLE_PHASE_STRING or device_type == DeviceType.SINGLE_PHASE_HYBRID: - frequency = client.read_holding_registers(79, ModbusDataType.INT_16, unit=unit) * 100 - - if device_type == DeviceType.SINGLE_PHASE_HYBRID: + if self.device_type == DeviceType.SINGLE_PHASE_HYBRID: powers = [0]*3 currents = [0]*3 voltages = [0]*3 power = [0] # High und low word vom import sind nicht in aufeinanderfolgenden Registern imported, exported = self.sim_counter.sim_count(power) - elif device_type == DeviceType.SINGLE_PHASE_STRING: - currents = [c / 100 for c in client.read_holding_registers(76, [ModbusDataType.INT_16]*3, unit=unit)] - voltages = [v / 10 for v in client.read_holding_registers(70, [ModbusDataType.INT_16]*3, unit=unit)] + + elif self.device_type == DeviceType.SINGLE_PHASE_STRING: + currents = [ + c / 100 for c in self.client.read_holding_registers(76, [ModbusDataType.INT_16]*3, unit=unit)] + voltages = [ + v / 10 for v in self.client.read_holding_registers(70, [ModbusDataType.INT_16]*3, unit=unit)] powers = [currents[i] * voltages[i] for i in range(0, 3)] power = sum(powers) imported, exported = self.sim_counter.sim_count(power) + else: # THREE_PHASE_LV (0x0500, 0x0005), THREE_PHASE_HV (0x0006) + currents = [c / 100 for c in self.client.read_holding_registers(613, [ModbusDataType.INT_16]*3, unit=unit)] + voltages = [v / 10 for v in self.client.read_holding_registers(644, [ModbusDataType.INT_16]*3, unit=unit)] + powers = self.client.read_holding_registers(616, [ModbusDataType.INT_16]*3, unit=unit) + power = self.client.read_holding_registers(625, ModbusDataType.INT_16, unit=unit) + frequency = self.client.read_holding_registers(609, ModbusDataType.INT_16, unit=unit) / 100 + + # Wenn der Import/export Netz in wh gerechnet wird => *100 !! kommt in kw/h *0.1 + imported = self.client.read_holding_registers(522, ModbusDataType.INT_16, unit=unit) * 100 + exported = self.client.read_holding_registers(524, ModbusDataType.INT_16, unit=unit) * 100 + counter_state = CounterState( currents=currents, imported=imported, diff --git a/packages/modules/devices/deye/deye/device.py b/packages/modules/devices/deye/deye/device.py index 29722531f6..bdbe5eb769 100644 --- a/packages/modules/devices/deye/deye/device.py +++ b/packages/modules/devices/deye/deye/device.py @@ -9,7 +9,6 @@ from modules.common.modbus import ModbusTcpClient_ from modules.devices.deye.deye.bat import DeyeBat from modules.devices.deye.deye.counter import DeyeCounter -from modules.devices.deye.deye.device_type import DeviceType from modules.devices.deye.deye.inverter import DeyeInverter from modules.devices.deye.deye import bat, counter, inverter from modules.devices.deye.deye.config import Deye, DeyeBatSetup, DeyeConfiguration, DeyeCounterSetup, DeyeInverterSetup @@ -19,19 +18,19 @@ def create_device(device_config: Deye): def create_bat_component(component_config: DeyeBatSetup): - return DeyeBat(device_config.id, component_config) + return DeyeBat(device_config.id, component_config, client) def create_counter_component(component_config: DeyeCounterSetup): - return DeyeCounter(device_config.id, component_config) + return DeyeCounter(device_config.id, component_config, client) def create_inverter_component(component_config: DeyeInverterSetup): - return DeyeInverter(device_config.id, component_config) + return DeyeInverter(device_config.id, component_config, client) def update_components(components: Iterable[Union[DeyeBat, DeyeCounter, DeyeInverter]]): - with client as c: + with client: for component in components: with SingleComponentUpdateContext(component.fault_state): - component.update(c, DeviceType(device_config.configuration.device_type)) + component.update() try: client = ModbusTcpClient_(device_config.configuration.ip_address, device_config.configuration.port) diff --git a/packages/modules/devices/deye/deye/device_type.py b/packages/modules/devices/deye/deye/device_type.py index 3baef0a7ba..c5241c1a63 100644 --- a/packages/modules/devices/deye/deye/device_type.py +++ b/packages/modules/devices/deye/deye/device_type.py @@ -1,7 +1,9 @@ -from enum import Enum +from enum import IntEnum -class DeviceType(Enum): - SINGLE_PHASE_HYBRID = "single_phase_hybrid" - SINGLE_PHASE_STRING = "single_phase_string" - THREE_PHASE = "three_phase" +class DeviceType(IntEnum): + SINGLE_PHASE_STRING = 0x0200 + SINGLE_PHASE_HYBRID = 0x0300 + THREE_PHASE_LV_0 = 0x0500 + THREE_PHASE_LV_1 = 0x0005 + THREE_PHASE_HV = 0x0006 diff --git a/packages/modules/devices/deye/deye/inverter.py b/packages/modules/devices/deye/deye/inverter.py index aa90166dbd..a2e66a3530 100644 --- a/packages/modules/devices/deye/deye/inverter.py +++ b/packages/modules/devices/deye/deye/inverter.py @@ -14,25 +14,33 @@ class DeyeInverter(AbstractInverter): - def __init__(self, device_id: int, component_config: Union[Dict, DeyeInverterSetup]) -> None: + def __init__(self, device_id: int, + component_config: Union[Dict, DeyeInverterSetup], + client: ModbusTcpClient_) -> None: self.component_config = dataclass_from_dict(DeyeInverterSetup, component_config) self.store = get_inverter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) self.__device_id = device_id + self.client = client self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="pv") + self.device_type = DeviceType(self.client.read_holding_registers( + 0, ModbusDataType.INT_16, unit=component_config.configuration.modbus_id)) - def update(self, client: ModbusTcpClient_, device_type: DeviceType) -> None: + def update(self) -> None: unit = self.component_config.configuration.modbus_id - if device_type == DeviceType.THREE_PHASE: - # Wechselrichter hat 2 mppt Tracker - power = sum(client.read_holding_registers(672, [ModbusDataType.INT_16]*2, unit=unit)) * -1 - # 534: Gesamt Produktion Wechselrichter unsigned integer in kWh * 0,1 - exported = client.read_holding_registers(534, ModbusDataType.UINT_16, unit=unit) * 100 - elif device_type == DeviceType.SINGLE_PHASE_STRING or device_type == DeviceType.SINGLE_PHASE_HYBRID: - power = sum(client.read_holding_registers(186, [ModbusDataType.INT_16]*4, unit=unit)) * -1 + if self.device_type == DeviceType.SINGLE_PHASE_STRING or self.device_type == DeviceType.SINGLE_PHASE_HYBRID: + power = sum(self.client.read_holding_registers(186, [ModbusDataType.INT_16]*4, unit=unit)) * -1 exported = self.sim_counter.sim_count(power)[1] + else: # THREE_PHASE_LV (0x0500, 0x0005), THREE_PHASE_HV (0x0006) + power = sum(self.client.read_holding_registers(672, [ModbusDataType.INT_16]*2, unit=unit)) * -1 + + if self.device_type == DeviceType.THREE_PHASE_HV: + power = power * 10 + # 534: Gesamt Produktion Wechselrichter unsigned integer in kWh * 0,1 + exported = self.client.read_holding_registers(534, ModbusDataType.UINT_16, unit=unit) * 100 + inverter_state = InverterState( power=power, exported=exported, diff --git a/packages/modules/devices/discovergy/discovergy/config.py b/packages/modules/devices/discovergy/discovergy/config.py index 4fab443d88..2dd15aba30 100644 --- a/packages/modules/devices/discovergy/discovergy/config.py +++ b/packages/modules/devices/discovergy/discovergy/config.py @@ -12,7 +12,7 @@ def __init__(self, user: Optional[str] = None, password: Optional[str] = None): class Discovergy: def __init__(self, - name: str = "Discovergy", + name: str = "inexogy (Discovergy)", type: str = "discovergy", id: int = 0, configuration: DiscovergyConfiguration = None) -> None: @@ -28,16 +28,13 @@ def __init__(self, meter_id: Optional[str] = None): self.meter_id = meter_id -class DiscovergyCounterSetup: +class DiscovergyCounterSetup(ComponentSetup[DiscovergyCounterConfiguration]): def __init__(self, - name: str = "Discovergy Zähler", + name: str = "inexogy (Discovergy) Zähler", type: str = "counter", id: Optional[int] = 0, configuration: DiscovergyCounterConfiguration = None) -> None: - self.name = name - self.type = type - self.id = id - self.configuration = configuration or DiscovergyCounterConfiguration() + super().__init__(name, type, id, configuration or DiscovergyCounterConfiguration()) class DiscovergyInverterConfiguration: @@ -47,7 +44,7 @@ def __init__(self, meter_id: Optional[str] = None): class DiscovergyInverterSetup(ComponentSetup[DiscovergyInverterConfiguration]): def __init__(self, - name: str = "Discovergy Wechselrichter", + name: str = "inexogy (Discovergy) Wechselrichter", type: str = "inverter", id: int = 0, configuration: DiscovergyInverterConfiguration = None) -> None: diff --git a/packages/modules/devices/discovergy/vendor.py b/packages/modules/devices/discovergy/vendor.py index 9bd2ed1600..79cd41600b 100644 --- a/packages/modules/devices/discovergy/vendor.py +++ b/packages/modules/devices/discovergy/vendor.py @@ -7,7 +7,7 @@ class Vendor: def __init__(self): self.type = Path(__file__).parent.name - self.vendor = "Discovergy" + self.vendor = "inexogy (Discovergy)" self.group = VendorGroup.VENDORS.value diff --git a/packages/modules/devices/enphase/enphase/device.py b/packages/modules/devices/enphase/enphase/device.py index a44bb1a67e..e054d46766 100644 --- a/packages/modules/devices/enphase/enphase/device.py +++ b/packages/modules/devices/enphase/enphase/device.py @@ -143,7 +143,7 @@ def update_components(components: Iterable[Union[EnphaseBat, EnphaseCounter, Enp log.error(f"unknown version: {device_config.configuration.version}") return for component in components: - components[component].update(json_response, json_live_data) + component.update(json_response, json_live_data) read_live_data = False token_tries = 0 diff --git a/packages/modules/devices/fox_ess/fox_ess/counter.py b/packages/modules/devices/fox_ess/fox_ess/counter.py index adf3ab8c02..dc6a963434 100644 --- a/packages/modules/devices/fox_ess/fox_ess/counter.py +++ b/packages/modules/devices/fox_ess/fox_ess/counter.py @@ -18,7 +18,8 @@ def __init__(self, component_config: FoxEssCounterSetup) -> None: def update(self, client: ModbusTcpClient_): unit = self.component_config.configuration.modbus_id - powers = client.read_holding_registers(31026, [ModbusDataType.INT_16]*3, unit=unit) + powers = [val * -1 for val in + client.read_holding_registers(31026, [ModbusDataType.INT_16]*3, unit=unit)] power = sum(powers) frequency = client.read_holding_registers(31015, ModbusDataType.UINT_16, unit=unit) / 100 imported = client.read_holding_registers(32018, ModbusDataType.UINT_32, unit=unit) * 100 diff --git a/packages/modules/devices/growatt/growatt/bat.py b/packages/modules/devices/growatt/growatt/bat.py index 335382e983..71d6a75f15 100644 --- a/packages/modules/devices/growatt/growatt/bat.py +++ b/packages/modules/devices/growatt/growatt/bat.py @@ -26,9 +26,9 @@ def __init__(self, def update(self, client: ModbusTcpClient_) -> None: if self.version == GrowattVersion.max_series: power_in = client.read_input_registers( - 1011, ModbusDataType.UINT_32, unit=self.__modbus_id) * -0.1 + 1011, ModbusDataType.UINT_32, unit=self.__modbus_id) * 0.1 power_out = client.read_input_registers( - 1009, ModbusDataType.UINT_32, unit=self.__modbus_id) * 0.1 + 1009, ModbusDataType.UINT_32, unit=self.__modbus_id) * -0.1 power = power_in + power_out soc = client.read_input_registers(1014, ModbusDataType.UINT_16, unit=self.__modbus_id) diff --git a/packages/modules/devices/growatt/growatt/inverter.py b/packages/modules/devices/growatt/growatt/inverter.py index 6fc9f73734..fe7e9fa0e7 100644 --- a/packages/modules/devices/growatt/growatt/inverter.py +++ b/packages/modules/devices/growatt/growatt/inverter.py @@ -26,12 +26,12 @@ def __init__(self, def update(self, client: ModbusTcpClient_) -> None: if self.version == GrowattVersion.max_series: power = client.read_input_registers( - 1, ModbusDataType.UINT_32, unit=self.__modbus_id) / 10 + 1, ModbusDataType.UINT_32, unit=self.__modbus_id) / -10 exported = client.read_input_registers( 91, ModbusDataType.UINT_32, unit=self.__modbus_id) * 100 else: power = client.read_input_registers( - 3001, ModbusDataType.UINT_32, unit=self.__modbus_id) / 10 + 3001, ModbusDataType.UINT_32, unit=self.__modbus_id) / -10 exported = client.read_input_registers( 3053, ModbusDataType.UINT_32, unit=self.__modbus_id) * 100 diff --git a/packages/modules/devices/huawei/huawei/bat.py b/packages/modules/devices/huawei/huawei/bat.py index 1c1b480f13..b9539968a2 100644 --- a/packages/modules/devices/huawei/huawei/bat.py +++ b/packages/modules/devices/huawei/huawei/bat.py @@ -11,24 +11,29 @@ from modules.common.simcount import SimCounter from modules.common.store import get_bat_value_store from modules.devices.huawei.huawei.config import HuaweiBatSetup +from modules.devices.huawei.huawei.type import HuaweiType class HuaweiBat(AbstractBat): def __init__(self, device_id: int, component_config: Union[Dict, HuaweiBatSetup], - modbus_id: int) -> None: + modbus_id: int, + type: HuaweiType) -> None: self.__device_id = device_id self.component_config = dataclass_from_dict(HuaweiBatSetup, component_config) self.modbus_id = modbus_id + self.type = type self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="speicher") self.store = get_bat_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) def update(self, client: ModbusTcpClient_) -> None: - time.sleep(1) + if self.type == HuaweiType.SDongle: + time.sleep(1) power = client.read_holding_registers(37765, ModbusDataType.INT_32, unit=self.modbus_id) - time.sleep(1) + if self.type == HuaweiType.SDongle: + time.sleep(1) soc = client.read_holding_registers(37760, ModbusDataType.INT_16, unit=self.modbus_id) / 10 imported, exported = self.sim_counter.sim_count(power) diff --git a/packages/modules/devices/huawei/huawei/config.py b/packages/modules/devices/huawei/huawei/config.py index 88f0dbde67..cb3bcea267 100644 --- a/packages/modules/devices/huawei/huawei/config.py +++ b/packages/modules/devices/huawei/huawei/config.py @@ -1,14 +1,19 @@ from typing import Optional from modules.common.component_setup import ComponentSetup +from modules.devices.huawei.huawei.type import HuaweiType from ..vendor import vendor_descriptor class HuaweiConfiguration: - def __init__(self, modbus_id: int = 1, ip_address: Optional[str] = None, port: int = 502): + def __init__(self, modbus_id: int = 1, + ip_address: Optional[str] = None, + port: int = 502, + type: HuaweiType = HuaweiType.SDongle): self.modbus_id = modbus_id self.ip_address = ip_address self.port = port + self.type = type class Huawei: diff --git a/packages/modules/devices/huawei/huawei/counter.py b/packages/modules/devices/huawei/huawei/counter.py index c0dfdb61fe..ecaa1e7236 100644 --- a/packages/modules/devices/huawei/huawei/counter.py +++ b/packages/modules/devices/huawei/huawei/counter.py @@ -11,25 +11,30 @@ from modules.common.simcount import SimCounter from modules.common.store import get_counter_value_store from modules.devices.huawei.huawei.config import HuaweiCounterSetup +from modules.devices.huawei.huawei.type import HuaweiType class HuaweiCounter(AbstractCounter): def __init__(self, device_id: int, component_config: Union[Dict, HuaweiCounterSetup], - modbus_id: int) -> None: + modbus_id: int, + type: HuaweiType) -> None: self.__device_id = device_id self.component_config = dataclass_from_dict(HuaweiCounterSetup, component_config) self.modbus_id = modbus_id + self.type = type self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="bezug") self.store = get_counter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) def update(self, client: ModbusTcpClient_): - time.sleep(1) + if self.type == HuaweiType.SDongle: + time.sleep(1) currents = client.read_holding_registers(37107, [ModbusDataType.INT_32]*3, unit=self.modbus_id) currents = [val / -100 for val in currents] - time.sleep(1) + if self.type == HuaweiType.SDongle: + time.sleep(1) power = client.read_holding_registers(37113, ModbusDataType.INT_32, unit=self.modbus_id) * -1 imported, exported = self.sim_counter.sim_count(power) diff --git a/packages/modules/devices/huawei/huawei/device.py b/packages/modules/devices/huawei/huawei/device.py index db8bd43806..59d1fbe8fe 100644 --- a/packages/modules/devices/huawei/huawei/device.py +++ b/packages/modules/devices/huawei/huawei/device.py @@ -10,19 +10,29 @@ from modules.devices.huawei.huawei.config import Huawei, HuaweiBatSetup, HuaweiCounterSetup, HuaweiInverterSetup from modules.devices.huawei.huawei.counter import HuaweiCounter from modules.devices.huawei.huawei.inverter import HuaweiInverter +from modules.devices.huawei.huawei.type import HuaweiType log = logging.getLogger(__name__) def create_device(device_config: Huawei): def create_bat_component(component_config: HuaweiBatSetup): - return HuaweiBat(device_config.id, component_config, device_config.configuration.modbus_id) + return HuaweiBat(device_config.id, + component_config, + device_config.configuration.modbus_id, + HuaweiType(device_config.configuration.type)) def create_counter_component(component_config: HuaweiCounterSetup): - return HuaweiCounter(device_config.id, component_config, device_config.configuration.modbus_id) + return HuaweiCounter(device_config.id, + component_config, + device_config.configuration.modbus_id, + HuaweiType(device_config.configuration.type)) def create_inverter_component(component_config: HuaweiInverterSetup): - return HuaweiInverter(device_config.id, component_config, device_config.configuration.modbus_id) + return HuaweiInverter(device_config.id, + component_config, + device_config.configuration.modbus_id, + HuaweiType(device_config.configuration.type)) def update_components(components: Iterable[Union[HuaweiBat, HuaweiCounter, HuaweiInverter]]): with client: @@ -31,8 +41,12 @@ def update_components(components: Iterable[Union[HuaweiBat, HuaweiCounter, Huawe component.update(client) try: - client = ModbusTcpClient_(device_config.configuration.ip_address, - device_config.configuration.port, sleep_after_connect=7) + if HuaweiType(device_config.configuration.type) == HuaweiType.SDongle: + client = ModbusTcpClient_(device_config.configuration.ip_address, + device_config.configuration.port, sleep_after_connect=7) + else: + client = ModbusTcpClient_(device_config.configuration.ip_address, + device_config.configuration.port) except Exception: log.exception("Fehler in create_device") return ConfigurableDevice( diff --git a/packages/modules/devices/huawei/huawei/inverter.py b/packages/modules/devices/huawei/huawei/inverter.py index 08a33ffe01..125da608d0 100644 --- a/packages/modules/devices/huawei/huawei/inverter.py +++ b/packages/modules/devices/huawei/huawei/inverter.py @@ -11,22 +11,26 @@ from modules.common.simcount import SimCounter from modules.common.store import get_inverter_value_store from modules.devices.huawei.huawei.config import HuaweiInverterSetup +from modules.devices.huawei.huawei.type import HuaweiType class HuaweiInverter(AbstractInverter): def __init__(self, device_id: int, component_config: Union[Dict, HuaweiInverterSetup], - modbus_id: int) -> None: + modbus_id: int, + type: HuaweiType) -> None: self.__device_id = device_id self.component_config = dataclass_from_dict(HuaweiInverterSetup, component_config) self.modbus_id = modbus_id + self.type = type self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="pv") self.store = get_inverter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) def update(self, client: ModbusTcpClient_) -> None: - time.sleep(1) + if self.type == HuaweiType.SDongle: + time.sleep(1) power = client.read_holding_registers(32064, ModbusDataType.INT_32, unit=self.modbus_id) * -1 _, exported = self.sim_counter.sim_count(power) diff --git a/packages/modules/devices/huawei/huawei/type.py b/packages/modules/devices/huawei/huawei/type.py new file mode 100644 index 0000000000..f6579ca0bc --- /dev/null +++ b/packages/modules/devices/huawei/huawei/type.py @@ -0,0 +1,6 @@ +from enum import Enum + + +class HuaweiType(Enum): + SDongle = "s_dongle" + ModbusRTU = "modbus_rtu" diff --git a/packages/modules/devices/kostal/kostal_sem/config.py b/packages/modules/devices/kostal/kostal_sem/config.py index d1fd1e77a0..d4e07cbc8f 100644 --- a/packages/modules/devices/kostal/kostal_sem/config.py +++ b/packages/modules/devices/kostal/kostal_sem/config.py @@ -38,4 +38,4 @@ def __init__(self, self.name = name self.type = type self.id = id - self.configuration = configuration or KostalSemCounterConfiguration() + super().__init__(name, type, id, configuration or KostalSemCounterConfiguration()) diff --git a/packages/modules/devices/openwb/openwb_flex/bat.py b/packages/modules/devices/openwb/openwb_flex/bat.py index d4eb8fa39a..1861eb24f6 100644 --- a/packages/modules/devices/openwb/openwb_flex/bat.py +++ b/packages/modules/devices/openwb/openwb_flex/bat.py @@ -8,6 +8,7 @@ from modules.common.component_type import ComponentDescriptor from modules.common.fault_state import ComponentInfo, FaultState from modules.common.lovato import Lovato +from modules.common.sdm import Sdm120 from modules.common.sdm import Sdm630_72 from modules.common.simcount import SimCounter from modules.common.store import get_bat_value_store @@ -40,7 +41,7 @@ def update(self): power = power * -1 else: _, power = self.__client.get_power() - if isinstance(self.__client, Lovato): + if isinstance(self.__client, Lovato) or isinstance(self.__client, Sdm120): imported, exported = self.sim_counter.sim_count(power) else: imported = self.__client.get_imported() diff --git a/packages/modules/devices/openwb/openwb_flex/inverter.py b/packages/modules/devices/openwb/openwb_flex/inverter.py index 0ec544f266..b1b68a47a7 100644 --- a/packages/modules/devices/openwb/openwb_flex/inverter.py +++ b/packages/modules/devices/openwb/openwb_flex/inverter.py @@ -8,6 +8,7 @@ from modules.common.component_type import ComponentDescriptor from modules.common.fault_state import ComponentInfo, FaultState from modules.common.lovato import Lovato +from modules.common.sdm import Sdm120 from modules.common.simcount import SimCounter from modules.common.store import get_inverter_value_store from modules.devices.openwb.openwb_flex.config import PvKitFlexSetup @@ -43,7 +44,7 @@ def update(self) -> None: power = power*-1 currents = self.__client.get_currents() - if isinstance(self.__client, Lovato): + if isinstance(self.__client, Lovato) or isinstance(self.__client, Sdm120): _, exported = self.sim_counter.sim_count(power) else: exported = self.__client.get_exported() diff --git a/packages/modules/devices/rct/rct/bat.py b/packages/modules/devices/rct/rct/bat.py index 88320b3c72..f0f7673471 100644 --- a/packages/modules/devices/rct/rct/bat.py +++ b/packages/modules/devices/rct/rct/bat.py @@ -41,7 +41,7 @@ def update(self, rct_client: RCT) -> None: if (stat1.value + stat2.value + stat3.value) > 0: # Werte werden trotz Fehlercode übermittelt. self.fault_state.warning( - f"Alarm Status Speicher ist ungleich 0. Status 1: {stat1.value}, Status 2: {stat2.value}, " + f"Speicher-Status ist ungleich 0. Status 1: {stat1.value}, Status 2: {stat2.value}, " f"Status 3: {stat3.value}") diff --git a/packages/modules/devices/rct/rct/counter.py b/packages/modules/devices/rct/rct/counter.py index 679a1bad5d..7060ee900f 100644 --- a/packages/modules/devices/rct/rct/counter.py +++ b/packages/modules/devices/rct/rct/counter.py @@ -51,7 +51,7 @@ def update(self, rct_client: RCT): if (stat1.value + stat2.value + stat3.value + stat4.value) > 0: # Werte werden trotz Fehlercode übermittelt. self.fault_state.warning( - f"Alarm Status Speicher ist ungleich 0. Status 1: {stat1.value}, Status 2: {stat2.value}, " + f"Speicher-Status ist ungleich 0. Status 1: {stat1.value}, Status 2: {stat2.value}, " f"Status 3: {stat3.value}, Status 4: {stat4.value},") diff --git a/packages/modules/devices/sma/sma_sunny_boy/bat.py b/packages/modules/devices/sma/sma_sunny_boy/bat.py index da50bc7673..99624e1295 100644 --- a/packages/modules/devices/sma/sma_sunny_boy/bat.py +++ b/packages/modules/devices/sma/sma_sunny_boy/bat.py @@ -12,6 +12,8 @@ class SunnyBoyBat(AbstractBat): + SMA_UINT_64_NAN = 0xFFFFFFFFFFFFFFFF # SMA uses this value to represent NaN + def __init__(self, device_id: int, component_config: Union[Dict, SmaSunnyBoyBatSetup], @@ -35,6 +37,11 @@ def read(self) -> BatState: exported = self.__tcp_client.read_holding_registers(31401, ModbusDataType.UINT_64, unit=unit) imported = self.__tcp_client.read_holding_registers(31397, ModbusDataType.UINT_64, unit=unit) + if exported == self.SMA_UINT_64_NAN or imported == self.SMA_UINT_64_NAN: + raise ValueError(f'Batterie lieferte nicht plausible Werte. Export: {exported}, Import: {imported}. ', + 'Sobald die Batterie geladen/entladen wird sollte sich dieser Wert ändern, ', + 'andernfalls kann ein Defekt vorliegen.') + return BatState( power=power, soc=soc, diff --git a/packages/modules/devices/sma/sma_sunny_boy/bat_smart_energy.py b/packages/modules/devices/sma/sma_sunny_boy/bat_smart_energy.py index b80e0864d7..b5b5d61845 100644 --- a/packages/modules/devices/sma/sma_sunny_boy/bat_smart_energy.py +++ b/packages/modules/devices/sma/sma_sunny_boy/bat_smart_energy.py @@ -13,7 +13,8 @@ class SunnyBoySmartEnergyBat(AbstractBat): - SMA_INT32_NAN = 0xFFFFFFFF # SMA uses this value to represent NaN + SMA_UINT32_NAN = 0xFFFFFFFF # SMA uses this value to represent NaN + SMA_UINT_64_NAN = 0xFFFFFFFFFFFFFFFF # SMA uses this value to represent NaN def __init__(self, device_id: int, @@ -36,7 +37,7 @@ def read(self) -> BatState: current = self.__tcp_client.read_holding_registers(30843, ModbusDataType.INT_32, unit=unit)/-1000 voltage = self.__tcp_client.read_holding_registers(30851, ModbusDataType.INT_32, unit=unit)/100 - if soc == self.SMA_INT32_NAN: + if soc == self.SMA_UINT32_NAN: # If the storage is empty and nothing is produced on the DC side, the inverter does not supply any values. soc = 0 power = 0 @@ -45,6 +46,11 @@ def read(self) -> BatState: exported = self.__tcp_client.read_holding_registers(31401, ModbusDataType.UINT_64, unit=3) imported = self.__tcp_client.read_holding_registers(31397, ModbusDataType.UINT_64, unit=3) + if exported == self.SMA_UINT_64_NAN or imported == self.SMA_UINT_64_NAN: + raise ValueError(f'Batterie lieferte nicht plausible Werte. Export: {exported}, Import: {imported}. ', + 'Sobald die Batterie geladen/entladen wird sollte sich dieser Wert ändern, ', + 'andernfalls kann ein Defekt vorliegen.') + return BatState( power=power, soc=soc, diff --git a/packages/modules/devices/sma/sma_sunny_boy/bat_tesvolt.py b/packages/modules/devices/sma/sma_sunny_boy/bat_tesvolt.py new file mode 100644 index 0000000000..9fe38a8ed1 --- /dev/null +++ b/packages/modules/devices/sma/sma_sunny_boy/bat_tesvolt.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 + +from modules.common.abstract_device import AbstractBat +from modules.common.component_state import BatState +from modules.common.component_type import ComponentDescriptor +from modules.common.fault_state import ComponentInfo, FaultState +from modules.common.modbus import ModbusTcpClient_, ModbusDataType +from modules.common.simcount._simcounter import SimCounter +from modules.common.store import get_bat_value_store +from modules.devices.sma.sma_sunny_boy.config import SmaTesvoltBatSetup + + +class TesvoltBat(AbstractBat): + def __init__(self, + device_id: int, + component_config: SmaTesvoltBatSetup, + tcp_client: ModbusTcpClient_) -> None: + self.component_config = component_config + self.__tcp_client = tcp_client + self.sim_counter = SimCounter(device_id, self.component_config.id, prefix="bezug") + self.store = get_bat_value_store(self.component_config.id) + self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) + + def update(self) -> None: + soc = self.__tcp_client.read_input_registers(1056, ModbusDataType.INT_32, unit=25) / 10 + power = self.__tcp_client.read_input_registers(1012, ModbusDataType.INT_32, unit=25) * -1 + imported, exported = self.sim_counter.sim_count(power) + + bat_state = BatState( + power=power, + soc=soc, + imported=imported, + exported=exported + ) + + self.store.set(bat_state) + + +component_descriptor = ComponentDescriptor(configuration_factory=SmaTesvoltBatSetup) diff --git a/packages/modules/devices/sma/sma_sunny_boy/config.py b/packages/modules/devices/sma/sma_sunny_boy/config.py index 862330209b..8889b643a7 100644 --- a/packages/modules/devices/sma/sma_sunny_boy/config.py +++ b/packages/modules/devices/sma/sma_sunny_boy/config.py @@ -13,7 +13,7 @@ def __init__(self, ip_address: Optional[str] = None, port: int = 502): class SmaSunnyBoy: def __init__(self, - name: str = "SMA Sunny Boy/Tripower", + name: str = "SMA Sunny Boy/Tripower, Tesvolt", type: str = "sma_sunny_boy", id: int = 0, configuration: SmaSunnyBoyConfiguration = None) -> None: @@ -52,6 +52,20 @@ def __init__(self, super().__init__(name, type, id, configuration or SmaSunnyBoySmartEnergyBatConfiguration()) +class SmaTesvoltBatConfiguration: + def __init__(self): + pass + + +class SmaTesvoltBatSetup(ComponentSetup[SmaTesvoltBatConfiguration]): + def __init__(self, + name: str = "Sma Tripower/Tesvolt Speicher", + type: str = "bat_tesvolt", + id: int = 0, + configuration: SmaTesvoltBatConfiguration = None) -> None: + super().__init__(name, type, id, configuration or SmaTesvoltBatConfiguration()) + + class SmaSunnyBoyCounterConfiguration: def __init__(self, modbus_id: int = 3): self.modbus_id = modbus_id diff --git a/packages/modules/devices/sma/sma_sunny_boy/device.py b/packages/modules/devices/sma/sma_sunny_boy/device.py index 4a539b5f05..a09f4547dc 100644 --- a/packages/modules/devices/sma/sma_sunny_boy/device.py +++ b/packages/modules/devices/sma/sma_sunny_boy/device.py @@ -8,8 +8,10 @@ from modules.common.modbus import ModbusTcpClient_ from modules.devices.sma.sma_sunny_boy.bat import SunnyBoyBat from modules.devices.sma.sma_sunny_boy.bat_smart_energy import SunnyBoySmartEnergyBat +from modules.devices.sma.sma_sunny_boy.bat_tesvolt import TesvoltBat from modules.devices.sma.sma_sunny_boy.config import (SmaSunnyBoy, SmaSunnyBoyBatSetup, SmaSunnyBoyCounterSetup, - SmaSunnyBoyInverterSetup, SmaSunnyBoySmartEnergyBatSetup) + SmaSunnyBoyInverterSetup, SmaSunnyBoySmartEnergyBatSetup, + SmaTesvoltBatSetup) from modules.devices.sma.sma_sunny_boy.counter import SmaSunnyBoyCounter from modules.devices.sma.sma_sunny_boy.inverter import SmaSunnyBoyInverter @@ -31,6 +33,9 @@ def create_bat_component(component_config: SmaSunnyBoyBatSetup): def create_bat_smart_energy_component(component_config: SmaSunnyBoySmartEnergyBatSetup): return SunnyBoySmartEnergyBat(device_config.id, component_config, client) + def create_bat_tesvolt_component(component_config: SmaTesvoltBatSetup): + return TesvoltBat(device_config.id, component_config, client) + def create_counter_component(component_config: SmaSunnyBoyCounterSetup): return SmaSunnyBoyCounter(device_config.id, component_config, client) @@ -52,6 +57,7 @@ def update_components(components: Iterable[sma_modbus_tcp_component_classes]): component_factory=ComponentFactoryByType( bat=create_bat_component, bat_smart_energy=create_bat_smart_energy_component, + bat_tesvolt=create_bat_tesvolt_component, counter=create_counter_component, inverter=create_inverter_component, ), diff --git a/packages/modules/devices/sma/sma_sunny_boy/inverter.py b/packages/modules/devices/sma/sma_sunny_boy/inverter.py index ee2a81b4c9..8685fd7410 100644 --- a/packages/modules/devices/sma/sma_sunny_boy/inverter.py +++ b/packages/modules/devices/sma/sma_sunny_boy/inverter.py @@ -19,6 +19,7 @@ class SmaSunnyBoyInverter(AbstractInverter): SMA_INT32_NAN = -0x80000000 # SMA uses this value to represent NaN + SMA_UINT32_NAN = 0xFFFFFFFF # SMA uses this value to represent NaN SMA_NAN = -0xC000 def __init__(self, @@ -68,6 +69,13 @@ def read(self) -> InverterState: if power_total == self.SMA_INT32_NAN or power_total == self.SMA_NAN: power_total = 0 + if energy == self.SMA_UINT32_NAN: + raise ValueError( + f'Wechselrichter lieferte nicht plausiblen Zählerstand: {energy}. ' + 'Sobald PV Ertrag vorhanden ist sollte sich dieser Wert ändern, ' + 'andernfalls kann ein Defekt vorliegen.' + ) + inverter_state = InverterState( power=power_total * -1, dc_power=dc_power * -1, diff --git a/packages/modules/devices/sma/vendor.py b/packages/modules/devices/sma/vendor.py index ab8a9ef732..bca4742963 100644 --- a/packages/modules/devices/sma/vendor.py +++ b/packages/modules/devices/sma/vendor.py @@ -7,7 +7,7 @@ class Vendor: def __init__(self): self.type = Path(__file__).parent.name - self.vendor = "SMA" + self.vendor = "SMA, Tesvolt" self.group = VendorGroup.VENDORS.value diff --git a/packages/modules/devices/solaredge/solaredge/device.py b/packages/modules/devices/solaredge/solaredge/device.py index 8949f7ab3a..3426bb3124 100644 --- a/packages/modules/devices/solaredge/solaredge/device.py +++ b/packages/modules/devices/solaredge/solaredge/device.py @@ -80,18 +80,21 @@ def get_synergy_units(component_config: Union[SolaredgeBatSetup, SolaredgeCounterSetup, SolaredgeInverterSetup, SolaredgeExternalInverterSetup]) -> None: - if client.read_holding_registers(40121, modbus.ModbusDataType.UINT_16, - unit=component_config.configuration.modbus_id - ) == synergy_unit_identifier: - # Snyergy-Units vom Haupt-WR des angeschlossenen Meters ermitteln. Es kann mehrere Haupt-WR mit - # unterschiedlichen Modbus-IDs im Verbund geben. - log.debug("Synergy Units supported") - synergy_units = int(client.read_holding_registers( - 40129, modbus.ModbusDataType.UINT_16, - unit=component_config.configuration.modbus_id)) or 1 - log.debug( - f"Synergy Units detected for Modbus ID {component_config.configuration.modbus_id}: {synergy_units}") - else: + try: + if client.read_holding_registers(40121, modbus.ModbusDataType.UINT_16, + unit=component_config.configuration.modbus_id + ) == synergy_unit_identifier: + # Snyergy-Units vom Haupt-WR des angeschlossenen Meters ermitteln. Es kann mehrere Haupt-WR mit + # unterschiedlichen Modbus-IDs im Verbund geben. + log.debug("Synergy Units supported") + synergy_units = int(client.read_holding_registers( + 40129, modbus.ModbusDataType.UINT_16, + unit=component_config.configuration.modbus_id)) or 1 + log.debug( + f"Synergy Units detected for Modbus ID {component_config.configuration.modbus_id}: {synergy_units}") + else: + synergy_units = 1 + except Exception: synergy_units = 1 return synergy_units try: diff --git a/packages/modules/devices/solax/solax/bat.py b/packages/modules/devices/solax/solax/bat.py index 4afe6efa65..b6cb8aedd8 100644 --- a/packages/modules/devices/solax/solax/bat.py +++ b/packages/modules/devices/solax/solax/bat.py @@ -10,27 +10,27 @@ from modules.common.modbus import ModbusDataType from modules.common.simcount import SimCounter from modules.common.store import get_bat_value_store -from modules.devices.solax.solax.config import SolaxBatSetup +from modules.devices.solax.solax.config import SolaxBatSetup, Solax class SolaxBat(AbstractBat): def __init__(self, - device_id: int, + device_config: Solax, component_config: Union[Dict, SolaxBatSetup], - tcp_client: modbus.ModbusTcpClient_, - modbus_id: int) -> None: - self.__device_id = device_id - self.__modbus_id = modbus_id + tcp_client: modbus.ModbusTcpClient_) -> None: + self.device_config = device_config self.component_config = dataclass_from_dict(SolaxBatSetup, component_config) self.__tcp_client = tcp_client - self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="speicher") + self.sim_counter = SimCounter(self.device_config.id, self.component_config.id, prefix="speicher") self.store = get_bat_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) def update(self) -> None: - with self.__tcp_client: - power = self.__tcp_client.read_input_registers(22, ModbusDataType.INT_16, unit=self.__modbus_id) - soc = self.__tcp_client.read_input_registers(28, ModbusDataType.UINT_16, unit=self.__modbus_id) + unit = self.device_config.configuration.modbus_id + + # kein Speicher für Versionen G2 und G4 + power = self.__tcp_client.read_input_registers(0x0016, ModbusDataType.INT_16, unit=unit) + soc = self.__tcp_client.read_input_registers(0x001C, ModbusDataType.UINT_16, unit=unit) imported, exported = self.sim_counter.sim_count(power) bat_state = BatState( diff --git a/packages/modules/devices/solax/solax/config.py b/packages/modules/devices/solax/solax/config.py index 8694baef28..88db0b73ea 100644 --- a/packages/modules/devices/solax/solax/config.py +++ b/packages/modules/devices/solax/solax/config.py @@ -1,14 +1,19 @@ from typing import Optional from modules.common.component_setup import ComponentSetup +from modules.devices.solax.solax.version import SolaxVersion from ..vendor import vendor_descriptor class SolaxConfiguration: - def __init__(self, modbus_id: int = 1, ip_address: Optional[str] = None, port: int = 502): + def __init__(self, modbus_id: int = 1, + ip_address: Optional[str] = None, + port: int = 502, + version: SolaxVersion = SolaxVersion.G3): self.modbus_id = modbus_id self.ip_address = ip_address self.port = port + self.version = version class Solax: diff --git a/packages/modules/devices/solax/solax/counter.py b/packages/modules/devices/solax/solax/counter.py index 86f49cc8f4..53f55788ff 100644 --- a/packages/modules/devices/solax/solax/counter.py +++ b/packages/modules/devices/solax/solax/counter.py @@ -10,37 +10,52 @@ from modules.common.fault_state import ComponentInfo, FaultState from modules.common.modbus import ModbusDataType from modules.common.store import get_counter_value_store -from modules.devices.solax.solax.config import SolaxCounterSetup +from modules.devices.solax.solax.config import SolaxCounterSetup, Solax +from modules.devices.solax.solax.version import SolaxVersion class SolaxCounter(AbstractCounter): def __init__(self, - device_id: int, + device_config: Solax, component_config: Union[Dict, SolaxCounterSetup], - tcp_client: modbus.ModbusTcpClient_, - modbus_id: int) -> None: - + tcp_client: modbus.ModbusTcpClient_) -> None: + self.device_config = device_config self.component_config = dataclass_from_dict(SolaxCounterSetup, component_config) - self.__modbus_id = modbus_id self.__tcp_client = tcp_client self.store = get_counter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) def update(self): - with self.__tcp_client: - power = self.__tcp_client.read_input_registers(70, ModbusDataType.INT_32, wordorder=Endian.Little, - unit=self.__modbus_id) * -1 - frequency = self.__tcp_client.read_input_registers(7, ModbusDataType.UINT_16, unit=self.__modbus_id) / 100 + unit = self.device_config.configuration.modbus_id + + if SolaxVersion(self.device_config.configuration.version) == SolaxVersion.G2: + power = self.__tcp_client.read_input_registers( + 0x043B, ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) * -1 + frequency = self.__tcp_client.read_input_registers(0x0407, ModbusDataType.UINT_16, unit=unit) / 100 + powers = [-value for value in self.__tcp_client.read_input_registers( + 0x0704, [ModbusDataType.INT_32] * 3, wordorder=Endian.Little, unit=unit)] + exported, imported = [value * 10 for value in self.__tcp_client.read_input_registers( + 0x043D, [ModbusDataType.UINT_32] * 2, wordorder=Endian.Little, unit=unit)] + + elif SolaxVersion(self.device_config.configuration.version) == SolaxVersion.G3: + power = self.__tcp_client.read_input_registers( + 0x0046, ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) * -1 + frequency = self.__tcp_client.read_input_registers(0x0007, ModbusDataType.UINT_16, unit=unit) / 100 try: powers = [-value for value in self.__tcp_client.read_input_registers( - 130, [ModbusDataType.INT_32] * 3, wordorder=Endian.Little, unit=self.__modbus_id - )] + 0x0082, [ModbusDataType.INT_32] * 3, wordorder=Endian.Little, unit=unit)] except Exception: powers = None - exported, imported = [value * 10 - for value in self.__tcp_client.read_input_registers( - 72, [ModbusDataType.UINT_32] * 2, wordorder=Endian.Little, unit=self.__modbus_id - )] + exported, imported = [value * 10 for value in self.__tcp_client.read_input_registers( + 0x0048, [ModbusDataType.UINT_32] * 2, wordorder=Endian.Little, unit=unit)] + + else: + power = self.__tcp_client.read_input_registers( + 0x0409, ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) * -1 + frequency = self.__tcp_client.read_input_registers(0x0406, ModbusDataType.UINT_16, unit=unit) / 100 + powers = None + exported, imported = [value * 100 for value in self.__tcp_client.read_input_registers( + 0x042F, [ModbusDataType.UINT_32] * 2, wordorder=Endian.Little, unit=unit)] counter_state = CounterState( imported=imported, diff --git a/packages/modules/devices/solax/solax/device.py b/packages/modules/devices/solax/solax/device.py index d612f2f16e..711f0e0b60 100644 --- a/packages/modules/devices/solax/solax/device.py +++ b/packages/modules/devices/solax/solax/device.py @@ -16,13 +16,13 @@ def create_device(device_config: Solax): def create_bat_component(component_config: SolaxBatSetup): - return SolaxBat(device_config.id, component_config, client, device_config.configuration.modbus_id) + return SolaxBat(device_config, component_config, client) def create_counter_component(component_config: SolaxCounterSetup): - return SolaxCounter(device_config.id, component_config, client, device_config.configuration.modbus_id) + return SolaxCounter(device_config, component_config, client) def create_inverter_component(component_config: SolaxInverterSetup): - return SolaxInverter(device_config.id, component_config, client, device_config.configuration.modbus_id) + return SolaxInverter(device_config, component_config, client) def update_components(components: Iterable[Union[SolaxBat, SolaxCounter, SolaxInverter]]): with client: diff --git a/packages/modules/devices/solax/solax/inverter.py b/packages/modules/devices/solax/solax/inverter.py index ec85d0d2fd..a65e4d15ea 100644 --- a/packages/modules/devices/solax/solax/inverter.py +++ b/packages/modules/devices/solax/solax/inverter.py @@ -10,27 +10,38 @@ from modules.common.fault_state import ComponentInfo, FaultState from modules.common.modbus import ModbusDataType from modules.common.store import get_inverter_value_store -from modules.devices.solax.solax.config import SolaxInverterSetup +from modules.devices.solax.solax.config import SolaxInverterSetup, Solax +from modules.devices.solax.solax.version import SolaxVersion class SolaxInverter(AbstractInverter): def __init__(self, - device_id: int, + device_config: Solax, component_config: Union[Dict, SolaxInverterSetup], - tcp_client: modbus.ModbusTcpClient_, - modbus_id: int) -> None: + tcp_client: modbus.ModbusTcpClient_) -> None: + self.device_config = device_config self.component_config = dataclass_from_dict(SolaxInverterSetup, component_config) - self.__modbus_id = modbus_id self.__tcp_client = tcp_client self.store = get_inverter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) def update(self) -> None: - with self.__tcp_client: - power_temp = self.__tcp_client.read_input_registers(10, [ModbusDataType.UINT_16] * 2, unit=self.__modbus_id) + unit = self.device_config.configuration.modbus_id + + if SolaxVersion(self.device_config.configuration.version) == SolaxVersion.G2: + power = self.__tcp_client.read_input_registers(0x0413, ModbusDataType.UINT_16, unit=unit) * -1 + exported = self.__tcp_client.read_input_registers( + 0x0423, ModbusDataType.UINT_32, wordorder=Endian.Little, unit=unit) * 100 + elif SolaxVersion(self.device_config.configuration.version) == SolaxVersion.G3: + power_temp = self.__tcp_client.read_input_registers(0x000A, [ModbusDataType.UINT_16] * 2, unit=unit) + power = sum(power_temp) * -1 + exported = self.__tcp_client.read_input_registers( + 0x0052, ModbusDataType.UINT_32, wordorder=Endian.Little, unit=unit) * 100 + else: + power_temp = self.__tcp_client.read_input_registers(0x0410, [ModbusDataType.UINT_16] * 2, unit=unit) power = sum(power_temp) * -1 - exported = self.__tcp_client.read_input_registers(82, ModbusDataType.UINT_32, wordorder=Endian.Little, - unit=self.__modbus_id) * 100 + exported = self.__tcp_client.read_input_registers( + 0x042B, ModbusDataType.UINT_32, wordorder=Endian.Little, unit=unit) * 100 inverter_state = InverterState( power=power, diff --git a/packages/modules/devices/solax/solax/version.py b/packages/modules/devices/solax/solax/version.py new file mode 100644 index 0000000000..d782e1b32c --- /dev/null +++ b/packages/modules/devices/solax/solax/version.py @@ -0,0 +1,7 @@ +from enum import Enum + + +class SolaxVersion(Enum): + G2 = "g2" + G3 = "g3" + G4 = "g4" diff --git a/packages/modules/devices/sungrow/sungrow/bat.py b/packages/modules/devices/sungrow/sungrow/bat.py index c85f1910b3..9dbeeea25e 100644 --- a/packages/modules/devices/sungrow/sungrow/bat.py +++ b/packages/modules/devices/sungrow/sungrow/bat.py @@ -12,6 +12,7 @@ from modules.common.store import get_bat_value_store from modules.devices.sungrow.sungrow.config import SungrowBatSetup, Sungrow from modules.devices.sungrow.sungrow.version import Version +from modules.devices.sungrow.sungrow.firmware import Firmware class SungrowBat(AbstractBat): @@ -28,24 +29,31 @@ def __init__(self, def update(self) -> None: unit = self.device_config.configuration.modbus_id - soc = int(self.__tcp_client.read_input_registers(13022, ModbusDataType.INT_16, unit=unit) / 10) - bat_power = self.__tcp_client.read_input_registers(13021, ModbusDataType.INT_16, unit=unit) - - # Beim WiNet S-Dongle fehlt das Register für das Vorzeichen der Speicherleistung - if self.device_config.configuration.version == Version.SH_winet_dongle: - total_power = self.__tcp_client.read_input_registers(13033, ModbusDataType.INT_32, - wordorder=Endian.Little, unit=unit) - pv_power = self.__tcp_client.read_input_registers(5016, ModbusDataType.UINT_32, - wordorder=Endian.Little, unit=unit) - - # Ist die Gesamtleistung des WR größer als die PV-Erzeugung wird der Speicher entladen - if total_power > pv_power: - bat_power = bat_power * -1 + soc = int(self.__tcp_client.read_input_registers(13022, ModbusDataType.UINT_16, unit=unit) / 10) + + if ( + Firmware(self.device_config.configuration.firmware) == Firmware.v2 + and self.device_config.configuration.version == Version.SH + ): + bat_power = self.__tcp_client.read_input_registers(13021, ModbusDataType.INT_16, unit=unit) * -1 else: - resp = self.__tcp_client._delegate.read_input_registers(13000, 1, unit=unit) - binary = bin(resp.registers[0])[2:].zfill(8) - if binary[5] == "1": - bat_power = bat_power * -1 + bat_power = self.__tcp_client.read_input_registers(13021, ModbusDataType.UINT_16, unit=unit) + + # Beim WiNet S-Dongle fehlt das Register für das Vorzeichen der Speicherleistung + if self.device_config.configuration.version == Version.SH_winet_dongle: + total_power = self.__tcp_client.read_input_registers(13033, ModbusDataType.INT_32, + wordorder=Endian.Little, unit=unit) + pv_power = self.__tcp_client.read_input_registers(5016, ModbusDataType.UINT_32, + wordorder=Endian.Little, unit=unit) + + # Ist die Gesamtleistung des WR größer als die PV-Erzeugung wird der Speicher entladen + if total_power > pv_power: + bat_power = bat_power * -1 + else: + resp = self.__tcp_client._delegate.read_input_registers(13000, 1, unit=unit) + binary = bin(resp.registers[0])[2:].zfill(8) + if binary[5] == "1": + bat_power = bat_power * -1 imported, exported = self.sim_counter.sim_count(bat_power) bat_state = BatState( diff --git a/packages/modules/devices/sungrow/sungrow/config.py b/packages/modules/devices/sungrow/sungrow/config.py index bc112dd867..9825fe3af4 100644 --- a/packages/modules/devices/sungrow/sungrow/config.py +++ b/packages/modules/devices/sungrow/sungrow/config.py @@ -2,6 +2,7 @@ from modules.common.component_setup import ComponentSetup from modules.devices.sungrow.sungrow.version import Version +from modules.devices.sungrow.sungrow.firmware import Firmware from ..vendor import vendor_descriptor @@ -10,11 +11,13 @@ def __init__(self, ip_address: Optional[str] = None, port: int = 502, modbus_id: int = 1, - version: Version = Version.SG): + version: Version = Version.SG, + firmware: Firmware = Firmware.v1): self.ip_address = ip_address self.port = port self.modbus_id = modbus_id self.version = version + self.firmware = firmware class Sungrow: diff --git a/packages/modules/devices/sungrow/sungrow/counter.py b/packages/modules/devices/sungrow/sungrow/counter.py index 643f9be4b6..03bf21cdf3 100644 --- a/packages/modules/devices/sungrow/sungrow/counter.py +++ b/packages/modules/devices/sungrow/sungrow/counter.py @@ -25,14 +25,21 @@ def __init__(self, self.sim_counter = SimCounter(self.device_config.id, self.component_config.id, prefix="bezug") self.store = get_counter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) + self.fault_text = "Dieser Sungrow Zähler liefert von Werk aus (entgegen der Dokumentation) "\ + "keine Leistung der einzelnen Phasen. "\ + "Das Lastmanagement ist daher nur anhand der Gesamtleistung (nicht phasenbasiert) möglich." def update(self, pv_power: float): unit = self.device_config.configuration.modbus_id if self.device_config.configuration.version in (Version.SH, Version.SH_winet_dongle): power = self.__tcp_client.read_input_registers(13009, ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) * -1 - powers = self.__tcp_client.read_input_registers(5602, [ModbusDataType.INT_32] * 3, - wordorder=Endian.Little, unit=unit) + try: + powers = self.__tcp_client.read_input_registers(5602, [ModbusDataType.INT_32] * 3, + wordorder=Endian.Little, unit=unit) + except Exception: + powers = None + self.fault_state.no_error(self.fault_text) else: if pv_power != 0: power = self.__tcp_client.read_input_registers(5082, ModbusDataType.INT_32, @@ -40,8 +47,12 @@ def update(self, pv_power: float): else: power = self.__tcp_client.read_input_registers(5090, ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) - powers = self.__tcp_client.read_input_registers(5084, [ModbusDataType.INT_32] * 3, - wordorder=Endian.Little, unit=unit) + try: + powers = self.__tcp_client.read_input_registers(5084, [ModbusDataType.INT_32] * 3, + wordorder=Endian.Little, unit=unit) + except Exception: + powers = None + self.fault_state.no_error(self.fault_text) frequency = self.__tcp_client.read_input_registers(5035, ModbusDataType.UINT_16, unit=unit) / 10 if self.device_config.configuration.version == Version.SH_winet_dongle: diff --git a/packages/modules/devices/sungrow/sungrow/firmware.py b/packages/modules/devices/sungrow/sungrow/firmware.py new file mode 100644 index 0000000000..b96018bf8b --- /dev/null +++ b/packages/modules/devices/sungrow/sungrow/firmware.py @@ -0,0 +1,6 @@ +from enum import Enum + + +class Firmware(Enum): + v1 = "v1" # bis 11/2024 + v2 = "v2" # ab 11/2024 diff --git a/packages/modules/devices/sungrow/sungrow/inverter.py b/packages/modules/devices/sungrow/sungrow/inverter.py index e01dab7ad2..827e39c353 100644 --- a/packages/modules/devices/sungrow/sungrow/inverter.py +++ b/packages/modules/devices/sungrow/sungrow/inverter.py @@ -32,14 +32,19 @@ def update(self) -> float: if self.device_config.configuration.version in (Version.SH, Version.SH_winet_dongle): power = self.__tcp_client.read_input_registers(13033, ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) * -1 + dc_power = self.__tcp_client.read_input_registers(5016, ModbusDataType.UINT_32, + wordorder=Endian.Little, unit=unit) * -1 else: power = self.__tcp_client.read_input_registers(5030, ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) * -1 + dc_power = self.__tcp_client.read_input_registers(5016, ModbusDataType.UINT_32, + wordorder=Endian.Little, unit=unit) * -1 _, exported = self.sim_counter.sim_count(power) inverter_state = InverterState( power=power, + dc_power=dc_power, exported=exported ) self.store.set(inverter_state) diff --git a/packages/modules/display_themes/cards/source/package-lock.json b/packages/modules/display_themes/cards/source/package-lock.json index 46cd335b11..90340078b8 100644 --- a/packages/modules/display_themes/cards/source/package-lock.json +++ b/packages/modules/display_themes/cards/source/package-lock.json @@ -8,36 +8,50 @@ "name": "openwb-display-cards", "version": "0.0.0", "dependencies": { - "@fortawesome/fontawesome-svg-core": "^6.6.0", - "@fortawesome/free-regular-svg-icons": "^6.6.0", - "@fortawesome/free-solid-svg-icons": "^6.6.0", + "@fortawesome/fontawesome-svg-core": "^6.7.2", + "@fortawesome/free-regular-svg-icons": "^6.7.2", + "@fortawesome/free-solid-svg-icons": "^6.7.2", "@fortawesome/vue-fontawesome": "^3.0.8", "@inkline/inkline": "^3.2.2", "buffer": "^6.0.3", "events": "^3.3.0", - "mqtt": "^5.10.1", - "node-stdlib-browser": "^1.2.1", - "pinia": "^2.2.6", - "vue": "^3.5.12", - "vue-router": "^4.4.5" + "mqtt": "^5.10.3", + "node-stdlib-browser": "^1.3.1", + "pinia": "^2.3.1", + "vue": "^3.5.13", + "vue-router": "^4.5.0" }, "devDependencies": { "@rollup/plugin-terser": "^0.4.4", - "@rushstack/eslint-patch": "^1.10.4", - "@vitejs/plugin-vue": "^5.1.4", - "@vue/eslint-config-prettier": "^9.0.0", + "@rushstack/eslint-patch": "^1.10.5", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/eslint-config-prettier": "^10.2.0", "@vue/test-utils": "^2.4.6", - "eslint": "^9.14.0", - "eslint-plugin-vue": "^9.30.0", - "jsdom": "^25.0.1", - "postcss": "^8.4.47", - "postcss-preset-env": "^10.0.9", - "prettier": "^3.3.3", + "eslint": "^9.19.0", + "eslint-plugin-vue": "^9.32.0", + "jsdom": "^26.0.0", + "postcss": "^8.5.1", + "postcss-preset-env": "^10.1.3", + "prettier": "^3.4.2", "rollup-plugin-polyfill-node": "^0.13.0", - "sass": "^1.80.6", - "vite": "^5.4.10", - "vite-plugin-node-polyfills": "^0.22.0", - "vitest": "^2.1.4" + "sass": "^1.84.0", + "vite": "^5.4.14", + "vite-plugin-node-polyfills": "^0.23.0", + "vitest": "^2.1.9" + } + }, + "node_modules/@asamuzakjp/css-color": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-2.8.3.tgz", + "integrity": "sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.1", + "@csstools/css-color-parser": "^3.0.7", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" } }, "node_modules/@babel/helper-string-parser": { @@ -59,12 +73,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -74,9 +88,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", + "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -86,9 +100,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -143,9 +157,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.0.4.tgz", - "integrity": "sha512-8/iCd8lH10gKNsq5detnbGWiFd6PXK2wB8wjE6fHNNhtqvshyMrIJgffwRcw6yl/gzGTH+N1i+KRhjqHxqYTmg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.1.tgz", + "integrity": "sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==", "dev": true, "funding": [ { @@ -167,9 +181,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.5.tgz", - "integrity": "sha512-4Wo8raj9YF3PnZ5iGrAl+BSsk2MYBOEUS/X4k1HL9mInhyCVftEG02MywdvelXlwZGUF2XTQ0qj9Jd398mhqrw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz", + "integrity": "sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==", "dev": true, "funding": [ { @@ -184,7 +198,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^5.0.1", - "@csstools/css-calc": "^2.0.4" + "@csstools/css-calc": "^2.1.1" }, "engines": { "node": ">=18" @@ -326,9 +340,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.5.tgz", - "integrity": "sha512-6dHr2NDsBMiZCPkGDi2qMfIbzV2kWV8Dh7SVb1FZGnN/r2TI4TSAkVF8rCG5L70yQZHMcQGB84yp8Zm+RGhoHA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.7.tgz", + "integrity": "sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ==", "dev": true, "funding": [ { @@ -342,7 +356,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.5", + "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", @@ -356,9 +370,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.5.tgz", - "integrity": "sha512-jgq0oGbit7TxWYP8y2hWWfV64xzcAgJk54PBYZ2fDrRgEDy1l5YMCrFawnn+5JETh/E1jjXPDFhFEYhwr3vA3g==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.7.tgz", + "integrity": "sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g==", "dev": true, "funding": [ { @@ -372,7 +386,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.5", + "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", @@ -415,9 +429,9 @@ } }, "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.4.tgz", - "integrity": "sha512-xmzFCGTkkLDs7q9vVaRGlnu8s51lRRJzHsaJ/nXmkQuyg0q7gh7rTbJ0bY5sSVet+KB7MTIxRXRUCl2tm7RODA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.6.tgz", + "integrity": "sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g==", "dev": true, "funding": [ { @@ -431,7 +445,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.0.4", + "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -470,9 +484,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.5.tgz", - "integrity": "sha512-VQDayRhC/Mg1fuo8/4F43La5aROgvVyqtCqdNyGvRKi6L1+zXfwQ583nImi7k/gn2GNJH82Bf9mutTuT1GtXzA==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.7.tgz", + "integrity": "sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw==", "dev": true, "funding": [ { @@ -486,7 +500,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.5", + "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -498,9 +512,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.5.tgz", - "integrity": "sha512-l3ShDdAt/szbyBh3Jz27MRFt5WPAbnVCMsU7Vs7EbBxJQNgVDrcu1APBB2nPagDJOyhI6/IahuW7nb6grWVTpA==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.7.tgz", + "integrity": "sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA==", "dev": true, "funding": [ { @@ -514,7 +528,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.5", + "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", @@ -528,9 +542,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.5.tgz", - "integrity": "sha512-bPn/SQyiiYjWkwK2ykc7O9LliMR50YfUGukd6jQI2okHzB7NxNt/IS45tS1Muk7Hhf3B9Lbmg1Ofq36tBmM92Q==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.7.tgz", + "integrity": "sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA==", "dev": true, "funding": [ { @@ -544,7 +558,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.5", + "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", @@ -824,9 +838,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.4.tgz", - "integrity": "sha512-zgdBOCI9aKoy5GK9tb/3ve0pl7vH0HJg7rfQEWT3TZiIKh7XEWucDSTSwnwgdgtgz50UxrOfbK+C59M+u2fE2Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.6.tgz", + "integrity": "sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg==", "dev": true, "funding": [ { @@ -840,7 +854,7 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.0.4", + "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/media-query-list-parser": "^4.0.2" @@ -934,9 +948,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.5.tgz", - "integrity": "sha512-19bsJQFyJNSEhpaVq0Mq1E0HDXfx8qMHa/bR1MaHr1UD4DWvM2/J6YXb9OVGS7eFl92Y3c84Yggn9uFv13vsiQ==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.7.tgz", + "integrity": "sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ==", "dev": true, "funding": [ { @@ -950,7 +964,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.5", + "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", @@ -989,10 +1003,38 @@ "postcss": "^8.4" } }, + "node_modules/@csstools/postcss-random-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.2.tgz", + "integrity": "sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.1", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.5.tgz", - "integrity": "sha512-5VrE4hAwv/ZpuL1Yo0ZGGFi1QPpIikp/rzz7LnpQ31ACQVRIA5/M9qZmJbRlZVsJ4bUFSQ3dq6kHSHrCt2uM6Q==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.7.tgz", + "integrity": "sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw==", "dev": true, "funding": [ { @@ -1006,7 +1048,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.5", + "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", @@ -1059,10 +1101,38 @@ "node": ">=4" } }, + "node_modules/@csstools/postcss-sign-functions": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.1.tgz", + "integrity": "sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.1", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.4.tgz", - "integrity": "sha512-JjShuWZkmIOT8EfI7lYjl7V5qM29LNDdnnSo5O7v/InJJHfeiQjtxyAaZzKGXzpkghPrCAcgLfJ+IyqTdXo7IA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.6.tgz", + "integrity": "sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA==", "dev": true, "funding": [ { @@ -1076,7 +1146,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.0.4", + "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -1115,9 +1185,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.4.tgz", - "integrity": "sha512-nn+gWTZZlSnwbyUtGQCnvBXIx1TX+HVStvIm3221dWGQvp47bB5giMBbuAK4a/UJGBbfDQhGKEbYq++WWM1i1A==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.6.tgz", + "integrity": "sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A==", "dev": true, "funding": [ { @@ -1131,7 +1201,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.0.4", + "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -1622,13 +1692,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", - "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.4", + "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -1637,19 +1707,22 @@ } }, "node_modules/@eslint/core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", - "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -1671,9 +1744,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", - "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", "dev": true, "license": "MIT", "engines": { @@ -1681,9 +1754,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1691,12 +1764,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", - "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -1704,45 +1778,45 @@ } }, "node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", - "integrity": "sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz", + "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz", - "integrity": "sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", + "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", "license": "MIT", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.6.0" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-regular-svg-icons": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.6.0.tgz", - "integrity": "sha512-Yv9hDzL4aI73BEwSEh20clrY8q/uLxawaQ98lekBx6t9dQKDHcDzzV1p2YtBGTtolYtNqcWdniOnhzB+JPnQEQ==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.2.tgz", + "integrity": "sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g==", "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.6.0" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.6.0.tgz", - "integrity": "sha512-IYv/2skhEDFc2WGUcqvFJkeK39Q+HyPf5GHUrT/l2pKbtgEIv1al1TKd6qStR5OIwQdN1GZP54ci3y4mroJWjA==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz", + "integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==", "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.6.0" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" @@ -1859,9 +1933,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, "license": "MIT", "dependencies": { @@ -1929,9 +2003,9 @@ "license": "MIT" }, "node_modules/@parcel/watcher": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", - "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1950,25 +2024,25 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.0", - "@parcel/watcher-darwin-arm64": "2.5.0", - "@parcel/watcher-darwin-x64": "2.5.0", - "@parcel/watcher-freebsd-x64": "2.5.0", - "@parcel/watcher-linux-arm-glibc": "2.5.0", - "@parcel/watcher-linux-arm-musl": "2.5.0", - "@parcel/watcher-linux-arm64-glibc": "2.5.0", - "@parcel/watcher-linux-arm64-musl": "2.5.0", - "@parcel/watcher-linux-x64-glibc": "2.5.0", - "@parcel/watcher-linux-x64-musl": "2.5.0", - "@parcel/watcher-win32-arm64": "2.5.0", - "@parcel/watcher-win32-ia32": "2.5.0", - "@parcel/watcher-win32-x64": "2.5.0" + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", - "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", "cpu": [ "arm64" ], @@ -1987,9 +2061,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", "cpu": [ "arm64" ], @@ -2008,9 +2082,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", - "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", "cpu": [ "x64" ], @@ -2029,9 +2103,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", - "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", "cpu": [ "x64" ], @@ -2050,9 +2124,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", - "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", "cpu": [ "arm" ], @@ -2071,9 +2145,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", - "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", "cpu": [ "arm" ], @@ -2092,9 +2166,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", - "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", "cpu": [ "arm64" ], @@ -2113,9 +2187,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", - "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", "cpu": [ "arm64" ], @@ -2134,9 +2208,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", - "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", "cpu": [ "x64" ], @@ -2155,9 +2229,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", - "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", "cpu": [ "x64" ], @@ -2176,9 +2250,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", - "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", "cpu": [ "arm64" ], @@ -2197,9 +2271,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", "cpu": [ "ia32" ], @@ -2218,9 +2292,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", "cpu": [ "x64" ], @@ -2319,9 +2393,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", - "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2342,9 +2416,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz", - "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.4.tgz", + "integrity": "sha512-gGi5adZWvjtJU7Axs//CWaQbQd/vGy8KGcnEaCWiyCqxWYDxwIlAHFuSe6Guoxtd0SRvSfVTDMPd5H+4KE2kKA==", "cpu": [ "arm" ], @@ -2356,9 +2430,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz", - "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.4.tgz", + "integrity": "sha512-1aRlh1gqtF7vNPMnlf1vJKk72Yshw5zknR/ZAVh7zycRAGF2XBMVDAHmFQz/Zws5k++nux3LOq/Ejj1WrDR6xg==", "cpu": [ "arm64" ], @@ -2370,9 +2444,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz", - "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.4.tgz", + "integrity": "sha512-drHl+4qhFj+PV/jrQ78p9ch6A0MfNVZScl/nBps5a7u01aGf/GuBRrHnRegA9bP222CBDfjYbFdjkIJ/FurvSQ==", "cpu": [ "arm64" ], @@ -2384,9 +2458,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz", - "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.4.tgz", + "integrity": "sha512-hQqq/8QALU6t1+fbNmm6dwYsa0PDD4L5r3TpHx9dNl+aSEMnIksHZkSO3AVH+hBMvZhpumIGrTFj8XCOGuIXjw==", "cpu": [ "x64" ], @@ -2398,9 +2472,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz", - "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.4.tgz", + "integrity": "sha512-/L0LixBmbefkec1JTeAQJP0ETzGjFtNml2gpQXA8rpLo7Md+iXQzo9kwEgzyat5Q+OG/C//2B9Fx52UxsOXbzw==", "cpu": [ "arm64" ], @@ -2412,9 +2486,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz", - "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.4.tgz", + "integrity": "sha512-6Rk3PLRK+b8L/M6m/x6Mfj60LhAUcLJ34oPaxufA+CfqkUrDoUPQYFdRrhqyOvtOKXLJZJwxlOLbQjNYQcRQfw==", "cpu": [ "x64" ], @@ -2426,9 +2500,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz", - "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.4.tgz", + "integrity": "sha512-kmT3x0IPRuXY/tNoABp2nDvI9EvdiS2JZsd4I9yOcLCCViKsP0gB38mVHOhluzx+SSVnM1KNn9k6osyXZhLoCA==", "cpu": [ "arm" ], @@ -2440,9 +2514,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz", - "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.4.tgz", + "integrity": "sha512-3iSA9tx+4PZcJH/Wnwsvx/BY4qHpit/u2YoZoXugWVfc36/4mRkgGEoRbRV7nzNBSCOgbWMeuQ27IQWgJ7tRzw==", "cpu": [ "arm" ], @@ -2454,9 +2528,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz", - "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.4.tgz", + "integrity": "sha512-7CwSJW+sEhM9sESEk+pEREF2JL0BmyCro8UyTq0Kyh0nu1v0QPNY3yfLPFKChzVoUmaKj8zbdgBxUhBRR+xGxg==", "cpu": [ "arm64" ], @@ -2468,9 +2542,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz", - "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.4.tgz", + "integrity": "sha512-GZdafB41/4s12j8Ss2izofjeFXRAAM7sHCb+S4JsI9vaONX/zQ8cXd87B9MRU/igGAJkKvmFmJJBeeT9jJ5Cbw==", "cpu": [ "arm64" ], @@ -2481,10 +2555,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.4.tgz", + "integrity": "sha512-uuphLuw1X6ur11675c2twC6YxbzyLSpWggvdawTUamlsoUv81aAXRMPBC1uvQllnBGls0Qt5Siw8reSIBnbdqQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz", - "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.4.tgz", + "integrity": "sha512-KvLEw1os2gSmD6k6QPCQMm2T9P2GYvsMZMRpMz78QpSoEevHbV/KOUbI/46/JRalhtSAYZBYLAnT9YE4i/l4vg==", "cpu": [ "ppc64" ], @@ -2496,9 +2584,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz", - "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.4.tgz", + "integrity": "sha512-wcpCLHGM9yv+3Dql/CI4zrY2mpQ4WFergD3c9cpRowltEh5I84pRT/EuHZsG0In4eBPPYthXnuR++HrFkeqwkA==", "cpu": [ "riscv64" ], @@ -2510,9 +2598,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz", - "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.4.tgz", + "integrity": "sha512-nLbfQp2lbJYU8obhRQusXKbuiqm4jSJteLwfjnunDT5ugBKdxqw1X9KWwk8xp1OMC6P5d0WbzxzhWoznuVK6XA==", "cpu": [ "s390x" ], @@ -2524,9 +2612,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz", - "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.4.tgz", + "integrity": "sha512-JGejzEfVzqc/XNiCKZj14eb6s5w8DdWlnQ5tWUbs99kkdvfq9btxxVX97AaxiUX7xJTKFA0LwoS0KU8C2faZRg==", "cpu": [ "x64" ], @@ -2538,9 +2626,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz", - "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.4.tgz", + "integrity": "sha512-/iFIbhzeyZZy49ozAWJ1ZR2KW6ZdYUbQXLT4O5n1cRZRoTpwExnHLjlurDXXPKEGxiAg0ujaR9JDYKljpr2fDg==", "cpu": [ "x64" ], @@ -2552,9 +2640,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz", - "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.4.tgz", + "integrity": "sha512-qORc3UzoD5UUTneiP2Afg5n5Ti1GAW9Gp5vHPxzvAFFA3FBaum9WqGvYXGf+c7beFdOKNos31/41PRMUwh1tpA==", "cpu": [ "arm64" ], @@ -2566,9 +2654,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz", - "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.4.tgz", + "integrity": "sha512-5g7E2PHNK2uvoD5bASBD9aelm44nf1w4I5FEI7MPHLWcCSrR8JragXZWgKPXk5i2FU3JFfa6CGZLw2RrGBHs2Q==", "cpu": [ "ia32" ], @@ -2580,9 +2668,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz", - "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.4.tgz", + "integrity": "sha512-p0scwGkR4kZ242xLPBuhSckrJ734frz6v9xZzD+kHVYRAkSUmdSLCIJRfql6H5//aF8Q10K+i7q8DiPfZp0b7A==", "cpu": [ "x64" ], @@ -2594,9 +2682,9 @@ ] }, "node_modules/@rushstack/eslint-patch": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", - "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.5.tgz", + "integrity": "sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==", "dev": true, "license": "MIT" }, @@ -2615,12 +2703,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", - "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", + "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.8" + "undici-types": "~6.20.0" } }, "node_modules/@types/readable-stream": { @@ -2634,37 +2722,37 @@ } }, "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", + "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@vitejs/plugin-vue": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz", - "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", + "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==", "dev": true, "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^5.0.0", + "vite": "^5.0.0 || ^6.0.0", "vue": "^3.2.25" } }, "node_modules/@vitest/expect": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz", - "integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", + "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.4", - "@vitest/utils": "2.1.4", + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", "chai": "^5.1.2", "tinyrainbow": "^1.2.0" }, @@ -2673,13 +2761,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz", - "integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz", + "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.4", + "@vitest/spy": "2.1.9", "estree-walker": "^3.0.3", "magic-string": "^0.30.12" }, @@ -2710,9 +2798,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz", - "integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2723,13 +2811,13 @@ } }, "node_modules/@vitest/runner": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz", - "integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", + "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "2.1.4", + "@vitest/utils": "2.1.9", "pathe": "^1.1.2" }, "funding": { @@ -2737,13 +2825,13 @@ } }, "node_modules/@vitest/snapshot": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz", - "integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", + "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.4", + "@vitest/pretty-format": "2.1.9", "magic-string": "^0.30.12", "pathe": "^1.1.2" }, @@ -2752,9 +2840,9 @@ } }, "node_modules/@vitest/spy": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz", - "integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", + "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2765,13 +2853,13 @@ } }, "node_modules/@vitest/utils": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz", - "integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", + "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.4", + "@vitest/pretty-format": "2.1.9", "loupe": "^3.1.2", "tinyrainbow": "^1.2.0" }, @@ -2780,53 +2868,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", - "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.12", + "@vue/shared": "3.5.13", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", - "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", - "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.12", - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", "estree-walker": "^2.0.2", "magic-string": "^0.30.11", - "postcss": "^8.4.47", + "postcss": "^8.4.48", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", - "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/devtools-api": { @@ -2836,68 +2924,68 @@ "license": "MIT" }, "node_modules/@vue/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-10.2.0.tgz", + "integrity": "sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==", "dev": true, "license": "MIT", "dependencies": { - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-prettier": "^5.0.0" + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.2" }, "peerDependencies": { - "eslint": ">= 8.0.0", + "eslint": ">= 8.21.0", "prettier": ">= 3.0.0" } }, "node_modules/@vue/reactivity": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.12.tgz", - "integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.12" + "@vue/shared": "3.5.13" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.12.tgz", - "integrity": "sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.12.tgz", - "integrity": "sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.12", - "@vue/runtime-core": "3.5.12", - "@vue/shared": "3.5.12", + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.12.tgz", - "integrity": "sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" }, "peerDependencies": { - "vue": "3.5.12" + "vue": "3.5.13" } }, "node_modules/@vue/shared": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", - "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", "license": "MIT" }, "node_modules/@vue/test-utils": { @@ -2957,14 +3045,11 @@ } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } @@ -3034,9 +3119,9 @@ } }, "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/assert": { @@ -3150,9 +3235,9 @@ "license": "MIT" }, "node_modules/bl": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.16.tgz", - "integrity": "sha512-V/kz+z2Mx5/6qDfRCilmrukUXcXuCoXKg3/3hDvzKKoSUx8CJKudfIoT29XZc3UE9xBvxs5qictiHdprwtteEg==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.19.tgz", + "integrity": "sha512-4Ay3A3oDfGg3GGirhl4s62ebtnk0pJZA5mLp672MPKOQXsWvXjEF4dqdXySjJIs7b9OVr/O8aOo0Lm+xdjo2JA==", "license": "MIT", "dependencies": { "@types/readable-stream": "^4.0.0", @@ -3372,9 +3457,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -3392,9 +3477,9 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { @@ -3457,16 +3542,44 @@ } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -3486,9 +3599,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001679", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001679.tgz", - "integrity": "sha512-j2YqID/YwpLnKzCmBOS4tlZdWprXm3ZmQLBH9ZBXFOhoxLA46fwyBvx6toCBWBmnuwUY/qB3kEU6gFx8qgCroA==", + "version": "1.0.30001697", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001697.tgz", + "integrity": "sha512-GwNPlWJin8E+d7Gxq96jxM6w0w+VFeyyXRsjU58emtkYqnbwHqXm5uT2uCmO0RQE9htWknOP4xtBlLmM/gWxvQ==", "dev": true, "funding": [ { @@ -3551,9 +3664,9 @@ } }, "node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, "license": "MIT", "dependencies": { @@ -3567,15 +3680,38 @@ } }, "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, + "node_modules/cipher-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3700,9 +3836,9 @@ } }, "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/create-hash": { @@ -3739,9 +3875,9 @@ "license": "MIT" }, "node_modules/cross-spawn": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", - "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -3820,9 +3956,9 @@ } }, "node_modules/css-has-pseudo": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.1.tgz", - "integrity": "sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz", + "integrity": "sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==", "dev": true, "funding": [ { @@ -3908,9 +4044,9 @@ } }, "node_modules/cssdb": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.1.2.tgz", - "integrity": "sha512-ba3HmHU/lxy9nfz/fQLA/Ul+/oSdSOXqoR53BDmRvXTfRbkGqHKqr2rSxADYMRF4uD8vZhMlCQ6c5TEfLLkkVA==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.3.tgz", + "integrity": "sha512-9BDG5XmJrJQQnJ51VFxXCAtpZ5ebDlAREmO8sxMOVU0aSxN/gocbctjIG5LMh3WBUq+xTlb/jw2LoljBEqraTA==", "dev": true, "funding": [ { @@ -3938,13 +4074,14 @@ } }, "node_modules/cssstyle": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.1.0.tgz", - "integrity": "sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.2.1.tgz", + "integrity": "sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==", "dev": true, "license": "MIT", "dependencies": { - "rrweb-cssom": "^0.7.1" + "@asamuzakjp/css-color": "^2.8.2", + "rrweb-cssom": "^0.8.0" }, "engines": { "node": ">=18" @@ -3971,9 +4108,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -3988,9 +4125,9 @@ } }, "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", "dev": true, "license": "MIT" }, @@ -4091,16 +4228,16 @@ } }, "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/domain-browser": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz", - "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", - "license": "Artistic-2.0", + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz", + "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -4108,6 +4245,20 @@ "url": "https://bevry.me/fund" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -4161,16 +4312,16 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.55", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.55.tgz", - "integrity": "sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg==", + "version": "1.5.93", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.93.tgz", + "integrity": "sha512-M+29jTcfNNoR9NV7la4SwUqzWAxEwnc7ThA5e1m6LRSotmpfpCpLcIfgtSCVL+MllNLgAyM/5ru86iMRemPzDQ==", "dev": true, "license": "ISC" }, "node_modules/elliptic": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", - "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "license": "MIT", "dependencies": { "bn.js": "^4.11.9", @@ -4183,9 +4334,9 @@ } }, "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/emoji-regex": { @@ -4208,13 +4359,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -4228,6 +4376,25 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/esbuild": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", @@ -4291,27 +4458,27 @@ } }, "node_modules/eslint": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", - "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.18.0", - "@eslint/core": "^0.7.0", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.14.0", - "@eslint/plugin-kit": "^0.2.0", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.19.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.0", + "@humanwhocodes/retry": "^0.4.1", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.2.0", @@ -4330,8 +4497,7 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" @@ -4352,22 +4518,22 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", + "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", "dev": true, "license": "MIT", "bin": { - "eslint-config-prettier": "bin/cli.js" + "eslint-config-prettier": "build/bin/cli.js" }, "peerDependencies": { "eslint": ">=7.0.0" } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", + "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", "dev": true, "license": "MIT", "dependencies": { @@ -4396,9 +4562,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.30.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.30.0.tgz", - "integrity": "sha512-CyqlRgShvljFkOeYK8wN5frh/OGTvkj1S7wlr2Q2pUvwq+X5VYiLd6ZjujpgSgLnys2W8qrBLkXQ41SUYaoPIQ==", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz", + "integrity": "sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==", "dev": true, "license": "MIT", "dependencies": { @@ -4671,19 +4837,25 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz", + "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==", "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/foreground-child": { @@ -4757,16 +4929,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4775,6 +4952,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -4849,12 +5039,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4882,22 +5072,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -4922,18 +5100,38 @@ } }, "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">=4" + "node": ">= 0.10" } }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -5007,13 +5205,13 @@ "license": "MIT" }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -5064,16 +5262,16 @@ } }, "node_modules/immutable": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", "dev": true, "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5111,13 +5309,13 @@ "license": "ISC" }, "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5139,9 +5337,9 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -5174,12 +5372,15 @@ } }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5235,13 +5436,31 @@ "dev": true, "license": "MIT" }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -5344,23 +5563,23 @@ } }, "node_modules/jsdom": { - "version": "25.0.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz", - "integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==", + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.0.0.tgz", + "integrity": "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==", "dev": true, "license": "MIT", "dependencies": { - "cssstyle": "^4.1.0", + "cssstyle": "^4.2.1", "data-urls": "^5.0.0", "decimal.js": "^10.4.3", - "form-data": "^4.0.0", + "form-data": "^4.0.1", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.5", + "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.12", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.7.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.0.0", @@ -5368,7 +5587,7 @@ "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0", + "whatwg-url": "^14.1.0", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, @@ -5376,7 +5595,7 @@ "node": ">=18" }, "peerDependencies": { - "canvas": "^2.11.2" + "canvas": "^3.0.0" }, "peerDependenciesMeta": { "canvas": { @@ -5469,9 +5688,9 @@ "license": "MIT" }, "node_modules/loupe": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", - "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", + "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", "dev": true, "license": "MIT" }, @@ -5482,14 +5701,23 @@ "license": "ISC" }, "node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -5544,9 +5772,9 @@ } }, "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/mime-db": { @@ -5617,9 +5845,9 @@ } }, "node_modules/mqtt": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.10.1.tgz", - "integrity": "sha512-hXCOki8sANoQ7w+2OzJzg6qMBxTtrH9RlnVNV8panLZgnl+Gh0J/t4k6r8Az8+C7y3KAcyXtn0mmLixyUom8Sw==", + "version": "5.10.3", + "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.10.3.tgz", + "integrity": "sha512-hA/6YrUS4fywhBGCjH/XXUuLeueJiPqruVVWjK2A24Ma4KcWfZ/x8x07aoesBV+HXDWBC08tbT4IWfSXNW0Jtw==", "license": "MIT", "dependencies": { "@types/readable-stream": "^4.0.5", @@ -5630,7 +5858,7 @@ "help-me": "^5.0.0", "lru-cache": "^10.0.1", "minimist": "^1.2.8", - "mqtt-packet": "^9.0.0", + "mqtt-packet": "^9.0.1", "number-allocator": "^1.0.14", "readable-stream": "^4.4.2", "reinterval": "^1.1.0", @@ -5649,9 +5877,9 @@ } }, "node_modules/mqtt-packet": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-9.0.0.tgz", - "integrity": "sha512-8v+HkX+fwbodsWAZIZTI074XIoxVBOmPeggQuDFCGg1SqNcC+uoRMWu7J6QlJPqIUIJXmjNYYHxBBLr1Y/Df4w==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-9.0.1.tgz", + "integrity": "sha512-koZF1V/X2RZUI6uD9wN5OK1JxxcG1ofAR4H3LjCw1FkeKzruZQ26aAA6v2m1lZyWONZIR5wMMJFrZJDRNzbiQw==", "license": "MIT", "dependencies": { "bl": "^6.0.8", @@ -5666,9 +5894,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -5699,16 +5927,16 @@ "optional": true }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, "license": "MIT" }, "node_modules/node-stdlib-browser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.2.1.tgz", - "integrity": "sha512-dZezG3D88Lg22DwyjsDuUs7cCT/XGr8WwJgg/S3ZnkcWuPet2Tt/W1d2Eytb1Z73JpZv+XVCDI5TWv6UMRq0Gg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.3.1.tgz", + "integrity": "sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==", "license": "MIT", "dependencies": { "assert": "^2.0.0", @@ -5718,8 +5946,8 @@ "console-browserify": "^1.1.0", "constants-browserify": "^1.0.0", "create-require": "^1.1.1", - "crypto-browserify": "^3.11.0", - "domain-browser": "^4.22.0", + "crypto-browserify": "^3.12.1", + "domain-browser": "4.22.0", "events": "^3.0.0", "https-browserify": "^1.0.0", "isomorphic-timers-promises": "^1.0.1", @@ -5831,16 +6059,16 @@ } }, "node_modules/nwsapi": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", - "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", "dev": true, "license": "MIT" }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -5875,14 +6103,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -6123,9 +6353,9 @@ } }, "node_modules/pinia": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.6.tgz", - "integrity": "sha512-vIsR8JkDN5Ga2vAxqOE2cJj4VtsHnzpR1Fz30kClxlh0yCHfec6uoMeM3e/ddqmwFUejK3NlrcQa/shnpyT4hA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz", + "integrity": "sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.3", @@ -6135,45 +6365,15 @@ "url": "https://github.com/sponsors/posva" }, "peerDependencies": { - "@vue/composition-api": "^1.4.0", "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.5.11" + "vue": "^2.7.0 || ^3.5.11" }, "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - }, "typescript": { "optional": true } } }, - "node_modules/pinia/node_modules/vue-demi": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", - "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, "node_modules/pkg-dir": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", @@ -6196,9 +6396,9 @@ } }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "funding": [ { "type": "opencollective", @@ -6215,8 +6415,8 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { @@ -6280,9 +6480,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.5.tgz", - "integrity": "sha512-zW97tq5t2sSSSZQcIS4y6NDZj79zVv8hrBIJ4PSFZFmMBcjYqCt8sRXFGIYZohCpfFHmimMNqJje2Qd3qqMNdg==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.7.tgz", + "integrity": "sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw==", "dev": true, "funding": [ { @@ -6296,7 +6496,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.5", + "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", @@ -6674,9 +6874,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.5.tgz", - "integrity": "sha512-q2M8CfQbjHxbwv1GPAny05EVuj0WByUgq/OWKgpfbTHnMchtUqsVQgaW1mztjSZ4UPufwuTLB14fmFGsoTE/VQ==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.7.tgz", + "integrity": "sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig==", "dev": true, "funding": [ { @@ -6690,7 +6890,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.5", + "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", @@ -6903,9 +7103,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "10.0.9", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.0.9.tgz", - "integrity": "sha512-mpfJWMAW6szov+ifW9HpNUUZE3BoXoHc4CDzNQHdH2I4CwsqulQ3bpFNUR6zh4tg0BUcqM7UUAbzG4UTel8QYw==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.3.tgz", + "integrity": "sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw==", "dev": true, "funding": [ { @@ -6920,14 +7120,14 @@ "license": "MIT-0", "dependencies": { "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.5", - "@csstools/postcss-color-mix-function": "^3.0.5", + "@csstools/postcss-color-function": "^4.0.7", + "@csstools/postcss-color-mix-function": "^3.0.7", "@csstools/postcss-content-alt-text": "^2.0.4", - "@csstools/postcss-exponential-functions": "^2.0.4", + "@csstools/postcss-exponential-functions": "^2.0.6", "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.5", - "@csstools/postcss-gradients-interpolation-method": "^5.0.5", - "@csstools/postcss-hwb-function": "^4.0.5", + "@csstools/postcss-gamut-mapping": "^2.0.7", + "@csstools/postcss-gradients-interpolation-method": "^5.0.7", + "@csstools/postcss-hwb-function": "^4.0.7", "@csstools/postcss-ic-unit": "^4.0.0", "@csstools/postcss-initial": "^2.0.0", "@csstools/postcss-is-pseudo-class": "^5.0.1", @@ -6937,27 +7137,29 @@ "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", "@csstools/postcss-logical-resize": "^3.0.0", "@csstools/postcss-logical-viewport-units": "^3.0.3", - "@csstools/postcss-media-minmax": "^2.0.4", + "@csstools/postcss-media-minmax": "^2.0.6", "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", "@csstools/postcss-nested-calc": "^4.0.0", "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.5", + "@csstools/postcss-oklab-function": "^4.0.7", "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/postcss-relative-color-syntax": "^3.0.5", + "@csstools/postcss-random-function": "^1.0.2", + "@csstools/postcss-relative-color-syntax": "^3.0.7", "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-stepped-value-functions": "^4.0.4", + "@csstools/postcss-sign-functions": "^1.1.1", + "@csstools/postcss-stepped-value-functions": "^4.0.6", "@csstools/postcss-text-decoration-shorthand": "^4.0.1", - "@csstools/postcss-trigonometric-functions": "^4.0.4", + "@csstools/postcss-trigonometric-functions": "^4.0.6", "@csstools/postcss-unset-value": "^4.0.0", "autoprefixer": "^10.4.19", "browserslist": "^4.23.1", "css-blank-pseudo": "^7.0.1", - "css-has-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.2", "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.1.2", + "cssdb": "^8.2.3", "postcss-attribute-case-insensitive": "^7.0.1", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.5", + "postcss-color-functional-notation": "^7.0.7", "postcss-color-hex-alpha": "^10.0.0", "postcss-color-rebeccapurple": "^10.0.0", "postcss-custom-media": "^11.0.5", @@ -6970,7 +7172,7 @@ "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^6.0.0", "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.5", + "postcss-lab-function": "^7.0.7", "postcss-logical": "^8.0.0", "postcss-nesting": "^13.0.1", "postcss-opacity-percentage": "^3.0.0", @@ -7110,9 +7312,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "license": "MIT", "bin": { @@ -7175,9 +7377,9 @@ } }, "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/punycode": { @@ -7187,12 +7389,12 @@ "license": "MIT" }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -7229,9 +7431,9 @@ } }, "node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -7245,13 +7447,13 @@ } }, "node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -7271,18 +7473,21 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7314,9 +7519,9 @@ } }, "node_modules/rollup": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz", - "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==", + "version": "4.34.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.4.tgz", + "integrity": "sha512-spF66xoyD7rz3o08sHP7wogp1gZ6itSq22SGa/IZTcUDXDlOyrShwMwkVSB+BUxFRZZCUYqdb3KWDEOMVQZxuw==", "dev": true, "license": "MIT", "dependencies": { @@ -7330,24 +7535,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.4", - "@rollup/rollup-android-arm64": "4.24.4", - "@rollup/rollup-darwin-arm64": "4.24.4", - "@rollup/rollup-darwin-x64": "4.24.4", - "@rollup/rollup-freebsd-arm64": "4.24.4", - "@rollup/rollup-freebsd-x64": "4.24.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.4", - "@rollup/rollup-linux-arm-musleabihf": "4.24.4", - "@rollup/rollup-linux-arm64-gnu": "4.24.4", - "@rollup/rollup-linux-arm64-musl": "4.24.4", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4", - "@rollup/rollup-linux-riscv64-gnu": "4.24.4", - "@rollup/rollup-linux-s390x-gnu": "4.24.4", - "@rollup/rollup-linux-x64-gnu": "4.24.4", - "@rollup/rollup-linux-x64-musl": "4.24.4", - "@rollup/rollup-win32-arm64-msvc": "4.24.4", - "@rollup/rollup-win32-ia32-msvc": "4.24.4", - "@rollup/rollup-win32-x64-msvc": "4.24.4", + "@rollup/rollup-android-arm-eabi": "4.34.4", + "@rollup/rollup-android-arm64": "4.34.4", + "@rollup/rollup-darwin-arm64": "4.34.4", + "@rollup/rollup-darwin-x64": "4.34.4", + "@rollup/rollup-freebsd-arm64": "4.34.4", + "@rollup/rollup-freebsd-x64": "4.34.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.4", + "@rollup/rollup-linux-arm-musleabihf": "4.34.4", + "@rollup/rollup-linux-arm64-gnu": "4.34.4", + "@rollup/rollup-linux-arm64-musl": "4.34.4", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.4", + "@rollup/rollup-linux-riscv64-gnu": "4.34.4", + "@rollup/rollup-linux-s390x-gnu": "4.34.4", + "@rollup/rollup-linux-x64-gnu": "4.34.4", + "@rollup/rollup-linux-x64-musl": "4.34.4", + "@rollup/rollup-win32-arm64-msvc": "4.34.4", + "@rollup/rollup-win32-ia32-msvc": "4.34.4", + "@rollup/rollup-win32-x64-msvc": "4.34.4", "fsevents": "~2.3.2" } }, @@ -7365,9 +7571,9 @@ } }, "node_modules/rrweb-cssom": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", - "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", "dev": true, "license": "MIT" }, @@ -7377,6 +7583,23 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "license": "MIT" }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -7385,14 +7608,14 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.80.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.6.tgz", - "integrity": "sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==", + "version": "1.84.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.84.0.tgz", + "integrity": "sha512-XDAbhEPJRxi7H0SxrnOpiXFQoUJHwkR2u3Zc4el+fK/Tt5Hpzw5kkQ59qVDfvdaUq6gCrEZIbySFBM2T9DNKHg==", "dev": true, "license": "MIT", "dependencies": { "chokidar": "^4.0.0", - "immutable": "^4.0.0", + "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { @@ -7419,9 +7642,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "license": "ISC", "bin": { @@ -7501,15 +7724,69 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -7844,9 +8121,9 @@ } }, "node_modules/terser": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", - "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "version": "5.38.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.38.0.tgz", + "integrity": "sha512-a4GD5R1TjEeuCT6ZRiYMHmIf7okbCPEuhQET8bczV6FrQMMlFXA1n+G0KKjdlFCm3TEHV77GxfZB3vZSUQGFpg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7869,13 +8146,6 @@ "dev": true, "license": "MIT" }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", @@ -7896,16 +8166,16 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", - "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", "dev": true, "license": "MIT" }, "node_modules/tinypool": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", - "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", + "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", "dev": true, "license": "MIT", "engines": { @@ -7933,22 +8203,22 @@ } }, "node_modules/tldts": { - "version": "6.1.59", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.59.tgz", - "integrity": "sha512-472ilPxsRuqBBpn+KuRBHJvZhk6tTo4yTVsmODrLBNLwRYJPkDfMEHivgNwp5iEl+cbrZzzRtLKRxZs7+QKkRg==", + "version": "6.1.76", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.76.tgz", + "integrity": "sha512-6U2ti64/nppsDxQs9hw8ephA3nO6nSQvVVfxwRw8wLQPFtLI1cFI1a1eP22g+LUP+1TA2pKKjUTwWB+K2coqmQ==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^6.1.59" + "tldts-core": "^6.1.76" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "6.1.59", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.59.tgz", - "integrity": "sha512-EiYgNf275AQyVORl8HQYYe7rTVnmLb4hkWK7wAk/12Ksy5EiHpmUmTICa4GojookBPC8qkLMBKKwCmzNA47ZPQ==", + "version": "6.1.76", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.76.tgz", + "integrity": "sha512-uzhJ02RaMzgQR3yPoeE65DrcHI6LoM4saUqXOt/b5hmb3+mc4YWpdSeAQqVqRUlQ14q8ZuLRWyBR1ictK1dzzg==", "dev": true, "license": "MIT" }, @@ -7967,9 +8237,9 @@ } }, "node_modules/tough-cookie": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", - "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.0.tgz", + "integrity": "sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -8047,15 +8317,15 @@ "license": "MIT" }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "license": "MIT" }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -8074,7 +8344,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -8136,9 +8406,9 @@ "license": "MIT" }, "node_modules/vite": { - "version": "5.4.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", - "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "version": "5.4.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", + "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", "dev": true, "license": "MIT", "dependencies": { @@ -8196,14 +8466,15 @@ } }, "node_modules/vite-node": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz", - "integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz", + "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==", "dev": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", "pathe": "^1.1.2", "vite": "^5.0.0" }, @@ -8218,9 +8489,9 @@ } }, "node_modules/vite-plugin-node-polyfills": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.22.0.tgz", - "integrity": "sha512-F+G3LjiGbG8QpbH9bZ//GSBr9i1InSTkaulfUHFa9jkLqVGORFBoqc2A/Yu5Mmh1kNAbiAeKeK+6aaQUf3x0JA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.23.0.tgz", + "integrity": "sha512-4n+Ys+2bKHQohPBKigFlndwWQ5fFKwaGY6muNDMTb0fSQLyBzS+jjUNRZG9sKF0S/Go4ApG6LFnUGopjkILg3w==", "dev": true, "license": "MIT", "dependencies": { @@ -8231,35 +8502,35 @@ "url": "https://github.com/sponsors/davidmyersdev" }, "peerDependencies": { - "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/vitest": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz", - "integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz", + "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "2.1.4", - "@vitest/mocker": "2.1.4", - "@vitest/pretty-format": "^2.1.4", - "@vitest/runner": "2.1.4", - "@vitest/snapshot": "2.1.4", - "@vitest/spy": "2.1.4", - "@vitest/utils": "2.1.4", + "@vitest/expect": "2.1.9", + "@vitest/mocker": "2.1.9", + "@vitest/pretty-format": "^2.1.9", + "@vitest/runner": "2.1.9", + "@vitest/snapshot": "2.1.9", + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", "chai": "^5.1.2", "debug": "^4.3.7", "expect-type": "^1.1.0", "magic-string": "^0.30.12", "pathe": "^1.1.2", - "std-env": "^3.7.0", + "std-env": "^3.8.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.1", "tinypool": "^1.0.1", "tinyrainbow": "^1.2.0", "vite": "^5.0.0", - "vite-node": "2.1.4", + "vite-node": "2.1.9", "why-is-node-running": "^2.3.0" }, "bin": { @@ -8274,8 +8545,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.4", - "@vitest/ui": "2.1.4", + "@vitest/browser": "2.1.9", + "@vitest/ui": "2.1.9", "happy-dom": "*", "jsdom": "*" }, @@ -8307,16 +8578,16 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.12.tgz", - "integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-sfc": "3.5.12", - "@vue/runtime-dom": "3.5.12", - "@vue/server-renderer": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" }, "peerDependencies": { "typescript": "*" @@ -8328,12 +8599,38 @@ } }, "node_modules/vue-component-type-helpers": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.1.10.tgz", - "integrity": "sha512-lfgdSLQKrUmADiSV6PbBvYgQ33KF3Ztv6gP85MfGaGaSGMTXORVaHT1EHfsqCgzRNBstPKYDmvAV9Do5CmJ07A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.2.0.tgz", + "integrity": "sha512-cYrAnv2me7bPDcg9kIcGwjJiSB6Qyi08+jLDo9yuvoFQjzHiPTzML7RnkJB1+3P6KMsX/KbCD4QE3Tv/knEllw==", "dev": true, "license": "MIT" }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/vue-eslint-parser": { "version": "9.4.3", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", @@ -8408,9 +8705,9 @@ } }, "node_modules/vue-router": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.5.tgz", - "integrity": "sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", + "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.4" @@ -8479,9 +8776,9 @@ } }, "node_modules/whatwg-url": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", - "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.0.tgz", + "integrity": "sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==", "dev": true, "license": "MIT", "dependencies": { @@ -8509,15 +8806,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { diff --git a/packages/modules/display_themes/cards/source/package.json b/packages/modules/display_themes/cards/source/package.json index bb494b764f..503e83cdf5 100644 --- a/packages/modules/display_themes/cards/source/package.json +++ b/packages/modules/display_themes/cards/source/package.json @@ -4,7 +4,7 @@ "private": true, "type": "module", "scripts": { - "dev": "vite --host", + "dev": "vite --host --open", "build": "vite build --out-dir=../web/ --emptyOutDir", "preview": "vite preview --host", "test:unit": "vitest run --environment jsdom --root src/", @@ -12,35 +12,35 @@ "build-dev": "vite build --mode=development --out-dir=../web/ --emptyOutDir" }, "dependencies": { - "@fortawesome/fontawesome-svg-core": "^6.6.0", - "@fortawesome/free-regular-svg-icons": "^6.6.0", - "@fortawesome/free-solid-svg-icons": "^6.6.0", + "@fortawesome/fontawesome-svg-core": "^6.7.2", + "@fortawesome/free-regular-svg-icons": "^6.7.2", + "@fortawesome/free-solid-svg-icons": "^6.7.2", "@fortawesome/vue-fontawesome": "^3.0.8", "@inkline/inkline": "^3.2.2", "buffer": "^6.0.3", "events": "^3.3.0", - "mqtt": "^5.10.1", - "node-stdlib-browser": "^1.2.1", - "pinia": "^2.2.6", - "vue": "^3.5.12", - "vue-router": "^4.4.5" + "mqtt": "^5.10.3", + "node-stdlib-browser": "^1.3.1", + "pinia": "^2.3.1", + "vue": "^3.5.13", + "vue-router": "^4.5.0" }, "devDependencies": { "@rollup/plugin-terser": "^0.4.4", - "@rushstack/eslint-patch": "^1.10.4", - "@vitejs/plugin-vue": "^5.1.4", - "@vue/eslint-config-prettier": "^9.0.0", + "@rushstack/eslint-patch": "^1.10.5", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/eslint-config-prettier": "^10.2.0", "@vue/test-utils": "^2.4.6", - "eslint": "^9.14.0", - "eslint-plugin-vue": "^9.30.0", - "jsdom": "^25.0.1", - "postcss": "^8.4.47", - "postcss-preset-env": "^10.0.9", - "prettier": "^3.3.3", + "eslint": "^9.19.0", + "eslint-plugin-vue": "^9.32.0", + "jsdom": "^26.0.0", + "postcss": "^8.5.1", + "postcss-preset-env": "^10.1.3", + "prettier": "^3.4.2", "rollup-plugin-polyfill-node": "^0.13.0", - "sass": "^1.80.6", - "vite": "^5.4.10", - "vite-plugin-node-polyfills": "^0.22.0", - "vitest": "^2.1.4" + "sass": "^1.84.0", + "vite": "^5.4.14", + "vite-plugin-node-polyfills": "^0.23.0", + "vitest": "^2.1.9" } } diff --git a/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-D7ai0q3I.js b/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-D7ai0q3I.js deleted file mode 100644 index c00b7c1975..0000000000 --- a/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-D7ai0q3I.js +++ /dev/null @@ -1 +0,0 @@ -import{O as x,o as h,e as c,i as f,F as P,A as w,y as m,j as S,q as d,l as C,n as v,s as b,x as g}from"./vendor-CFVb6_YQ.js";import{_ as y}from"./vendor-inkline-CqnuQ_Go.js";import{u as k}from"./index-BCcTh2Tv.js";import{l as D,z as I,A as q,B as $,F as z}from"./vendor-fortawesome-DhL64LM6.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=()=>{x(t=>({"3f7db06a":t.color,"1de516bf":t.colorNegative}))},p=l.setup;l.setup=p?(t,s)=>(u(),p(t,s)):u;const N=["viewBox"],M=["d"],_=["x","y","width","height"],A=["y1","x2","y2"],O=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,M)):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,_))),128)),S("line",{class:"zero-line",x1:0,y1:a.zeroHeight,x2:e.width,y2:a.zeroHeight},null,8,A)],8,N)}],["__scopeId","data-v-22cdf82b"]]);D.add(I,q,$);const E={name:"ChargePointStateBadge",components:{FontAwesomeIcon:z},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"},R=y(E,[["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{R as C,O as S}; diff --git a/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-bP9BlN1o.js b/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-bP9BlN1o.js new file mode 100644 index 0000000000..80c89ae38b --- /dev/null +++ b/packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-bP9BlN1o.js @@ -0,0 +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-BMrK3KHF.js";import{_ as y}from"./vendor-inkline-C_NPDnDu.js";import{u as k}from"./index-nI_NVV5B.js";import{F as D,l as I,z as q,A as z,B as $}from"./vendor-fortawesome-CpQlJZ13.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"],M=["d"],_=["x","y","width","height"],A=["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,M)):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,_))),128)),x("line",{class:"zero-line",x1:0,y1:a.zeroHeight,x2:e.width,y2:a.zeroHeight},null,8,A)],8,N)}],["__scopeId","data-v-22cdf82b"]]);I.add(q,z,$);const E={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(E,[["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-go1OQl3F.js b/packages/modules/display_themes/cards/web/assets/ChargePointsView-DAOuhP6h.js similarity index 97% rename from packages/modules/display_themes/cards/web/assets/ChargePointsView-go1OQl3F.js rename to packages/modules/display_themes/cards/web/assets/ChargePointsView-DAOuhP6h.js index 54f6081e75..b7adceab39 100644 --- a/packages/modules/display_themes/cards/web/assets/ChargePointsView-go1OQl3F.js +++ b/packages/modules/display_themes/cards/web/assets/ChargePointsView-DAOuhP6h.js @@ -1 +1 @@ -import{u as B,C as ae,N as ie}from"./index-BCcTh2Tv.js";import{D as F}from"./DashBoardCard-BqIRnhnk.js";import{S as le,C as z}from"./ChargePointPlugBadge-D7ai0q3I.js";import{l as $,b as ne,c as oe,F as A,j as re,k as W,m as E,e as U,n as D,o as Z,p as R,q as j,r as K,s as O,t as J,u as G,v as ce,w as de,x as he,y as ge}from"./vendor-fortawesome-DhL64LM6.js";import{_ as x}from"./vendor-inkline-CqnuQ_Go.js";import{q as h,o as d,l as u,n as i,s as a,y as q,e as S,k as r,F as M,x as s,i as m,A as L,I as se,j as ue,p as me}from"./vendor-CFVb6_YQ.js";$.add(ne,oe);const H=x({name:"ChargePointLockButton",components:{FontAwesomeIcon:A},props:{chargePointId:{required:!0,type:Number},changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:B()}),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(l,e,n,p,t,c){const P=h("font-awesome-icon"),V=h("i-button");return d(),u(V,{size:"lg",disabled:n.changesLocked,outline:n.changesLocked},{default:i(()=>[a(P,{"fixed-width":"",icon:c.stateIcon,class:q(c.stateClass),onClick:e[0]||(e[0]=C=>c.toggleChargePointManualLock())},null,8,["icon","class"])]),_:1},8,["disabled","outline"])}]]);$.add(re);const Q=x({name:"ChargePointCodeButton",components:{FontAwesomeIcon:A,CodeInputModal:ae},props:{chargePointId:{type:Number,required:!0}},data:()=>({mqttStore:B(),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(l){this.$root.sendTopicToBroker(`openWB/chargepoint/${this.chargePointId}/get/rfid`,l),this.modalIdTagEntryVisible=!1}}},[["render",function(l,e,n,p,t,c){const P=h("FontAwesomeIcon"),V=h("i-button"),C=h("CodeInputModal");return d(),S(M,null,[a(V,{class:"_margin-right:1",size:"lg",color:c.tagButtonColor,disabled:c.tagState==2,onClick:e[0]||(e[0]=g=>c.toggleIdTagModal())},{default:i(()=>[a(P,{"fixed-width":"",icon:["fas","fa-calculator"],class:q(c.tagClass)},null,8,["class"])]),_:1},8,["color","disabled"]),a(C,{ref:"lockInput",modelValue:t.modalIdTagEntryVisible,"onUpdate:modelValue":e[1]||(e[1]=g=>t.modalIdTagEntryVisible=g),"min-length":4,"max-length":20,"onUpdate:inputValue":c.sendIdTag},{header:i(()=>e[2]||(e[2]=[r(" Bitte einen ID-Tag eingeben. ")])),_:1},8,["modelValue","onUpdate:inputValue"])],64)}]]);$.add(W,E,U,D,Z,R,j,K,O,J,G);const Ce={name:"ChargePointCard",components:{DashBoardCard:F,SparkLine:le,ChargePointPlugBadge:z,ChargePointLockButton:H,ChargePointCodeButton:Q,FontAwesomeIcon:A},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:B()}),methods:{handleVehicleClick(l){this.$emit("vehicle-click",l)},handleSocClick(l){this.$emit("soc-click",l)},handleChargeModeClick(l){this.$emit("charge-mode-click",l)},toggleChargePointSettings(l){this.$emit("toggle-charge-point-settings",l)}}},Pe={key:0},pe=x(Ce,[["render",function(l,e,n,p,t,c){const P=h("charge-point-plug-badge"),V=h("charge-point-code-button"),C=h("charge-point-lock-button"),g=h("i-column"),I=h("i-row"),k=h("spark-line"),_=h("font-awesome-icon"),f=h("i-badge"),y=h("i-button"),b=h("i-container"),v=h("dash-board-card");return d(),u(v,{color:"primary"},{headerLeft:i(()=>[r(s(t.mqttStore.getChargePointName(n.chargePointId)),1)]),headerRight:i(()=>[a(P,{"charge-point-id":[n.chargePointId]},null,8,["charge-point-id"])]),default:i(()=>[a(b,null,{default:i(()=>[a(I,null,{default:i(()=>[a(g,null,{default:i(()=>[a(I,null,{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[t.mqttStore.getRfidEnabled?(d(),u(V,{key:0,"charge-point-id":n.chargePointId},null,8,["charge-point-id"])):m("",!0),a(C,{"charge-point-id":n.chargePointId,"changes-locked":n.changesLocked},null,8,["charge-point-id","changes-locked"])]),_:1}),a(g,{class:"_text-align:right _padding-left:0"},{default:i(()=>[r(s(t.mqttStore.getChargePointPower(n.chargePointId))+" "+s(t.mqttStore.getChargePointPhasesInUse(n.chargePointId))+" "+s(t.mqttStore.getChargePointSetCurrent(n.chargePointId)),1)]),_:1})]),_:1}),a(I,{class:"_padding-top:1"},{default:i(()=>[a(g,{class:"_padding-left:0"},{default:i(()=>[a(k,{color:"var(--color--primary)",data:t.mqttStore.getChargePointPowerChartData(n.chargePointId)},null,8,["data"])]),_:1})]),_:1})]),_:1}),a(g,{md:"6"},{default:i(()=>[a(I,{class:"_display:flex"},{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0 _flex-grow:1"},{default:i(()=>[a(f,{size:"lg",class:q(["_width:100%",n.changesLocked?"":"clickable"]),onClick:e[0]||(e[0]=w=>c.handleVehicleClick(n.chargePointId))},{default:i(()=>[a(_,{"fixed-width":"",icon:["fas","fa-car"]}),r(" "+s(t.mqttStore.getChargePointConnectedVehicleName(n.chargePointId)),1)]),_:1},8,["class"])]),_:1}),t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))||t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))!=0?(d(),u(g,{key:0,class:"_flex-grow:0 _padding-right:0 _padding-left:1"},{default:i(()=>[a(y,{size:"sm",disabled:n.changesLocked,class:q(n.changesLocked?"":"clickable"),onClick:e[1]||(e[1]=w=>c.handleSocClick(n.chargePointId))},{default:i(()=>[t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))?(d(),S("span",Pe,[a(_,{"fixed-width":"",icon:t.mqttStore.getVehicleSocIsManual(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))?["fas","fa-edit"]:["fas","fa-car-battery"]},null,8,["icon"]),r(" "+s(t.mqttStore.getChargePointConnectedVehicleSoc(n.chargePointId).soc)+"% ",1)])):m("",!0),t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))!=0?(d(),u(_,{key:1,"fixed-width":"",icon:t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>1?["fas","times-circle"]:["fas","exclamation-triangle"]:[],class:q(t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>1?"_color:danger":"_color:warning":"")},null,8,["icon","class"])):m("",!0)]),_:1},8,["disabled","class"])]),_:1})):m("",!0)]),_:1}),a(I,{class:"_padding-top:1 _display:flex"},{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0 _flex-grow:1"},{default:i(()=>[a(f,{size:"lg",class:q(["_width:100%",n.changesLocked?"":"clickable"]),color:t.mqttStore.getChargePointConnectedVehicleChargeMode(n.chargePointId).class,onClick:e[2]||(e[2]=w=>c.handleChargeModeClick(n.chargePointId))},{default:i(()=>[r(s(t.mqttStore.getChargePointConnectedVehicleChargeMode(n.chargePointId).label)+" ",1),a(_,{"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehiclePriority(n.chargePointId)?["fas","fa-star"]:["far","fa-star"],class:q(t.mqttStore.getChargePointConnectedVehiclePriority(n.chargePointId)?"_color:warning":"")},null,8,["icon","class"])]),_:1},8,["class","color"])]),_:1}),t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(n.chargePointId)?(d(),u(g,{key:0,class:"_flex-grow:0 _padding-right:0 _padding-left:1"},{default:i(()=>[a(f,{size:"lg"},{default:i(()=>[t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(n.chargePointId)?(d(),u(_,{key:0,"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehicleTimeChargingRunning(n.chargePointId)?["fas","fa-clock"]:["far","fa-clock"],class:q(t.mqttStore.getChargePointConnectedVehicleTimeChargingRunning(n.chargePointId)?"_color:success":"")},null,8,["icon","class"])):m("",!0)]),_:1})]),_:1})):m("",!0)]),_:1}),n.changesLocked?m("",!0):(d(),u(I,{key:0,class:"_padding-top:1"},{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[a(y,{block:"",onClick:e[3]||(e[3]=w=>c.toggleChargePointSettings(n.chargePointId))},{default:i(()=>[a(_,{"fixed-width":"",icon:["fas","fa-wrench"]})]),_:1})]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-3c6489c4"]]);$.add(W,E,U,D,Z,R,j,K,O,J,G);const fe={name:"ChargePointCard",components:{DashBoardCard:F,ChargePointPlugBadge:z,ChargePointLockButton:H,ChargePointCodeButton:Q,FontAwesomeIcon:A},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:B(),simpleChargeModes:["instant_charging","pv_charging","stop"]}),computed:{filteredChargeModes(){return this.mqttStore.getSimpleChargePointView?this.mqttStore.chargeModeList().filter(l=>this.simpleChargeModes.includes(l.id)):this.mqttStore.chargeModeList()}},methods:{handleVehicleClick(l){this.$emit("vehicle-click",l)},handleSocClick(l){this.$emit("soc-click",l)},handleChargeModeClick(l){this.$emit("charge-mode-click",l)},toggleChargePointSettings(l){this.$emit("toggle-charge-point-settings",l)},setChargePointConnectedVehicleChargeMode(l,e){this.$emit("set-charge-point-connected-vehicle-charge-mode",l,e)}}},Se={key:0},Ve=x(fe,[["render",function(l,e,n,p,t,c){const P=h("charge-point-plug-badge"),V=h("charge-point-code-button"),C=h("charge-point-lock-button"),g=h("i-column"),I=h("i-row"),k=h("font-awesome-icon"),_=h("i-button"),f=h("i-button-group"),y=h("i-container"),b=h("dash-board-card");return d(),u(b,{color:"primary"},{headerLeft:i(()=>[r(s(t.mqttStore.getChargePointName(n.chargePointId)),1)]),headerRight:i(()=>[a(P,{"charge-point-id":[n.chargePointId]},null,8,["charge-point-id"])]),default:i(()=>[a(y,null,{default:i(()=>[a(I,null,{default:i(()=>[a(g,null,{default:i(()=>[a(I,null,{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[t.mqttStore.getRfidEnabled?(d(),u(V,{key:0,"charge-point-id":n.chargePointId},null,8,["charge-point-id"])):m("",!0),a(C,{"charge-point-id":n.chargePointId,"changes-locked":n.changesLocked},null,8,["charge-point-id","changes-locked"])]),_:1}),a(g,{class:"_text-align:right _padding-left:0"},{default:i(()=>[r(s(t.mqttStore.getChargePointPower(n.chargePointId))+" "+s(t.mqttStore.getChargePointPhasesInUse(n.chargePointId))+" "+s(t.mqttStore.getChargePointSetCurrent(n.chargePointId)),1)]),_:1})]),_:1}),a(I,{class:"_padding-top:1"},{default:i(()=>[a(g,{class:"_padding-left:0 button-group-wrapper"},{default:i(()=>[a(f,{class:"button-group main-button-group"},{default:i(()=>[a(_,{class:q(["large-button _flex-grow:1",n.changesLocked?"":"clickable"]),disabled:n.changesLocked,onClick:e[0]||(e[0]=v=>c.handleVehicleClick(n.chargePointId))},{default:i(()=>[a(k,{"fixed-width":"",icon:["fas","fa-car"]}),r(" "+s(t.mqttStore.getChargePointConnectedVehicleName(n.chargePointId))+" ",1),a(k,{class:q(["_padding-left:1",t.mqttStore.getChargePointConnectedVehiclePriority(n.chargePointId)?"_color:warning":""]),"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehiclePriority(n.chargePointId)?["fas","fa-star"]:["far","fa-star"]},null,8,["icon","class"])]),_:1},8,["class","disabled"]),t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))||t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))!=0?(d(),u(_,{key:0,class:q(["large-button _flex-grow:0",n.changesLocked?"":"clickable"]),disabled:n.changesLocked,onClick:e[1]||(e[1]=v=>c.handleSocClick(n.chargePointId))},{default:i(()=>[t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))?(d(),S("span",Se,[a(k,{"fixed-width":"",icon:t.mqttStore.getVehicleSocIsManual(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))?["fas","fa-edit"]:["fas","fa-car-battery"]},null,8,["icon"]),r(" "+s(t.mqttStore.getChargePointConnectedVehicleSoc(n.chargePointId).soc)+"% ",1)])):m("",!0),t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))!=0?(d(),u(k,{key:1,"fixed-width":"",icon:t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>1?["fas","times-circle"]:["fas","exclamation-triangle"]:[],class:q(t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>1?"_color:danger":"_color:warning":"")},null,8,["icon","class"])):m("",!0)]),_:1},8,["disabled","class"])):m("",!0),a(_,{class:q(["large-button _flex-grow:0",n.changesLocked?"":"clickable"]),disabled:n.changesLocked,onClick:e[2]||(e[2]=v=>c.toggleChargePointSettings(n.chargePointId))},{default:i(()=>[a(k,{"fixed-width":"",icon:["fas","fa-wrench"]})]),_:1},8,["class","disabled"])]),_:1}),a(f,{class:"button-group _margin-top:1",disabled:n.changesLocked},{default:i(()=>[(d(!0),S(M,null,L(c.filteredChargeModes,v=>(d(),u(_,{key:v.id,outline:"",class:q(["large-button _flex-grow:1",n.changesLocked?"":"clickable"]),color:v.class!="dark"?v.class:"light",active:t.mqttStore.getChargePointConnectedVehicleChargeMode(n.chargePointId)!=null&&v.id==t.mqttStore.getChargePointConnectedVehicleChargeMode(n.chargePointId).mode,onClick:w=>c.setChargePointConnectedVehicleChargeMode(n.chargePointId,v.id)},{default:i(()=>[r(s(v.label),1)]),_:2},1032,["class","color","active","onClick"]))),128))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-5e676b1f"]]),X=x({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 l;return this.labels&&this.inputValue!=null?this.inputValuec.label=C),plaintext:"",class:"_text-align:right",size:"lg"},{prepend:i(()=>[a(P,{onClick:c.decrement},{default:i(()=>e[1]||(e[1]=[r(" - ")])),_:1},8,["onClick"])]),suffix:i(()=>[r(s(n.unit),1)]),append:i(()=>[a(P,{onClick:c.increment},{default:i(()=>e[2]||(e[2]=[r(" + ")])),_:1},8,["onClick"])]),_:1},8,["modelValue"])}]]),Ie=x({name:"ManualSocInput",components:{ExtendedNumberInput:X,NumberPad:ie},props:{modelValue:{required:!0,type:Boolean,default:!1},vehicleId:{required:!0,type:Number,default:0}},emits:["update:modelValue"],data:()=>({mqttStore:B(),newSoc:0}),methods:{enter(l){let e=10*this.newSoc+parseInt(l);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(l,e,n,p,t,c){const P=h("extended-number-input"),V=h("i-column"),C=h("i-row"),g=h("NumberPad"),I=h("i-container"),k=h("i-button"),_=h("i-modal");return d(),u(se,{to:"body"},[a(_,{"model-value":n.modelValue,size:"sm","onUpdate:modelValue":e[6]||(e[6]=f=>l.$emit("update:modelValue",f))},{header:i(()=>[r(' SoC für Fahrzeug "'+s(t.mqttStore.getVehicleName(n.vehicleId))+'" ',1)]),footer:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(V,null,{default:i(()=>[a(k,{color:"danger",onClick:e[4]||(e[4]=f=>c.close())},{default:i(()=>e[7]||(e[7]=[r(" Zurück ")])),_:1})]),_:1}),a(V,{class:"_text-align:right"},{default:i(()=>[a(k,{color:"success",onClick:e[5]||(e[5]=f=>c.updateManualSoc())},{default:i(()=>e[8]||(e[8]=[r(" OK ")])),_:1})]),_:1})]),_:1})]),_:1})]),default:i(()=>[a(I,null,{default:i(()=>[a(C,{center:"",class:"_padding-bottom:1"},{default:i(()=>[a(V,null,{default:i(()=>[a(P,{modelValue:t.newSoc,"onUpdate:modelValue":e[0]||(e[0]=f=>t.newSoc=f),unit:"%",min:0,max:100,step:1,size:"lg",class:"_text-align:center"},null,8,["modelValue"])]),_:1})]),_:1}),a(g,{"onKey:digit":e[1]||(e[1]=f=>c.enter(f)),"onKey:clear":e[2]||(e[2]=f=>c.clear()),"onKey:delete":e[3]||(e[3]=f=>c.removeDigit())})]),_:1})]),_:1},8,["model-value"])])}]]);$.add(ce,de,he,ge);const _e={name:"ChargePointsView",components:{ChargePointCard:pe,SimpleChargePointCard:Ve,ExtendedNumberInput:X,ManualSocInput:Ie,FontAwesomeIcon:A},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:B(),modalChargeModeSettingVisible:!1,modalVehicleSelectVisible:!1,modalChargePointSettingsVisible:!1,modalChargePointId:0,modalVehicleId:0,modalActiveTab:"tab-general",modalManualSocInputVisible:!1,simpleChargeModes:["instant_charging","pv_charging","stop"]}),computed:{vehicleList(){let l=this.mqttStore.getVehicleList;var e=[];return Object.keys(l).forEach(n=>{let p=parseInt(n.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""));e.push({id:p,name:l[n]})}),e},filteredChargeModes(){return this.mqttStore.getSimpleChargePointView?this.mqttStore.chargeModeList().filter(l=>this.simpleChargeModes.includes(l.id)):this.mqttStore.chargeModeList()}},watch:{changesLocked(l,e){e!==!0&&l===!0&&(this.modalChargeModeSettingVisible=!1,this.modalVehicleSelectVisible=!1,this.modalChargePointSettingsVisible=!1,this.modalManualSocInputVisible=!1)}},methods:{toggleChargePointSettings(l){switch(this.mqttStore.getChargePointConnectedVehicleChargeMode(l).mode){case"pv_charging":this.modalActiveTab="tab-pv-charging";break;case"scheduled_charging":this.modalActiveTab="tab-scheduled-charging";break;default:this.modalActiveTab="tab-instant-charging"}this.modalChargePointId=l,this.modalChargePointSettingsVisible=!0},handleChargeModeClick(l){this.changesLocked||(this.modalChargePointId=l,this.modalChargeModeSettingVisible=!0)},handleVehicleClick(l){this.changesLocked||(this.modalChargePointId=l,this.modalVehicleSelectVisible=!0)},handleSocClick(l){let e=this.mqttStore.getChargePointConnectedVehicleId(l);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)},setChargePointConnectedVehicle(l,e){e.id!=this.mqttStore.getChargePointConnectedVehicleId(l)&&this.$root.sendTopicToBroker(`openWB/chargepoint/${l}/config/ev`,e.id),this.modalVehicleSelectVisible&&(this.modalVehicleSelectVisible=!1)},setChargePointConnectedVehicleChargeMode(l,e){if(e.id!=this.mqttStore.getChargePointConnectedVehicleChargeMode(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/selected`,e)}},setChargePointConnectedVehiclePriority(l,e){if(e!=this.mqttStore.getChargePointConnectedVehiclePriority(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/prio`,e)}},setChargePointConnectedVehicleTimeChargingActive(l,e){if(e!=this.mqttStore.getChargePointConnectedVehicleTimeChargingActive(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/time_charging/active`,e)}},setChargePointConnectedVehicleInstantChargingCurrent(l,e){if(e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingCurrent(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/instant_charging/current`,parseFloat(e))}},setChargePointConnectedVehicleInstantChargingLimit(l,e){if(e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(l).selected){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/instant_charging/limit/selected`,e)}},setChargePointConnectedVehicleInstantChargingLimitSoc(l,e){if(e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(l).soc){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/instant_charging/limit/soc`,parseInt(e))}},setChargePointConnectedVehicleInstantChargingLimitAmount(l,e){if(e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(l).amount){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/instant_charging/limit/amount`,e)}},setChargePointConnectedVehiclePvChargingFeedInLimit(l,e){if(e!=this.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/pv_charging/feed_in_limit`,e)}},setChargePointConnectedVehiclePvChargingMinCurrent(l,e){let n=this.mqttStore.getChargePointConnectedVehiclePvChargingMinCurrent(l),p=parseInt(e);if(p!=n&&!isNaN(p)){var t=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${t}/chargemode/pv_charging/min_current`,p)}},setChargePointConnectedVehiclePvChargingMinSoc(l,e){let n=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSoc(l),p=parseInt(e);if(p!=n&&!isNaN(p)){var t=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${t}/chargemode/pv_charging/min_soc`,p)}},setChargePointConnectedVehiclePvChargingMinSocCurrent(l,e){let n=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSocCurrent(l),p=parseInt(e);if(p!=n&&!isNaN(p)){var t=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${t}/chargemode/pv_charging/min_soc_current`,p)}},setChargePointConnectedVehiclePvChargingMaxSoc(l,e){let n=this.mqttStore.getChargePointConnectedVehiclePvChargingMaxSoc(l),p=parseInt(e);if(p!=n&&!isNaN(p)){var t=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${t}/chargemode/pv_charging/max_soc`,p)}},setChargePointConnectedVehicleScheduledChargingPlanActive(l,e){this.$root.sendTopicToBroker(`${l}/active`,e)},setChargePointConnectedVehicleTimeChargingPlanActive(l,e){this.$root.sendTopicToBroker(`${l}/active`,e)}}},be={class:"charge-points-card-wrapper"},ke={key:0},ve={key:1},qe={key:2},ye={key:3},we={key:4},Me={key:0},Te={key:1},xe={key:0},Le={key:1},Be={key:2},$e={key:3},Ae={key:4},De=x(_e,[["render",function(l,e,n,p,t,c){const P=h("i-button"),V=h("i-button-group"),C=h("i-form-group"),g=h("i-form-label"),I=h("i-form"),k=h("i-modal"),_=h("i-tab-title"),f=h("extended-number-input"),y=h("i-tab"),b=h("font-awesome-icon"),v=h("i-alert"),w=h("i-row"),N=h("i-container"),Y=h("i-tabs"),ee=h("manual-soc-input");return d(),S(M,null,[ue("div",be,[(d(!0),S(M,null,L(t.mqttStore.getChargePointIds,o=>(d(),u(me(t.mqttStore.getSimpleChargePointView?"SimpleChargePointCard":"ChargePointCard"),{key:o,"charge-point-id":o,"changes-locked":n.changesLocked,onVehicleClick:c.handleVehicleClick,onSocClick:c.handleSocClick,onChargeModeClick:c.handleChargeModeClick,onToggleChargePointSettings:c.toggleChargePointSettings,onSetChargePointConnectedVehicleChargeMode:c.setChargePointConnectedVehicleChargeMode},null,40,["charge-point-id","changes-locked","onVehicleClick","onSocClick","onChargeModeClick","onToggleChargePointSettings","onSetChargePointConnectedVehicleChargeMode"]))),128))]),a(k,{modelValue:t.modalChargeModeSettingVisible,"onUpdate:modelValue":e[2]||(e[2]=o=>t.modalChargeModeSettingVisible=o),size:"lg"},{header:i(()=>[r(' Lademodus für "'+s(t.mqttStore.getChargePointConnectedVehicleName(t.modalChargePointId))+'" auswählen ',1)]),default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(V,{block:"",vertical:""},{default:i(()=>[(d(!0),S(M,null,L(c.filteredChargeModes,o=>(d(),u(P,{key:o.id,size:"lg",class:"large-button",outline:"",color:o.class!="dark"?o.class:"light",active:t.mqttStore.getChargePointConnectedVehicleChargeMode(t.modalChargePointId)!=null&&o.id==t.mqttStore.getChargePointConnectedVehicleChargeMode(t.modalChargePointId).mode,onClick:T=>c.setChargePointConnectedVehicleChargeMode(t.modalChargePointId,o.id)},{default:i(()=>[r(s(o.label),1)]),_:2},1032,["color","active","onClick"]))),128))]),_:1})]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[21]||(e[21]=[r("Priorität")])),_:1}),a(V,{block:""},{default:i(()=>[a(P,{size:"lg",class:"large-button",color:t.mqttStore.getChargePointConnectedVehiclePriority(t.modalChargePointId)!==!0?"danger":"",onClick:e[0]||(e[0]=o=>c.setChargePointConnectedVehiclePriority(t.modalChargePointId,!1))},{default:i(()=>e[22]||(e[22]=[r(" Nein ")])),_:1},8,["color"]),a(P,{color:t.mqttStore.getChargePointConnectedVehiclePriority(t.modalChargePointId)===!0?"success":"",onClick:e[1]||(e[1]=o=>c.setChargePointConnectedVehiclePriority(t.modalChargePointId,!0))},{default:i(()=>e[23]||(e[23]=[r(" Ja ")])),_:1},8,["color"])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),a(k,{modelValue:t.modalVehicleSelectVisible,"onUpdate:modelValue":e[3]||(e[3]=o=>t.modalVehicleSelectVisible=o),class:"modal-vehicle-select",size:"lg"},{header:i(()=>[r(' Fahrzeug an "'+s(t.mqttStore.getChargePointName(t.modalChargePointId))+'" auswählen ',1)]),default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(V,{vertical:"",block:""},{default:i(()=>[(d(!0),S(M,null,L(c.vehicleList,o=>(d(),u(P,{key:o.id,size:"lg",class:"large-button",active:t.mqttStore.getChargePointConnectedVehicleId(t.modalChargePointId)==o.id,color:t.mqttStore.getChargePointConnectedVehicleId(t.modalChargePointId)==o.id?"primary":"",onClick:T=>c.setChargePointConnectedVehicle(t.modalChargePointId,o)},{default:i(()=>[r(s(o.name),1)]),_:2},1032,["active","color","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),a(k,{modelValue:t.modalChargePointSettingsVisible,"onUpdate:modelValue":e[19]||(e[19]=o=>t.modalChargePointSettingsVisible=o),size:"lg"},{header:i(()=>[r(' Einstellungen für Fahrzeug "'+s(t.mqttStore.getChargePointConnectedVehicleName(t.modalChargePointId))+'" ',1)]),default:i(()=>[a(Y,{modelValue:t.modalActiveTab,"onUpdate:modelValue":e[18]||(e[18]=o=>t.modalActiveTab=o),stretch:""},{header:i(()=>[a(_,{for:"tab-instant-charging"},{default:i(()=>e[24]||(e[24]=[r(" Sofort ")])),_:1}),a(_,{for:"tab-pv-charging"},{default:i(()=>e[25]||(e[25]=[r(" PV ")])),_:1}),t.mqttStore.getSimpleChargePointView?m("",!0):(d(),u(_,{key:0,for:"tab-scheduled-charging"},{default:i(()=>e[26]||(e[26]=[r(" Zielladen ")])),_:1})),t.mqttStore.getSimpleChargePointView?m("",!0):(d(),u(_,{key:1,for:"tab-time-charging"},{default:i(()=>e[27]||(e[27]=[r(" Zeitladen ")])),_:1}))]),default:i(()=>[a(y,{name:"tab-instant-charging"},{default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[28]||(e[28]=[r("Stromstärke")])),_:1}),a(f,{unit:"A",min:6,max:32,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingCurrent(t.modalChargePointId),"onUpdate:modelValue":e[4]||(e[4]=o=>c.setChargePointConnectedVehicleInstantChargingCurrent(t.modalChargePointId,o))},null,8,["model-value"])]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[29]||(e[29]=[r("Begrenzung")])),_:1}),a(V,{block:""},{default:i(()=>[a(P,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="none"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="none",onClick:e[5]||(e[5]=o=>c.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"none"))},{default:i(()=>e[30]||(e[30]=[r(" Keine ")])),_:1},8,["color","active"]),a(P,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc",onClick:e[6]||(e[6]=o=>c.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"soc"))},{default:i(()=>e[31]||(e[31]=[r(" EV-SoC ")])),_:1},8,["color","active"]),a(P,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount",onClick:e[7]||(e[7]=o=>c.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"amount"))},{default:i(()=>e[32]||(e[32]=[r(" Energie ")])),_:1},8,["color","active"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc"?(d(),u(C,{key:0},{default:i(()=>[a(g,null,{default:i(()=>e[33]||(e[33]=[r("Max. SoC")])),_:1}),a(f,{unit:"%",min:5,max:100,step:5,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).soc,"onUpdate:modelValue":e[8]||(e[8]=o=>c.setChargePointConnectedVehicleInstantChargingLimitSoc(t.modalChargePointId,o))},null,8,["model-value"])]),_:1})):m("",!0),t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount"?(d(),u(C,{key:1},{default:i(()=>[a(g,null,{default:i(()=>e[34]||(e[34]=[r("Max. Energie")])),_:1}),a(f,{unit:"kWh",min:1,max:100,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=o=>c.setChargePointConnectedVehicleInstantChargingLimitAmount(t.modalChargePointId,1e3*o))},null,8,["model-value"])]),_:1})):m("",!0)]),_:1})]),_:1}),a(y,{name:"tab-pv-charging"},{default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[35]||(e[35]=[r("Einspeisegrenze beachten")])),_:1}),a(V,{block:""},{default:i(()=>[a(P,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId)!==!0?"danger":"",onClick:e[10]||(e[10]=o=>c.setChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId,!1))},{default:i(()=>e[36]||(e[36]=[r(" Nein ")])),_:1},8,["color"]),a(P,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId)===!0?"success":"",onClick:e[11]||(e[11]=o=>c.setChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId,!0))},{default:i(()=>e[37]||(e[37]=[r(" Ja ")])),_:1},8,["color"])]),_:1})]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[38]||(e[38]=[r("Minimaler Dauerstrom")])),_:1}),a(f,{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[12]||(e[12]=o=>c.setChargePointConnectedVehiclePvChargingMinCurrent(t.modalChargePointId,o))},null,8,["model-value"])]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[39]||(e[39]=[r("Mindest-SoC")])),_:1}),a(f,{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[13]||(e[13]=o=>c.setChargePointConnectedVehiclePvChargingMinSoc(t.modalChargePointId,o))},null,8,["model-value"])]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[40]||(e[40]=[r("Mindest-SoC Strom")])),_:1}),a(f,{min:6,max:32,unit:"A","model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocCurrent(t.modalChargePointId),"onUpdate:modelValue":e[14]||(e[14]=o=>c.setChargePointConnectedVehiclePvChargingMinSocCurrent(t.modalChargePointId,o))},null,8,["model-value"])]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[41]||(e[41]=[r("SoC-Limit")])),_:1}),a(f,{unit:"%",labels:[{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},{label:100,value:100},{label:"Aus",value:101}],"model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingMaxSoc(t.modalChargePointId),"onUpdate:modelValue":e[15]||(e[15]=o=>c.setChargePointConnectedVehiclePvChargingMaxSoc(t.modalChargePointId,o))},null,8,["model-value"])]),_:1})]),_:1})]),_:1}),t.mqttStore.getSimpleChargePointView?m("",!0):(d(),u(y,{key:0,name:"tab-scheduled-charging"},{default:i(()=>[Object.keys(t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId)).length===0?(d(),u(v,{key:0},{icon:i(()=>[a(b,{"fixed-width":"",icon:["fas","fa-info-circle"]})]),default:i(()=>[e[42]||(e[42]=r(" Es wurden noch keine Zeitpläne für das Zielladen eingerichtet. "))]),_:1})):(d(),u(I,{key:1},{default:i(()=>[(d(!0),S(M,null,L(t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId),(o,T)=>(d(),u(C,{key:T},{default:i(()=>[a(N,null,{default:i(()=>[a(w,null,{default:i(()=>[a(g,null,{default:i(()=>[r(s(o.name),1)]),_:2},1024)]),_:2},1024),a(w,null,{default:i(()=>[a(P,{size:"lg",block:"",color:o.active?"success":"danger",onClick:te=>c.setChargePointConnectedVehicleScheduledChargingPlanActive(T,!o.active)},{default:i(()=>[o.frequency.selected=="once"?(d(),S("span",ke,[a(b,{"fixed-width":"",icon:["fas","calendar-day"]}),r(" "+s(t.mqttStore.formatDate(o.frequency.once)),1)])):m("",!0),o.frequency.selected=="daily"?(d(),S("span",ve,[a(b,{"fixed-width":"",icon:["fas","calendar-week"]}),e[43]||(e[43]=r(" täglich "))])):m("",!0),o.frequency.selected=="weekly"?(d(),S("span",qe,[a(b,{"fixed-width":"",icon:["fas","calendar-alt"]}),r(" "+s(t.mqttStore.formatWeeklyScheduleDays(o.frequency.weekly)),1)])):m("",!0),a(b,{"fixed-width":"",icon:["fas","clock"]}),r(" "+s(o.time)+" ",1),o.limit.selected=="soc"?(d(),S("span",ye,[a(b,{"fixed-width":"",icon:["fas","car-battery"]}),r(" "+s(o.limit.soc_scheduled)+" % ",1)])):m("",!0),o.limit.selected=="amount"?(d(),S("span",we,[a(b,{"fixed-width":"",icon:["fas","bolt"]}),r(" "+s(o.limit.amount/1e3)+" kWh ",1)])):m("",!0)]),_:2},1032,["color","onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}))]),_:1})),t.mqttStore.getSimpleChargePointView?m("",!0):(d(),u(y,{key:1,name:"tab-time-charging"},{default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[44]||(e[44]=[r("Zeitladen aktivieren")])),_:1}),a(V,{block:""},{default:i(()=>[a(P,{color:t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId)!==!0?"danger":"",onClick:e[16]||(e[16]=o=>c.setChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId,!1))},{default:i(()=>e[45]||(e[45]=[r(" Nein ")])),_:1},8,["color"]),a(P,{color:t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId)===!0?"success":"",onClick:e[17]||(e[17]=o=>c.setChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId,!0))},{default:i(()=>e[46]||(e[46]=[r(" Ja ")])),_:1},8,["color"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId)===!0?(d(),S("div",Me,[Object.keys(t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId)).length===0?(d(),u(v,{key:0,color:"warning",class:"_margin-top:2"},{icon:i(()=>[a(b,{"fixed-width":"",icon:["fas","fa-circle-info"]})]),default:i(()=>[e[47]||(e[47]=r(" Es wurden noch keine Zeitpläne für das Zeitladen eingerichtet. "))]),_:1})):(d(),S("div",Te,[(d(!0),S(M,null,L(t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId),(o,T)=>(d(),u(C,{key:T},{default:i(()=>[a(N,null,{default:i(()=>[a(w,null,{default:i(()=>[a(g,null,{default:i(()=>[r(s(o.name),1)]),_:2},1024)]),_:2},1024),a(w,null,{default:i(()=>[a(P,{size:"lg",block:"",color:o.active?"success":"danger",onClick:te=>c.setChargePointConnectedVehicleTimeChargingPlanActive(T,!o.active)},{default:i(()=>[o.frequency.selected=="once"?(d(),S("span",xe,[a(b,{"fixed-width":"",icon:["fas","calendar-day"]}),r(" "+s(t.mqttStore.formatDateRange(o.frequency.once)),1)])):m("",!0),o.frequency.selected=="daily"?(d(),S("span",Le,[a(b,{"fixed-width":"",icon:["fas","calendar-week"]}),e[48]||(e[48]=r(" täglich "))])):m("",!0),o.frequency.selected=="weekly"?(d(),S("span",Be,[a(b,{"fixed-width":"",icon:["fas","calendar-alt"]}),r(" "+s(t.mqttStore.formatWeeklyScheduleDays(o.frequency.weekly)),1)])):m("",!0),a(b,{"fixed-width":"",icon:["fas","clock"]}),r(" "+s(o.time.join("-"))+" ",1),o.limit.selected=="soc"?(d(),S("span",$e,[a(b,{"fixed-width":"",icon:["fas","car-battery"]}),r(" "+s(o.limit.soc)+" % ",1)])):m("",!0),o.limit.selected=="amount"?(d(),S("span",Ae,[a(b,{"fixed-width":"",icon:["fas","bolt"]}),r(" "+s(o.limit.amount/1e3)+" kWh ",1)])):m("",!0)]),_:2},1032,["color","onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]))])):m("",!0)]),_:1})]),_:1}))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),a(ee,{modelValue:t.modalManualSocInputVisible,"onUpdate:modelValue":e[20]||(e[20]=o=>t.modalManualSocInputVisible=o),"vehicle-id":t.modalVehicleId},null,8,["modelValue","vehicle-id"])],64)}],["__scopeId","data-v-76699ceb"]]);export{De as default}; +import{u as B,C as ae,N as ie}from"./index-nI_NVV5B.js";import{D as F}from"./DashBoardCard-DJZ2GsC-.js";import{C as z,S as le}from"./ChargePointPlugBadge-bP9BlN1o.js";import{F as $,l as A,b as ne,c as oe,j as re,k as W,m as E,e as U,n as D,o as Z,p as R,q as j,r as K,s as O,t as J,u as G,v as ce,w as de,x as he,y as ge}from"./vendor-fortawesome-CpQlJZ13.js";import{_ as x}from"./vendor-inkline-C_NPDnDu.js";import{l as u,q as i,p as h,o as d,s as a,z as q,e as S,F as M,k as r,f as m,x as s,A as L,I as se,i as ue,n as me}from"./vendor-BMrK3KHF.js";A.add(ne,oe);const H=x({name:"ChargePointLockButton",components:{FontAwesomeIcon:$},props:{chargePointId:{required:!0,type:Number},changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:B()}),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(l,e,n,p,t,c){const P=h("font-awesome-icon"),V=h("i-button");return d(),u(V,{size:"lg",disabled:n.changesLocked,outline:n.changesLocked},{default:i(()=>[a(P,{"fixed-width":"",icon:c.stateIcon,class:q(c.stateClass),onClick:e[0]||(e[0]=C=>c.toggleChargePointManualLock())},null,8,["icon","class"])]),_:1},8,["disabled","outline"])}]]);A.add(re);const Q=x({name:"ChargePointCodeButton",components:{FontAwesomeIcon:$,CodeInputModal:ae},props:{chargePointId:{type:Number,required:!0}},data:()=>({mqttStore:B(),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(l){this.$root.sendTopicToBroker(`openWB/chargepoint/${this.chargePointId}/get/rfid`,l),this.modalIdTagEntryVisible=!1}}},[["render",function(l,e,n,p,t,c){const P=h("FontAwesomeIcon"),V=h("i-button"),C=h("CodeInputModal");return d(),S(M,null,[a(V,{class:"_margin-right:1",size:"lg",color:c.tagButtonColor,disabled:c.tagState==2,onClick:e[0]||(e[0]=g=>c.toggleIdTagModal())},{default:i(()=>[a(P,{"fixed-width":"",icon:["fas","fa-calculator"],class:q(c.tagClass)},null,8,["class"])]),_:1},8,["color","disabled"]),a(C,{ref:"lockInput",modelValue:t.modalIdTagEntryVisible,"onUpdate:modelValue":e[1]||(e[1]=g=>t.modalIdTagEntryVisible=g),"min-length":4,"max-length":20,"onUpdate:inputValue":c.sendIdTag},{header:i(()=>e[2]||(e[2]=[r(" Bitte einen ID-Tag eingeben. ")])),_:1},8,["modelValue","onUpdate:inputValue"])],64)}]]);A.add(W,E,U,D,Z,R,j,K,O,J,G);const Ce={name:"ChargePointCard",components:{DashBoardCard:F,SparkLine:le,ChargePointPlugBadge:z,ChargePointLockButton:H,ChargePointCodeButton:Q,FontAwesomeIcon:$},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:B()}),methods:{handleVehicleClick(l){this.$emit("vehicle-click",l)},handleSocClick(l){this.$emit("soc-click",l)},handleChargeModeClick(l){this.$emit("charge-mode-click",l)},toggleChargePointSettings(l){this.$emit("toggle-charge-point-settings",l)}}},Pe={key:0},pe=x(Ce,[["render",function(l,e,n,p,t,c){const P=h("charge-point-plug-badge"),V=h("charge-point-code-button"),C=h("charge-point-lock-button"),g=h("i-column"),I=h("i-row"),k=h("spark-line"),_=h("font-awesome-icon"),f=h("i-badge"),y=h("i-button"),b=h("i-container"),v=h("dash-board-card");return d(),u(v,{color:"primary"},{headerLeft:i(()=>[r(s(t.mqttStore.getChargePointName(n.chargePointId)),1)]),headerRight:i(()=>[a(P,{"charge-point-id":[n.chargePointId]},null,8,["charge-point-id"])]),default:i(()=>[a(b,null,{default:i(()=>[a(I,null,{default:i(()=>[a(g,null,{default:i(()=>[a(I,null,{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[t.mqttStore.getRfidEnabled?(d(),u(V,{key:0,"charge-point-id":n.chargePointId},null,8,["charge-point-id"])):m("",!0),a(C,{"charge-point-id":n.chargePointId,"changes-locked":n.changesLocked},null,8,["charge-point-id","changes-locked"])]),_:1}),a(g,{class:"_text-align:right _padding-left:0"},{default:i(()=>[r(s(t.mqttStore.getChargePointPower(n.chargePointId))+" "+s(t.mqttStore.getChargePointPhasesInUse(n.chargePointId))+" "+s(t.mqttStore.getChargePointSetCurrent(n.chargePointId)),1)]),_:1})]),_:1}),a(I,{class:"_padding-top:1"},{default:i(()=>[a(g,{class:"_padding-left:0"},{default:i(()=>[a(k,{color:"var(--color--primary)",data:t.mqttStore.getChargePointPowerChartData(n.chargePointId)},null,8,["data"])]),_:1})]),_:1})]),_:1}),a(g,{md:"6"},{default:i(()=>[a(I,{class:"_display:flex"},{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0 _flex-grow:1"},{default:i(()=>[a(f,{size:"lg",class:q(["_width:100%",n.changesLocked?"":"clickable"]),onClick:e[0]||(e[0]=w=>c.handleVehicleClick(n.chargePointId))},{default:i(()=>[a(_,{"fixed-width":"",icon:["fas","fa-car"]}),r(" "+s(t.mqttStore.getChargePointConnectedVehicleName(n.chargePointId)),1)]),_:1},8,["class"])]),_:1}),t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))||t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))!=0?(d(),u(g,{key:0,class:"_flex-grow:0 _padding-right:0 _padding-left:1"},{default:i(()=>[a(y,{size:"sm",disabled:n.changesLocked,class:q(n.changesLocked?"":"clickable"),onClick:e[1]||(e[1]=w=>c.handleSocClick(n.chargePointId))},{default:i(()=>[t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))?(d(),S("span",Pe,[a(_,{"fixed-width":"",icon:t.mqttStore.getVehicleSocIsManual(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))?["fas","fa-edit"]:["fas","fa-car-battery"]},null,8,["icon"]),r(" "+s(t.mqttStore.getChargePointConnectedVehicleSoc(n.chargePointId).soc)+"% ",1)])):m("",!0),t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))!=0?(d(),u(_,{key:1,"fixed-width":"",icon:t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>1?["fas","times-circle"]:["fas","exclamation-triangle"]:[],class:q(t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>1?"_color:danger":"_color:warning":"")},null,8,["icon","class"])):m("",!0)]),_:1},8,["disabled","class"])]),_:1})):m("",!0)]),_:1}),a(I,{class:"_padding-top:1 _display:flex"},{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0 _flex-grow:1"},{default:i(()=>[a(f,{size:"lg",class:q(["_width:100%",n.changesLocked?"":"clickable"]),color:t.mqttStore.getChargePointConnectedVehicleChargeMode(n.chargePointId).class,onClick:e[2]||(e[2]=w=>c.handleChargeModeClick(n.chargePointId))},{default:i(()=>[r(s(t.mqttStore.getChargePointConnectedVehicleChargeMode(n.chargePointId).label)+" ",1),a(_,{"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehiclePriority(n.chargePointId)?["fas","fa-star"]:["far","fa-star"],class:q(t.mqttStore.getChargePointConnectedVehiclePriority(n.chargePointId)?"_color:warning":"")},null,8,["icon","class"])]),_:1},8,["class","color"])]),_:1}),t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(n.chargePointId)?(d(),u(g,{key:0,class:"_flex-grow:0 _padding-right:0 _padding-left:1"},{default:i(()=>[a(f,{size:"lg"},{default:i(()=>[t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(n.chargePointId)?(d(),u(_,{key:0,"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehicleTimeChargingRunning(n.chargePointId)?["fas","fa-clock"]:["far","fa-clock"],class:q(t.mqttStore.getChargePointConnectedVehicleTimeChargingRunning(n.chargePointId)?"_color:success":"")},null,8,["icon","class"])):m("",!0)]),_:1})]),_:1})):m("",!0)]),_:1}),n.changesLocked?m("",!0):(d(),u(I,{key:0,class:"_padding-top:1"},{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[a(y,{block:"",onClick:e[3]||(e[3]=w=>c.toggleChargePointSettings(n.chargePointId))},{default:i(()=>[a(_,{"fixed-width":"",icon:["fas","fa-wrench"]})]),_:1})]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-3c6489c4"]]);A.add(W,E,U,D,Z,R,j,K,O,J,G);const fe={name:"ChargePointCard",components:{DashBoardCard:F,ChargePointPlugBadge:z,ChargePointLockButton:H,ChargePointCodeButton:Q,FontAwesomeIcon:$},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:B(),simpleChargeModes:["instant_charging","pv_charging","stop"]}),computed:{filteredChargeModes(){return this.mqttStore.getSimpleChargePointView?this.mqttStore.chargeModeList().filter(l=>this.simpleChargeModes.includes(l.id)):this.mqttStore.chargeModeList()}},methods:{handleVehicleClick(l){this.$emit("vehicle-click",l)},handleSocClick(l){this.$emit("soc-click",l)},handleChargeModeClick(l){this.$emit("charge-mode-click",l)},toggleChargePointSettings(l){this.$emit("toggle-charge-point-settings",l)},setChargePointConnectedVehicleChargeMode(l,e){this.$emit("set-charge-point-connected-vehicle-charge-mode",l,e)}}},Se={key:0},Ve=x(fe,[["render",function(l,e,n,p,t,c){const P=h("charge-point-plug-badge"),V=h("charge-point-code-button"),C=h("charge-point-lock-button"),g=h("i-column"),I=h("i-row"),k=h("font-awesome-icon"),_=h("i-button"),f=h("i-button-group"),y=h("i-container"),b=h("dash-board-card");return d(),u(b,{color:"primary"},{headerLeft:i(()=>[r(s(t.mqttStore.getChargePointName(n.chargePointId)),1)]),headerRight:i(()=>[a(P,{"charge-point-id":[n.chargePointId]},null,8,["charge-point-id"])]),default:i(()=>[a(y,null,{default:i(()=>[a(I,null,{default:i(()=>[a(g,null,{default:i(()=>[a(I,null,{default:i(()=>[a(g,{class:"_padding-left:0 _padding-right:0"},{default:i(()=>[t.mqttStore.getRfidEnabled?(d(),u(V,{key:0,"charge-point-id":n.chargePointId},null,8,["charge-point-id"])):m("",!0),a(C,{"charge-point-id":n.chargePointId,"changes-locked":n.changesLocked},null,8,["charge-point-id","changes-locked"])]),_:1}),a(g,{class:"_text-align:right _padding-left:0"},{default:i(()=>[r(s(t.mqttStore.getChargePointPower(n.chargePointId))+" "+s(t.mqttStore.getChargePointPhasesInUse(n.chargePointId))+" "+s(t.mqttStore.getChargePointSetCurrent(n.chargePointId)),1)]),_:1})]),_:1}),a(I,{class:"_padding-top:1"},{default:i(()=>[a(g,{class:"_padding-left:0 button-group-wrapper"},{default:i(()=>[a(f,{class:"button-group main-button-group"},{default:i(()=>[a(_,{class:q(["large-button _flex-grow:1",n.changesLocked?"":"clickable"]),disabled:n.changesLocked,onClick:e[0]||(e[0]=v=>c.handleVehicleClick(n.chargePointId))},{default:i(()=>[a(k,{"fixed-width":"",icon:["fas","fa-car"]}),r(" "+s(t.mqttStore.getChargePointConnectedVehicleName(n.chargePointId))+" ",1),a(k,{class:q(["_padding-left:1",t.mqttStore.getChargePointConnectedVehiclePriority(n.chargePointId)?"_color:warning":""]),"fixed-width":"",icon:t.mqttStore.getChargePointConnectedVehiclePriority(n.chargePointId)?["fas","fa-star"]:["far","fa-star"]},null,8,["icon","class"])]),_:1},8,["class","disabled"]),t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))||t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))!=0?(d(),u(_,{key:0,class:q(["large-button _flex-grow:0",n.changesLocked?"":"clickable"]),disabled:n.changesLocked,onClick:e[1]||(e[1]=v=>c.handleSocClick(n.chargePointId))},{default:i(()=>[t.mqttStore.getVehicleSocConfigured(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))?(d(),S("span",Se,[a(k,{"fixed-width":"",icon:t.mqttStore.getVehicleSocIsManual(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))?["fas","fa-edit"]:["fas","fa-car-battery"]},null,8,["icon"]),r(" "+s(t.mqttStore.getChargePointConnectedVehicleSoc(n.chargePointId).soc)+"% ",1)])):m("",!0),t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))!=0?(d(),u(k,{key:1,"fixed-width":"",icon:t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>1?["fas","times-circle"]:["fas","exclamation-triangle"]:[],class:q(t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>0?t.mqttStore.getVehicleFaultState(t.mqttStore.getChargePointConnectedVehicleId(n.chargePointId))>1?"_color:danger":"_color:warning":"")},null,8,["icon","class"])):m("",!0)]),_:1},8,["disabled","class"])):m("",!0),a(_,{class:q(["large-button _flex-grow:0",n.changesLocked?"":"clickable"]),disabled:n.changesLocked,onClick:e[2]||(e[2]=v=>c.toggleChargePointSettings(n.chargePointId))},{default:i(()=>[a(k,{"fixed-width":"",icon:["fas","fa-wrench"]})]),_:1},8,["class","disabled"])]),_:1}),a(f,{class:"button-group _margin-top:1",disabled:n.changesLocked},{default:i(()=>[(d(!0),S(M,null,L(c.filteredChargeModes,v=>(d(),u(_,{key:v.id,outline:"",class:q(["large-button _flex-grow:1",n.changesLocked?"":"clickable"]),color:v.class!="dark"?v.class:"light",active:t.mqttStore.getChargePointConnectedVehicleChargeMode(n.chargePointId)!=null&&v.id==t.mqttStore.getChargePointConnectedVehicleChargeMode(n.chargePointId).mode,onClick:w=>c.setChargePointConnectedVehicleChargeMode(n.chargePointId,v.id)},{default:i(()=>[r(s(v.label),1)]),_:2},1032,["class","color","active","onClick"]))),128))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-5e676b1f"]]),X=x({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 l;return this.labels&&this.inputValue!=null?this.inputValuec.label=C),plaintext:"",class:"_text-align:right",size:"lg"},{prepend:i(()=>[a(P,{onClick:c.decrement},{default:i(()=>e[1]||(e[1]=[r(" - ")])),_:1},8,["onClick"])]),suffix:i(()=>[r(s(n.unit),1)]),append:i(()=>[a(P,{onClick:c.increment},{default:i(()=>e[2]||(e[2]=[r(" + ")])),_:1},8,["onClick"])]),_:1},8,["modelValue"])}]]),Ie=x({name:"ManualSocInput",components:{ExtendedNumberInput:X,NumberPad:ie},props:{modelValue:{required:!0,type:Boolean,default:!1},vehicleId:{required:!0,type:Number,default:0}},emits:["update:modelValue"],data:()=>({mqttStore:B(),newSoc:0}),methods:{enter(l){let e=10*this.newSoc+parseInt(l);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(l,e,n,p,t,c){const P=h("extended-number-input"),V=h("i-column"),C=h("i-row"),g=h("NumberPad"),I=h("i-container"),k=h("i-button"),_=h("i-modal");return d(),u(se,{to:"body"},[a(_,{"model-value":n.modelValue,size:"sm","onUpdate:modelValue":e[6]||(e[6]=f=>l.$emit("update:modelValue",f))},{header:i(()=>[r(' SoC für Fahrzeug "'+s(t.mqttStore.getVehicleName(n.vehicleId))+'" ',1)]),footer:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(V,null,{default:i(()=>[a(k,{color:"danger",onClick:e[4]||(e[4]=f=>c.close())},{default:i(()=>e[7]||(e[7]=[r(" Zurück ")])),_:1})]),_:1}),a(V,{class:"_text-align:right"},{default:i(()=>[a(k,{color:"success",onClick:e[5]||(e[5]=f=>c.updateManualSoc())},{default:i(()=>e[8]||(e[8]=[r(" OK ")])),_:1})]),_:1})]),_:1})]),_:1})]),default:i(()=>[a(I,null,{default:i(()=>[a(C,{center:"",class:"_padding-bottom:1"},{default:i(()=>[a(V,null,{default:i(()=>[a(P,{modelValue:t.newSoc,"onUpdate:modelValue":e[0]||(e[0]=f=>t.newSoc=f),unit:"%",min:0,max:100,step:1,size:"lg",class:"_text-align:center"},null,8,["modelValue"])]),_:1})]),_:1}),a(g,{"onKey:digit":e[1]||(e[1]=f=>c.enter(f)),"onKey:clear":e[2]||(e[2]=f=>c.clear()),"onKey:delete":e[3]||(e[3]=f=>c.removeDigit())})]),_:1})]),_:1},8,["model-value"])])}]]);A.add(ce,de,he,ge);const _e={name:"ChargePointsView",components:{ChargePointCard:pe,SimpleChargePointCard:Ve,ExtendedNumberInput:X,ManualSocInput:Ie,FontAwesomeIcon:$},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:B(),modalChargeModeSettingVisible:!1,modalVehicleSelectVisible:!1,modalChargePointSettingsVisible:!1,modalChargePointId:0,modalVehicleId:0,modalActiveTab:"tab-general",modalManualSocInputVisible:!1,simpleChargeModes:["instant_charging","pv_charging","stop"]}),computed:{vehicleList(){let l=this.mqttStore.getVehicleList;var e=[];return Object.keys(l).forEach(n=>{let p=parseInt(n.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""));e.push({id:p,name:l[n]})}),e},filteredChargeModes(){return this.mqttStore.getSimpleChargePointView?this.mqttStore.chargeModeList().filter(l=>this.simpleChargeModes.includes(l.id)):this.mqttStore.chargeModeList()}},watch:{changesLocked(l,e){e!==!0&&l===!0&&(this.modalChargeModeSettingVisible=!1,this.modalVehicleSelectVisible=!1,this.modalChargePointSettingsVisible=!1,this.modalManualSocInputVisible=!1)}},methods:{toggleChargePointSettings(l){switch(this.mqttStore.getChargePointConnectedVehicleChargeMode(l).mode){case"pv_charging":this.modalActiveTab="tab-pv-charging";break;case"scheduled_charging":this.modalActiveTab="tab-scheduled-charging";break;default:this.modalActiveTab="tab-instant-charging"}this.modalChargePointId=l,this.modalChargePointSettingsVisible=!0},handleChargeModeClick(l){this.changesLocked||(this.modalChargePointId=l,this.modalChargeModeSettingVisible=!0)},handleVehicleClick(l){this.changesLocked||(this.modalChargePointId=l,this.modalVehicleSelectVisible=!0)},handleSocClick(l){let e=this.mqttStore.getChargePointConnectedVehicleId(l);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)},setChargePointConnectedVehicle(l,e){e.id!=this.mqttStore.getChargePointConnectedVehicleId(l)&&this.$root.sendTopicToBroker(`openWB/chargepoint/${l}/config/ev`,e.id),this.modalVehicleSelectVisible&&(this.modalVehicleSelectVisible=!1)},setChargePointConnectedVehicleChargeMode(l,e){if(e.id!=this.mqttStore.getChargePointConnectedVehicleChargeMode(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/selected`,e)}},setChargePointConnectedVehiclePriority(l,e){if(e!=this.mqttStore.getChargePointConnectedVehiclePriority(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/prio`,e)}},setChargePointConnectedVehicleTimeChargingActive(l,e){if(e!=this.mqttStore.getChargePointConnectedVehicleTimeChargingActive(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/time_charging/active`,e)}},setChargePointConnectedVehicleInstantChargingCurrent(l,e){if(e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingCurrent(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/instant_charging/current`,parseFloat(e))}},setChargePointConnectedVehicleInstantChargingLimit(l,e){if(e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(l).selected){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/instant_charging/limit/selected`,e)}},setChargePointConnectedVehicleInstantChargingLimitSoc(l,e){if(e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(l).soc){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/instant_charging/limit/soc`,parseInt(e))}},setChargePointConnectedVehicleInstantChargingLimitAmount(l,e){if(e&&e!=this.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(l).amount){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/instant_charging/limit/amount`,e)}},setChargePointConnectedVehiclePvChargingFeedInLimit(l,e){if(e!=this.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(l)){var n=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${n}/chargemode/pv_charging/feed_in_limit`,e)}},setChargePointConnectedVehiclePvChargingMinCurrent(l,e){let n=this.mqttStore.getChargePointConnectedVehiclePvChargingMinCurrent(l),p=parseInt(e);if(p!=n&&!isNaN(p)){var t=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${t}/chargemode/pv_charging/min_current`,p)}},setChargePointConnectedVehiclePvChargingMinSoc(l,e){let n=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSoc(l),p=parseInt(e);if(p!=n&&!isNaN(p)){var t=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${t}/chargemode/pv_charging/min_soc`,p)}},setChargePointConnectedVehiclePvChargingMinSocCurrent(l,e){let n=this.mqttStore.getChargePointConnectedVehiclePvChargingMinSocCurrent(l),p=parseInt(e);if(p!=n&&!isNaN(p)){var t=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${t}/chargemode/pv_charging/min_soc_current`,p)}},setChargePointConnectedVehiclePvChargingMaxSoc(l,e){let n=this.mqttStore.getChargePointConnectedVehiclePvChargingMaxSoc(l),p=parseInt(e);if(p!=n&&!isNaN(p)){var t=this.mqttStore.getChargePointConnectedVehicleChargeTemplateIndex(l);this.$root.sendTopicToBroker(`openWB/vehicle/template/charge_template/${t}/chargemode/pv_charging/max_soc`,p)}},setChargePointConnectedVehicleScheduledChargingPlanActive(l,e){this.$root.sendTopicToBroker(`${l}/active`,e)},setChargePointConnectedVehicleTimeChargingPlanActive(l,e){this.$root.sendTopicToBroker(`${l}/active`,e)}}},be={class:"charge-points-card-wrapper"},ke={key:0},ve={key:1},qe={key:2},ye={key:3},we={key:4},Me={key:0},Te={key:1},xe={key:0},Le={key:1},Be={key:2},$e={key:3},Ae={key:4},De=x(_e,[["render",function(l,e,n,p,t,c){const P=h("i-button"),V=h("i-button-group"),C=h("i-form-group"),g=h("i-form-label"),I=h("i-form"),k=h("i-modal"),_=h("i-tab-title"),f=h("extended-number-input"),y=h("i-tab"),b=h("font-awesome-icon"),v=h("i-alert"),w=h("i-row"),N=h("i-container"),Y=h("i-tabs"),ee=h("manual-soc-input");return d(),S(M,null,[ue("div",be,[(d(!0),S(M,null,L(t.mqttStore.getChargePointIds,o=>(d(),u(me(t.mqttStore.getSimpleChargePointView?"SimpleChargePointCard":"ChargePointCard"),{key:o,"charge-point-id":o,"changes-locked":n.changesLocked,onVehicleClick:c.handleVehicleClick,onSocClick:c.handleSocClick,onChargeModeClick:c.handleChargeModeClick,onToggleChargePointSettings:c.toggleChargePointSettings,onSetChargePointConnectedVehicleChargeMode:c.setChargePointConnectedVehicleChargeMode},null,40,["charge-point-id","changes-locked","onVehicleClick","onSocClick","onChargeModeClick","onToggleChargePointSettings","onSetChargePointConnectedVehicleChargeMode"]))),128))]),a(k,{modelValue:t.modalChargeModeSettingVisible,"onUpdate:modelValue":e[2]||(e[2]=o=>t.modalChargeModeSettingVisible=o),size:"lg"},{header:i(()=>[r(' Lademodus für "'+s(t.mqttStore.getChargePointConnectedVehicleName(t.modalChargePointId))+'" auswählen ',1)]),default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(V,{block:"",vertical:""},{default:i(()=>[(d(!0),S(M,null,L(c.filteredChargeModes,o=>(d(),u(P,{key:o.id,size:"lg",class:"large-button",outline:"",color:o.class!="dark"?o.class:"light",active:t.mqttStore.getChargePointConnectedVehicleChargeMode(t.modalChargePointId)!=null&&o.id==t.mqttStore.getChargePointConnectedVehicleChargeMode(t.modalChargePointId).mode,onClick:T=>c.setChargePointConnectedVehicleChargeMode(t.modalChargePointId,o.id)},{default:i(()=>[r(s(o.label),1)]),_:2},1032,["color","active","onClick"]))),128))]),_:1})]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[21]||(e[21]=[r("Priorität")])),_:1}),a(V,{block:""},{default:i(()=>[a(P,{size:"lg",class:"large-button",color:t.mqttStore.getChargePointConnectedVehiclePriority(t.modalChargePointId)!==!0?"danger":"",onClick:e[0]||(e[0]=o=>c.setChargePointConnectedVehiclePriority(t.modalChargePointId,!1))},{default:i(()=>e[22]||(e[22]=[r(" Nein ")])),_:1},8,["color"]),a(P,{color:t.mqttStore.getChargePointConnectedVehiclePriority(t.modalChargePointId)===!0?"success":"",onClick:e[1]||(e[1]=o=>c.setChargePointConnectedVehiclePriority(t.modalChargePointId,!0))},{default:i(()=>e[23]||(e[23]=[r(" Ja ")])),_:1},8,["color"])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),a(k,{modelValue:t.modalVehicleSelectVisible,"onUpdate:modelValue":e[3]||(e[3]=o=>t.modalVehicleSelectVisible=o),class:"modal-vehicle-select",size:"lg"},{header:i(()=>[r(' Fahrzeug an "'+s(t.mqttStore.getChargePointName(t.modalChargePointId))+'" auswählen ',1)]),default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(V,{vertical:"",block:""},{default:i(()=>[(d(!0),S(M,null,L(c.vehicleList,o=>(d(),u(P,{key:o.id,size:"lg",class:"large-button",active:t.mqttStore.getChargePointConnectedVehicleId(t.modalChargePointId)==o.id,color:t.mqttStore.getChargePointConnectedVehicleId(t.modalChargePointId)==o.id?"primary":"",onClick:T=>c.setChargePointConnectedVehicle(t.modalChargePointId,o)},{default:i(()=>[r(s(o.name),1)]),_:2},1032,["active","color","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),a(k,{modelValue:t.modalChargePointSettingsVisible,"onUpdate:modelValue":e[19]||(e[19]=o=>t.modalChargePointSettingsVisible=o),size:"lg"},{header:i(()=>[r(' Einstellungen für Fahrzeug "'+s(t.mqttStore.getChargePointConnectedVehicleName(t.modalChargePointId))+'" ',1)]),default:i(()=>[a(Y,{modelValue:t.modalActiveTab,"onUpdate:modelValue":e[18]||(e[18]=o=>t.modalActiveTab=o),stretch:""},{header:i(()=>[a(_,{for:"tab-instant-charging"},{default:i(()=>e[24]||(e[24]=[r(" Sofort ")])),_:1}),a(_,{for:"tab-pv-charging"},{default:i(()=>e[25]||(e[25]=[r(" PV ")])),_:1}),t.mqttStore.getSimpleChargePointView?m("",!0):(d(),u(_,{key:0,for:"tab-scheduled-charging"},{default:i(()=>e[26]||(e[26]=[r(" Zielladen ")])),_:1})),t.mqttStore.getSimpleChargePointView?m("",!0):(d(),u(_,{key:1,for:"tab-time-charging"},{default:i(()=>e[27]||(e[27]=[r(" Zeitladen ")])),_:1}))]),default:i(()=>[a(y,{name:"tab-instant-charging"},{default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[28]||(e[28]=[r("Stromstärke")])),_:1}),a(f,{unit:"A",min:6,max:32,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingCurrent(t.modalChargePointId),"onUpdate:modelValue":e[4]||(e[4]=o=>c.setChargePointConnectedVehicleInstantChargingCurrent(t.modalChargePointId,o))},null,8,["model-value"])]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[29]||(e[29]=[r("Begrenzung")])),_:1}),a(V,{block:""},{default:i(()=>[a(P,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="none"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="none",onClick:e[5]||(e[5]=o=>c.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"none"))},{default:i(()=>e[30]||(e[30]=[r(" Keine ")])),_:1},8,["color","active"]),a(P,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc",onClick:e[6]||(e[6]=o=>c.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"soc"))},{default:i(()=>e[31]||(e[31]=[r(" EV-SoC ")])),_:1},8,["color","active"]),a(P,{color:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount"?"primary":"",active:t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount",onClick:e[7]||(e[7]=o=>c.setChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId,"amount"))},{default:i(()=>e[32]||(e[32]=[r(" Energie ")])),_:1},8,["color","active"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="soc"?(d(),u(C,{key:0},{default:i(()=>[a(g,null,{default:i(()=>e[33]||(e[33]=[r("Max. SoC")])),_:1}),a(f,{unit:"%",min:5,max:100,step:5,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).soc,"onUpdate:modelValue":e[8]||(e[8]=o=>c.setChargePointConnectedVehicleInstantChargingLimitSoc(t.modalChargePointId,o))},null,8,["model-value"])]),_:1})):m("",!0),t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).selected=="amount"?(d(),u(C,{key:1},{default:i(()=>[a(g,null,{default:i(()=>e[34]||(e[34]=[r("Max. Energie")])),_:1}),a(f,{unit:"kWh",min:1,max:100,"model-value":t.mqttStore.getChargePointConnectedVehicleInstantChargingLimit(t.modalChargePointId).amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=o=>c.setChargePointConnectedVehicleInstantChargingLimitAmount(t.modalChargePointId,1e3*o))},null,8,["model-value"])]),_:1})):m("",!0)]),_:1})]),_:1}),a(y,{name:"tab-pv-charging"},{default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[35]||(e[35]=[r("Einspeisegrenze beachten")])),_:1}),a(V,{block:""},{default:i(()=>[a(P,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId)!==!0?"danger":"",onClick:e[10]||(e[10]=o=>c.setChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId,!1))},{default:i(()=>e[36]||(e[36]=[r(" Nein ")])),_:1},8,["color"]),a(P,{color:t.mqttStore.getChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId)===!0?"success":"",onClick:e[11]||(e[11]=o=>c.setChargePointConnectedVehiclePvChargingFeedInLimit(t.modalChargePointId,!0))},{default:i(()=>e[37]||(e[37]=[r(" Ja ")])),_:1},8,["color"])]),_:1})]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[38]||(e[38]=[r("Minimaler Dauerstrom")])),_:1}),a(f,{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[12]||(e[12]=o=>c.setChargePointConnectedVehiclePvChargingMinCurrent(t.modalChargePointId,o))},null,8,["model-value"])]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[39]||(e[39]=[r("Mindest-SoC")])),_:1}),a(f,{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[13]||(e[13]=o=>c.setChargePointConnectedVehiclePvChargingMinSoc(t.modalChargePointId,o))},null,8,["model-value"])]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[40]||(e[40]=[r("Mindest-SoC Strom")])),_:1}),a(f,{min:6,max:32,unit:"A","model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingMinSocCurrent(t.modalChargePointId),"onUpdate:modelValue":e[14]||(e[14]=o=>c.setChargePointConnectedVehiclePvChargingMinSocCurrent(t.modalChargePointId,o))},null,8,["model-value"])]),_:1}),a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[41]||(e[41]=[r("SoC-Limit")])),_:1}),a(f,{unit:"%",labels:[{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},{label:100,value:100},{label:"Aus",value:101}],"model-value":t.mqttStore.getChargePointConnectedVehiclePvChargingMaxSoc(t.modalChargePointId),"onUpdate:modelValue":e[15]||(e[15]=o=>c.setChargePointConnectedVehiclePvChargingMaxSoc(t.modalChargePointId,o))},null,8,["model-value"])]),_:1})]),_:1})]),_:1}),t.mqttStore.getSimpleChargePointView?m("",!0):(d(),u(y,{key:0,name:"tab-scheduled-charging"},{default:i(()=>[Object.keys(t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId)).length===0?(d(),u(v,{key:0},{icon:i(()=>[a(b,{"fixed-width":"",icon:["fas","fa-info-circle"]})]),default:i(()=>[e[42]||(e[42]=r(" Es wurden noch keine Zeitpläne für das Zielladen eingerichtet. "))]),_:1})):(d(),u(I,{key:1},{default:i(()=>[(d(!0),S(M,null,L(t.mqttStore.getChargePointConnectedVehicleScheduledChargingPlans(t.modalChargePointId),(o,T)=>(d(),u(C,{key:T},{default:i(()=>[a(N,null,{default:i(()=>[a(w,null,{default:i(()=>[a(g,null,{default:i(()=>[r(s(o.name),1)]),_:2},1024)]),_:2},1024),a(w,null,{default:i(()=>[a(P,{size:"lg",block:"",color:o.active?"success":"danger",onClick:te=>c.setChargePointConnectedVehicleScheduledChargingPlanActive(T,!o.active)},{default:i(()=>[o.frequency.selected=="once"?(d(),S("span",ke,[a(b,{"fixed-width":"",icon:["fas","calendar-day"]}),r(" "+s(t.mqttStore.formatDate(o.frequency.once)),1)])):m("",!0),o.frequency.selected=="daily"?(d(),S("span",ve,[a(b,{"fixed-width":"",icon:["fas","calendar-week"]}),e[43]||(e[43]=r(" täglich "))])):m("",!0),o.frequency.selected=="weekly"?(d(),S("span",qe,[a(b,{"fixed-width":"",icon:["fas","calendar-alt"]}),r(" "+s(t.mqttStore.formatWeeklyScheduleDays(o.frequency.weekly)),1)])):m("",!0),a(b,{"fixed-width":"",icon:["fas","clock"]}),r(" "+s(o.time)+" ",1),o.limit.selected=="soc"?(d(),S("span",ye,[a(b,{"fixed-width":"",icon:["fas","car-battery"]}),r(" "+s(o.limit.soc_scheduled)+" % ",1)])):m("",!0),o.limit.selected=="amount"?(d(),S("span",we,[a(b,{"fixed-width":"",icon:["fas","bolt"]}),r(" "+s(o.limit.amount/1e3)+" kWh ",1)])):m("",!0)]),_:2},1032,["color","onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}))]),_:1})),t.mqttStore.getSimpleChargePointView?m("",!0):(d(),u(y,{key:1,name:"tab-time-charging"},{default:i(()=>[a(I,null,{default:i(()=>[a(C,null,{default:i(()=>[a(g,null,{default:i(()=>e[44]||(e[44]=[r("Zeitladen aktivieren")])),_:1}),a(V,{block:""},{default:i(()=>[a(P,{color:t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId)!==!0?"danger":"",onClick:e[16]||(e[16]=o=>c.setChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId,!1))},{default:i(()=>e[45]||(e[45]=[r(" Nein ")])),_:1},8,["color"]),a(P,{color:t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId)===!0?"success":"",onClick:e[17]||(e[17]=o=>c.setChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId,!0))},{default:i(()=>e[46]||(e[46]=[r(" Ja ")])),_:1},8,["color"])]),_:1})]),_:1}),t.mqttStore.getChargePointConnectedVehicleTimeChargingActive(t.modalChargePointId)===!0?(d(),S("div",Me,[Object.keys(t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId)).length===0?(d(),u(v,{key:0,color:"warning",class:"_margin-top:2"},{icon:i(()=>[a(b,{"fixed-width":"",icon:["fas","fa-circle-info"]})]),default:i(()=>[e[47]||(e[47]=r(" Es wurden noch keine Zeitpläne für das Zeitladen eingerichtet. "))]),_:1})):(d(),S("div",Te,[(d(!0),S(M,null,L(t.mqttStore.getChargePointConnectedVehicleTimeChargingPlans(t.modalChargePointId),(o,T)=>(d(),u(C,{key:T},{default:i(()=>[a(N,null,{default:i(()=>[a(w,null,{default:i(()=>[a(g,null,{default:i(()=>[r(s(o.name),1)]),_:2},1024)]),_:2},1024),a(w,null,{default:i(()=>[a(P,{size:"lg",block:"",color:o.active?"success":"danger",onClick:te=>c.setChargePointConnectedVehicleTimeChargingPlanActive(T,!o.active)},{default:i(()=>[o.frequency.selected=="once"?(d(),S("span",xe,[a(b,{"fixed-width":"",icon:["fas","calendar-day"]}),r(" "+s(t.mqttStore.formatDateRange(o.frequency.once)),1)])):m("",!0),o.frequency.selected=="daily"?(d(),S("span",Le,[a(b,{"fixed-width":"",icon:["fas","calendar-week"]}),e[48]||(e[48]=r(" täglich "))])):m("",!0),o.frequency.selected=="weekly"?(d(),S("span",Be,[a(b,{"fixed-width":"",icon:["fas","calendar-alt"]}),r(" "+s(t.mqttStore.formatWeeklyScheduleDays(o.frequency.weekly)),1)])):m("",!0),a(b,{"fixed-width":"",icon:["fas","clock"]}),r(" "+s(o.time.join("-"))+" ",1),o.limit.selected=="soc"?(d(),S("span",$e,[a(b,{"fixed-width":"",icon:["fas","car-battery"]}),r(" "+s(o.limit.soc)+" % ",1)])):m("",!0),o.limit.selected=="amount"?(d(),S("span",Ae,[a(b,{"fixed-width":"",icon:["fas","bolt"]}),r(" "+s(o.limit.amount/1e3)+" kWh ",1)])):m("",!0)]),_:2},1032,["color","onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]))])):m("",!0)]),_:1})]),_:1}))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),a(ee,{modelValue:t.modalManualSocInputVisible,"onUpdate:modelValue":e[20]||(e[20]=o=>t.modalManualSocInputVisible=o),"vehicle-id":t.modalVehicleId},null,8,["modelValue","vehicle-id"])],64)}],["__scopeId","data-v-76699ceb"]]);export{De as default}; diff --git a/packages/modules/display_themes/cards/web/assets/DashBoardCard-BqIRnhnk.js b/packages/modules/display_themes/cards/web/assets/DashBoardCard-BqIRnhnk.js deleted file mode 100644 index 35309dd044..0000000000 --- a/packages/modules/display_themes/cards/web/assets/DashBoardCard-BqIRnhnk.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as u}from"./vendor-inkline-CqnuQ_Go.js";import{o as s,l as d,n as a,s as r,f as t,i as _,q as o}from"./vendor-CFVb6_YQ.js";const $=u({name:"DashBoardCard",props:{color:{type:String,required:!0}}},[["render",function(e,h,i,p,g,m){const l=o("i-column"),n=o("i-row"),c=o("i-container"),f=o("i-card");return s(),d(f,{color:i.color},{header:a(()=>[r(c,null,{default:a(()=>[r(n,null,{default:a(()=>[r(l,null,{default:a(()=>[t(e.$slots,"headerLeft",{},void 0,!0)]),_:3}),e.$slots.headerRight?(s(),d(l,{key:0,class:"_flex-grow:0 _text-align:right _white-space:nowrap"},{default:a(()=>[t(e.$slots,"headerRight",{},void 0,!0)]),_:3})):_("",!0)]),_:3})]),_:3})]),default:a(()=>[t(e.$slots,"default",{},void 0,!0)]),_:3},8,["color"])}],["__scopeId","data-v-c53b85bf"]]);export{$ as D}; diff --git a/packages/modules/display_themes/cards/web/assets/DashBoardCard-DJZ2GsC-.js b/packages/modules/display_themes/cards/web/assets/DashBoardCard-DJZ2GsC-.js new file mode 100644 index 0000000000..5c701928a5 --- /dev/null +++ b/packages/modules/display_themes/cards/web/assets/DashBoardCard-DJZ2GsC-.js @@ -0,0 +1 @@ +import{_ as u}from"./vendor-inkline-C_NPDnDu.js";import{l,q as a,p as o,o as d,j as r,s as t,f as _}from"./vendor-BMrK3KHF.js";const $=u({name:"DashBoardCard",props:{color:{type:String,required:!0}}},[["render",function(e,p,i,h,g,m){const s=o("i-column"),n=o("i-row"),c=o("i-container"),f=o("i-card");return d(),l(f,{color:i.color},{header:a(()=>[t(c,null,{default:a(()=>[t(n,null,{default:a(()=>[t(s,null,{default:a(()=>[r(e.$slots,"headerLeft",{},void 0,!0)]),_:3}),e.$slots.headerRight?(d(),l(s,{key:0,class:"_flex-grow:0 _text-align:right _white-space:nowrap"},{default:a(()=>[r(e.$slots,"headerRight",{},void 0,!0)]),_:3})):_("",!0)]),_:3})]),_:3})]),default:a(()=>[r(e.$slots,"default",{},void 0,!0)]),_:3},8,["color"])}],["__scopeId","data-v-c53b85bf"]]);export{$ as D}; diff --git a/packages/modules/display_themes/cards/web/assets/DashBoardView-BvptEyMO.js b/packages/modules/display_themes/cards/web/assets/DashBoardView-BvptEyMO.js new file mode 100644 index 0000000000..964d4e73b9 --- /dev/null +++ b/packages/modules/display_themes/cards/web/assets/DashBoardView-BvptEyMO.js @@ -0,0 +1 @@ +import{u as l}from"./index-nI_NVV5B.js";import{D as q}from"./DashBoardCard-DJZ2GsC-.js";import{S as P,C as b}from"./ChargePointPlugBadge-bP9BlN1o.js";import{F as w,l as y,d as I,e as B,g as D,h as L,i as _}from"./vendor-fortawesome-CpQlJZ13.js";import{_ as p}from"./vendor-inkline-C_NPDnDu.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-BMrK3KHF.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("dash-board-card");return s(),c(n,{color:"danger"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-gauge-high"]}),r[0]||(r[0]=g(" EVU "))]),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(B);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("dash-board-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 "))]),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(D);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("dash-board-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 "))]),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(L);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("dash-board-card");return s(),c(n,{color:"light"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-home"]}),r[0]||(r[0]=g(" Hausverbrauch "))]),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:b},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"),k=e("dash-board-card");return t.mqttStore.getChargePointIds.length>0?(s(),c(k,{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:"dash-board-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"),k=e("inverter-card"),v=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(k,{key:3})):m("",!0),t.mqttStore.getChargePointsCardEnabled?(s(),c(v,{key:4})):m("",!0)])}],["__scopeId","data-v-2085947b"]]);export{K as default}; diff --git a/packages/modules/display_themes/cards/web/assets/DashBoardView-K8In7LJT.js b/packages/modules/display_themes/cards/web/assets/DashBoardView-K8In7LJT.js deleted file mode 100644 index 47e39bd8ad..0000000000 --- a/packages/modules/display_themes/cards/web/assets/DashBoardView-K8In7LJT.js +++ /dev/null @@ -1 +0,0 @@ -import{u as l}from"./index-BCcTh2Tv.js";import{D as q}from"./DashBoardCard-BqIRnhnk.js";import{S as P,C as b}from"./ChargePointPlugBadge-D7ai0q3I.js";import{l as w,d as I,F as y,e as B,g as D,h as L,i as _}from"./vendor-fortawesome-DhL64LM6.js";import{_ as p}from"./vendor-inkline-CqnuQ_Go.js";import{o as s,l as c,n as a,s as i,k as g,x as h,q as e,i as m,e as x}from"./vendor-CFVb6_YQ.js";w.add(I);const E=p({name:"GridCard",components:{DashBoardCard:q,SparkLine:P,FontAwesomeIcon:y},props:{},data:()=>({mqttStore:l()})},[["render",function(C,r,S,f,t,u){const o=e("font-awesome-icon"),n=e("spark-line"),d=e("dash-board-card");return s(),c(d,{color:"danger"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-gauge-high"]}),r[0]||(r[0]=g(" EVU "))]),headerRight:a(()=>[g(h(t.mqttStore.getGridPower()),1)]),default:a(()=>[i(n,{color:"var(--color--danger)","color-negative":"var(--color--success)",data:t.mqttStore.getGridPowerChartData},null,8,["data"])]),_:1})}]]);w.add(B);const F=p({name:"BatteryCard",components:{DashBoardCard:q,SparkLine:P,FontAwesomeIcon:y},props:{},data:()=>({mqttStore:l()})},[["render",function(C,r,S,f,t,u){const o=e("font-awesome-icon"),n=e("spark-line"),d=e("dash-board-card");return t.mqttStore.getBatteryConfigured?(s(),c(d,{key:0,color:"warning"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-car-battery"]}),r[0]||(r[0]=g(" Speicher "))]),headerRight:a(()=>[g(h(t.mqttStore.getBatterySoc())+" / "+h(t.mqttStore.getBatteryPower()),1)]),default:a(()=>[i(n,{color:"var(--color--warning)",data:t.mqttStore.getBatteryPowerChartData,"soc-data":t.mqttStore.getBatterySocChartData},null,8,["data","soc-data"])]),_:1})):m("",!0)}]]);w.add(D);const H=p({name:"InverterCard",components:{DashBoardCard:q,SparkLine:P,FontAwesomeIcon:y},props:{},data:()=>({mqttStore:l()})},[["render",function(C,r,S,f,t,u){const o=e("font-awesome-icon"),n=e("spark-line"),d=e("dash-board-card");return t.mqttStore.getPvConfigured?(s(),c(d,{key:0,color:"success"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-solar-panel"]}),r[0]||(r[0]=g(" PV "))]),headerRight:a(()=>[g(h(t.mqttStore.getPvPower()),1)]),default:a(()=>[i(n,{color:"var(--color--success)",data:t.mqttStore.getPvPowerChartData,inverted:!0},null,8,["data"])]),_:1})):m("",!0)}]]);w.add(L);const A=p({name:"HomeCard",components:{DashBoardCard:q,SparkLine:P,FontAwesomeIcon:y},props:{},data:()=>({mqttStore:l()})},[["render",function(C,r,S,f,t,u){const o=e("font-awesome-icon"),n=e("spark-line"),d=e("dash-board-card");return s(),c(d,{color:"light"},{headerLeft:a(()=>[i(o,{"fixed-width":"",icon:["fas","fa-home"]}),r[0]||(r[0]=g(" Hausverbrauch "))]),headerRight:a(()=>[g(h(t.mqttStore.getHomePower()),1)]),default:a(()=>[i(n,{color:"var(--color--light)",data:t.mqttStore.getHomePowerChartData},null,8,["data"])]),_:1})}]]);w.add(_);const G={name:"DashboardView",components:{GridCard:E,HomeCard:A,BatteryCard:F,InverterCard:H,ChargePointsCard:p({name:"ChargePointsCard",components:{DashBoardCard:q,SparkLine:P,FontAwesomeIcon:y,ChargePointPlugBadge:b},props:{},data:()=>({mqttStore:l()})},[["render",function(C,r,S,f,t,u){const o=e("font-awesome-icon"),n=e("charge-point-plug-badge"),d=e("spark-line"),k=e("dash-board-card");return t.mqttStore.getChargePointIds.length>0?(s(),c(k,{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(n,{"charge-point-id":t.mqttStore.getChargePointIds,"show-energy-charged":!1},null,8,["charge-point-id"])]),default:a(()=>[i(d,{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:"dash-board-card-wrapper"},K=p(G,[["render",function(C,r,S,f,t,u){const o=e("grid-card"),n=e("home-card"),d=e("battery-card"),k=e("inverter-card"),v=e("charge-points-card");return s(),x("div",R,[t.mqttStore.getGridCardEnabled?(s(),c(o,{key:0})):m("",!0),t.mqttStore.getHomeCardEnabled?(s(),c(n,{key:1})):m("",!0),t.mqttStore.getBatteryCardEnabled?(s(),c(d,{key:2})):m("",!0),t.mqttStore.getPvCardEnabled?(s(),c(k,{key:3})):m("",!0),t.mqttStore.getChargePointsCardEnabled?(s(),c(v,{key:4})):m("",!0)])}],["__scopeId","data-v-2085947b"]]);export{K as default}; diff --git a/packages/modules/display_themes/cards/web/assets/EnergyFlowView-BRDVZpdF.js b/packages/modules/display_themes/cards/web/assets/EnergyFlowView-D3Xr79nb.js similarity index 92% rename from packages/modules/display_themes/cards/web/assets/EnergyFlowView-BRDVZpdF.js rename to packages/modules/display_themes/cards/web/assets/EnergyFlowView-D3Xr79nb.js index a26bed1b75..6ad534270a 100644 --- a/packages/modules/display_themes/cards/web/assets/EnergyFlowView-BRDVZpdF.js +++ b/packages/modules/display_themes/cards/web/assets/EnergyFlowView-D3Xr79nb.js @@ -1 +1 @@ -import{u as R}from"./index-BCcTh2Tv.js";import{D as V}from"./DashBoardCard-BqIRnhnk.js";import{o as r,l as v,n as l,k as P,s as f,j as s,e as a,F as C,A as b,y as c,i as d,x as S,O as q,q as u}from"./vendor-CFVb6_YQ.js";import{_ as w}from"./vendor-inkline-CqnuQ_Go.js";import"./vendor-fortawesome-DhL64LM6.js";const m={name:"DashboardFlowCard",components:{DashBoardCard:V},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:R(),svgSize:{xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3}}),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 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.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.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.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.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.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-"+this.chargePoint1ConnectedVehicleChargeMode.class},position:{row:3,column:this.connectedChargePoints.length>1?0:1},label:[this.chargePoint1ConnectedVehicleName||"---",this.chargePoint1ConnectedVehicleChargeMode.label||"---"],soc:this.chargePoint1ConnectedVehicleSoc,icon:"icons/owbVehicle.svg"}),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.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-"+this.chargePoint2ConnectedVehicleChargeMode.class},position:{row:3,column:this.connectedChargePoints.length>2?1:2},label:[this.chargePoint2ConnectedVehicleName||"---",this.chargePoint2ConnectedVehicleChargeMode.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.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-"+this.chargePoint3ConnectedVehicleChargeMode.class},position:{row:3,column:2},label:[this.chargePoint3ConnectedVehicleName||"---",this.chargePoint3ConnectedVehicleChargeMode.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.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}},methods:{setSvgNumRows(e){this.svgSize.numRows=e},calcRowY(e){let o=this.svgSize.yMin+this.svgSize.strokeWidth+this.svgSize.circleRadius;return e*((this.svgSize.yMax-this.svgSize.strokeWidth-this.svgSize.circleRadius-o)/(this.svgSize.numRows-1))+o},calcColumnX(e){let o=this.svgSize.xMin+this.svgSize.strokeWidth+this.svgRectWidth/2;return e*((this.svgSize.xMax-this.svgSize.strokeWidth-this.svgRectWidth/2-o)/(this.svgSize.numColumns-1))+o},calcFlowLineAnchorX(e){let o=this.calcColumnX(e);return e<(this.svgSize.numColumns-1)/2?o+this.svgRectWidth/2-this.svgSize.circleRadius:e>(this.svgSize.numColumns-1)/2?o-this.svgRectWidth/2+this.svgSize.circleRadius:o},calcSvgElementBoundingBox(e){let o=document.getElementById(e);if(o==null)return{x:0,y:0,width:0,height:0};let h=o.getBBox();return{x:h.x,y:h.y,width:h.width,height:h.height}},beginAnimation(e){var o;this.$refs[e]!=null&&((o=this.$refs[e][0])==null||o.beginElement())}}},p=()=>{q(e=>({"2d21ce23":e.svgStrokeWidth,"0cb0615b":e.svgFontSize}))},x=m.setup;m.setup=x?(e,o)=>(p(),x(e,o)):p;const _={class:"svg-container"},W=["viewBox"],k={id:"layer1",style:{display:"inline"}},M=["d"],N={id:"layer2",style:{display:"inline"}},$=["cx","cy","r"],L=["transform","onClick"],B=["id"],D=["x","y","width","height"],I=["id"],F=["x","y","width","height","rx","ry"],j=["x","y","width","height","rx","ry"],T=["clip-path"],A=["id","x","y"],E=["values"],X=["id","x","y"],H=["transform"],Y=["r"],G=["r","clip-path"],O=["href","x","y","height","width"],te=w({name:"EnergyFlowView",components:{FlowCard:w(m,[["render",function(e,o,h,z,t,n){const g=u("i-container"),y=u("dash-board-card");return r(),v(y,{color:"primary"},{headerLeft:l(()=>o[0]||(o[0]=[P(" Übersicht - Energiefluss ")])),default:l(()=>[f(g,null,{default:l(()=>[s("div",_,[(r(),a("svg",{viewBox:n.svgViewBox,version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},[s("g",k,[(r(!0),a(C,null,b(n.svgComponents,i=>(r(),a("path",{key:i.id,class:c([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)}`:""},null,10,M))),128))]),s("g",N,[s("circle",{id:"center",cx:n.calcColumnX(1),cy:n.calcRowY(1),r:t.svgSize.circleRadius/3},null,8,$),(r(!0),a(C,null,b(n.svgComponents,i=>(r(),a("g",{key:i.id,class:c(i.class.base),transform:`translate(${n.calcColumnX(i.position.column)}, ${n.calcRowY(i.position.row)})`,onClick:U=>n.beginAnimation(`animate-label-${i.id}`)},[s("defs",null,[i.soc?(r(),a("clipPath",{key:0,id:`clip-soc-${i.id}`},[s("rect",{x:-t.svgSize.circleRadius-t.svgSize.strokeWidth,y:(t.svgSize.circleRadius+t.svgSize.strokeWidth)*(1-2*i.soc),width:2*(t.svgSize.circleRadius+t.svgSize.strokeWidth),height:2*(t.svgSize.circleRadius+t.svgSize.strokeWidth)*i.soc},null,8,D)],8,B)):d("",!0),s("clipPath",{id:`clip-label-${i.id}`},[s("rect",{x:-n.svgRectWidth/2,y:-t.svgSize.circleRadius,width:n.svgRectWidth,height:2*t.svgSize.circleRadius,rx:t.svgSize.circleRadius,ry:t.svgSize.circleRadius},null,8,F)],8,I)]),s("rect",{x:-n.svgRectWidth/2,y:-t.svgSize.circleRadius,width:n.svgRectWidth,height:2*t.svgSize.circleRadius,rx:t.svgSize.circleRadius,ry:t.svgSize.circleRadius},null,8,j),s("text",{"clip-path":`url(#clip-label-${i.id})`},[s("tspan",{id:`label-${i.id}`,"text-anchor":"start",x:-n.svgRectWidth/2+2*t.svgSize.circleRadius+t.svgSize.strokeWidth,y:-t.svgSize.textSize/2},[n.calcSvgElementBoundingBox(`label-${i.id}`).width>n.svgRectWidth-2*t.svgSize.circleRadius-2*t.svgSize.strokeWidth?(r(),a("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*t.svgSize.circleRadius-2*t.svgSize.strokeWidth)+"; 0;",repeatCount:"0",begin:"2s",additive:"sum"},null,8,E)):d("",!0),P(" "+S(i.label[0]),1)],8,A),s("tspan",{id:`value-${i.id}`,class:c(i.class.valueLabel),"text-anchor":"end",x:2*t.svgSize.circleRadius+t.svgSize.strokeWidth,y:t.svgSize.textSize},S(i.label[1]),11,X)],8,T),s("g",{transform:`translate(${t.svgSize.circleRadius-n.svgRectWidth/2}, 0)`},[s("circle",{cx:"0",cy:"0",r:t.svgSize.circleRadius,class:c({soc:i.soc})},null,10,Y),i.soc?(r(),a("circle",{key:0,cx:"0",cy:"0",r:t.svgSize.circleRadius,"clip-path":`url(#clip-soc-${i.id})`},null,8,G)):d("",!0),s("image",{href:i.icon,x:-n.svgIconWidth/2,y:-n.svgIconHeight/2,height:n.svgIconHeight,width:n.svgIconWidth},null,8,O)],8,H)],10,L))),128))])],8,W))])]),_:1})]),_:1})}],["__scopeId","data-v-9e868ed0"]])},props:{changesLocked:{required:!1,type:Boolean,default:!1}}},[["render",function(e,o,h,z,t,n){const g=u("FlowCard");return r(),v(g)}]]);export{te as default}; +import{u as R}from"./index-nI_NVV5B.js";import{D as V}from"./DashBoardCard-DJZ2GsC-.js";import{l as v,q as l,p as d,o as r,s as f,i as s,e as a,F as P,A as C,z as c,f as u,k as b,x as S,O as q}from"./vendor-BMrK3KHF.js";import{_ as w}from"./vendor-inkline-C_NPDnDu.js";import"./vendor-fortawesome-CpQlJZ13.js";const m={name:"DashboardFlowCard",components:{DashBoardCard:V},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:R(),svgSize:{xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3}}),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 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.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.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.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.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.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-"+this.chargePoint1ConnectedVehicleChargeMode.class},position:{row:3,column:this.connectedChargePoints.length>1?0:1},label:[this.chargePoint1ConnectedVehicleName||"---",this.chargePoint1ConnectedVehicleChargeMode.label||"---"],soc:this.chargePoint1ConnectedVehicleSoc,icon:"icons/owbVehicle.svg"}),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.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-"+this.chargePoint2ConnectedVehicleChargeMode.class},position:{row:3,column:this.connectedChargePoints.length>2?1:2},label:[this.chargePoint2ConnectedVehicleName||"---",this.chargePoint2ConnectedVehicleChargeMode.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.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-"+this.chargePoint3ConnectedVehicleChargeMode.class},position:{row:3,column:2},label:[this.chargePoint3ConnectedVehicleName||"---",this.chargePoint3ConnectedVehicleChargeMode.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.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}},methods:{setSvgNumRows(e){this.svgSize.numRows=e},calcRowY(e){let o=this.svgSize.yMin+this.svgSize.strokeWidth+this.svgSize.circleRadius;return e*((this.svgSize.yMax-this.svgSize.strokeWidth-this.svgSize.circleRadius-o)/(this.svgSize.numRows-1))+o},calcColumnX(e){let o=this.svgSize.xMin+this.svgSize.strokeWidth+this.svgRectWidth/2;return e*((this.svgSize.xMax-this.svgSize.strokeWidth-this.svgRectWidth/2-o)/(this.svgSize.numColumns-1))+o},calcFlowLineAnchorX(e){let o=this.calcColumnX(e);return e<(this.svgSize.numColumns-1)/2?o+this.svgRectWidth/2-this.svgSize.circleRadius:e>(this.svgSize.numColumns-1)/2?o-this.svgRectWidth/2+this.svgSize.circleRadius:o},calcSvgElementBoundingBox(e){let o=document.getElementById(e);if(o==null)return{x:0,y:0,width:0,height:0};let h=o.getBBox();return{x:h.x,y:h.y,width:h.width,height:h.height}},beginAnimation(e){var o;this.$refs[e]!=null&&((o=this.$refs[e][0])==null||o.beginElement())}}},p=()=>{q(e=>({"2d21ce23":e.svgStrokeWidth,"0cb0615b":e.svgFontSize}))},x=m.setup;m.setup=x?(e,o)=>(p(),x(e,o)):p;const _={class:"svg-container"},W=["viewBox"],k={id:"layer1",style:{display:"inline"}},M=["d"],N={id:"layer2",style:{display:"inline"}},$=["cx","cy","r"],L=["transform","onClick"],B=["id"],D=["x","y","width","height"],I=["id"],F=["x","y","width","height","rx","ry"],j=["x","y","width","height","rx","ry"],T=["clip-path"],A=["id","x","y"],E=["values"],X=["id","x","y"],H=["transform"],Y=["r"],G=["r","clip-path"],O=["href","x","y","height","width"],te=w({name:"EnergyFlowView",components:{FlowCard:w(m,[["render",function(e,o,h,z,t,n){const g=d("i-container"),y=d("dash-board-card");return r(),v(y,{color:"primary"},{headerLeft:l(()=>o[0]||(o[0]=[b(" Übersicht - Energiefluss ")])),default:l(()=>[f(g,null,{default:l(()=>[s("div",_,[(r(),a("svg",{viewBox:n.svgViewBox,version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},[s("g",k,[(r(!0),a(P,null,C(n.svgComponents,i=>(r(),a("path",{key:i.id,class:c([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)}`:""},null,10,M))),128))]),s("g",N,[s("circle",{id:"center",cx:n.calcColumnX(1),cy:n.calcRowY(1),r:t.svgSize.circleRadius/3},null,8,$),(r(!0),a(P,null,C(n.svgComponents,i=>(r(),a("g",{key:i.id,class:c(i.class.base),transform:`translate(${n.calcColumnX(i.position.column)}, ${n.calcRowY(i.position.row)})`,onClick:U=>n.beginAnimation(`animate-label-${i.id}`)},[s("defs",null,[i.soc?(r(),a("clipPath",{key:0,id:`clip-soc-${i.id}`},[s("rect",{x:-t.svgSize.circleRadius-t.svgSize.strokeWidth,y:(t.svgSize.circleRadius+t.svgSize.strokeWidth)*(1-2*i.soc),width:2*(t.svgSize.circleRadius+t.svgSize.strokeWidth),height:2*(t.svgSize.circleRadius+t.svgSize.strokeWidth)*i.soc},null,8,D)],8,B)):u("",!0),s("clipPath",{id:`clip-label-${i.id}`},[s("rect",{x:-n.svgRectWidth/2,y:-t.svgSize.circleRadius,width:n.svgRectWidth,height:2*t.svgSize.circleRadius,rx:t.svgSize.circleRadius,ry:t.svgSize.circleRadius},null,8,F)],8,I)]),s("rect",{x:-n.svgRectWidth/2,y:-t.svgSize.circleRadius,width:n.svgRectWidth,height:2*t.svgSize.circleRadius,rx:t.svgSize.circleRadius,ry:t.svgSize.circleRadius},null,8,j),s("text",{"clip-path":`url(#clip-label-${i.id})`},[s("tspan",{id:`label-${i.id}`,"text-anchor":"start",x:-n.svgRectWidth/2+2*t.svgSize.circleRadius+t.svgSize.strokeWidth,y:-t.svgSize.textSize/2},[n.calcSvgElementBoundingBox(`label-${i.id}`).width>n.svgRectWidth-2*t.svgSize.circleRadius-2*t.svgSize.strokeWidth?(r(),a("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*t.svgSize.circleRadius-2*t.svgSize.strokeWidth)+"; 0;",repeatCount:"0",begin:"2s",additive:"sum"},null,8,E)):u("",!0),b(" "+S(i.label[0]),1)],8,A),s("tspan",{id:`value-${i.id}`,class:c(i.class.valueLabel),"text-anchor":"end",x:2*t.svgSize.circleRadius+t.svgSize.strokeWidth,y:t.svgSize.textSize},S(i.label[1]),11,X)],8,T),s("g",{transform:`translate(${t.svgSize.circleRadius-n.svgRectWidth/2}, 0)`},[s("circle",{cx:"0",cy:"0",r:t.svgSize.circleRadius,class:c({soc:i.soc})},null,10,Y),i.soc?(r(),a("circle",{key:0,cx:"0",cy:"0",r:t.svgSize.circleRadius,"clip-path":`url(#clip-soc-${i.id})`},null,8,G)):u("",!0),s("image",{href:i.icon,x:-n.svgIconWidth/2,y:-n.svgIconHeight/2,height:n.svgIconHeight,width:n.svgIconWidth},null,8,O)],8,H)],10,L))),128))])],8,W))])]),_:1})]),_:1})}],["__scopeId","data-v-9e868ed0"]])},props:{changesLocked:{required:!1,type:Boolean,default:!1}}},[["render",function(e,o,h,z,t,n){const g=d("FlowCard");return r(),v(g)}]]);export{te as default}; diff --git a/packages/modules/display_themes/cards/web/assets/StatusView-BneXgLoT.js b/packages/modules/display_themes/cards/web/assets/StatusView-rjhbJP_1.js similarity index 82% rename from packages/modules/display_themes/cards/web/assets/StatusView-BneXgLoT.js rename to packages/modules/display_themes/cards/web/assets/StatusView-rjhbJP_1.js index 532d04f90e..206972e98b 100644 --- a/packages/modules/display_themes/cards/web/assets/StatusView-BneXgLoT.js +++ b/packages/modules/display_themes/cards/web/assets/StatusView-rjhbJP_1.js @@ -1 +1 @@ -import{u as y}from"./index-BCcTh2Tv.js";import{l as b,C as M,F as k,D as A}from"./vendor-fortawesome-DhL64LM6.js";import{_ as p}from"./vendor-inkline-CqnuQ_Go.js";import{o as c,l as f,n as t,k as n,s as o,q as l,I as x,j as I,i as C}from"./vendor-CFVb6_YQ.js";import{D as z}from"./DashBoardCard-BqIRnhnk.js";b.add(M);const D=p({name:"ReloadButton",components:{FontAwesomeIcon:k},props:{},data:()=>({}),methods:{reloadDisplay(){location.reload()}}},[["render",function(w,e,h,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-button");return c(),f(a,{color:"success",size:"lg",onClick:e[0]||(e[0]=s=>m.reloadDisplay())},{default:t(()=>[e[1]||(e[1]=n(" Display neu laden ")),o(i,{"fixed-width":"",icon:["fas","fa-undo"]})]),_:1})}]]);b.add(M);const F=p({name:"RebootButton",components:{FontAwesomeIcon:k},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,h,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-container"),s=l("i-button"),d=l("i-column"),_=l("i-row"),g=l("i-modal");return c(),f(s,{color:"warning",size:"lg",onClick:e[3]||(e[3]=r=>m.toggleModal())},{default:t(()=>[e[8]||(e[8]=n(" openWB neu starten ")),o(i,{"fixed-width":"",icon:["fas","fa-undo"]}),(c(),f(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... ")])),footer:t(()=>[o(a,null,{default:t(()=>[o(_,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}),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})]),_:1})]),_:1})]),default:t(()=>[o(a,null,{default:t(()=>e[5]||(e[5]=[n(" Möchten Sie diese openWB wirklich neu starten? ")])),_:1})]),_:1},8,["modelValue"])]))]),_:1})}]]);b.add(A);const Z=p({name:"StatusView",components:{ReloadButton:D,RebootButton:F,ShutdownButton:p({name:"ShutdownButton",components:{FontAwesomeIcon:k},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,h,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-container"),s=l("i-button"),d=l("i-column"),_=l("i-row"),g=l("i-modal");return c(),f(s,{color:"danger",size:"lg",onClick:e[3]||(e[3]=r=>m.toggleModal())},{default:t(()=>[e[8]||(e[8]=n(" openWB ausschalten ")),o(i,{"fixed-width":"",icon:["fas","fa-power-off"]}),(c(),f(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... ")])),footer:t(()=>[o(a,null,{default:t(()=>[o(_,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}),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})]),_:1})]),_:1})]),default:t(()=>[o(a,null,{default:t(()=>e[5]||(e[5]=[n(" Möchten Sie diese openWB wirklich ausschalten?"),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},8,["modelValue"])]))]),_:1})}]]),DashBoardCard:z},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:y()})},[["render",function(w,e,h,S,u,m){const i=l("i-form-label"),a=l("i-column"),s=l("i-input"),d=l("i-row"),_=l("i-form-group"),g=l("reload-button"),r=l("reboot-button"),B=l("shutdown-button"),q=l("i-form"),v=l("i-container"),V=l("dash-board-card");return c(),f(V,{color:"primary"},{headerLeft:t(()=>e[0]||(e[0]=[n(" Status ")])),default:t(()=>[o(v,null,{default:t(()=>[o(q,null,{default:t(()=>[o(d,null,{default:t(()=>[o(a,null,{default:t(()=>[o(_,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}),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}),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}),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}),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}),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}),h.changesLocked?C("",!0):(c(),f(d,{key:0,class:"_margin-top:5",between:""},{default:t(()=>[o(a,null,{default:t(()=>[o(g,{block:""})]),_:1})]),_:1})),h.changesLocked?C("",!0):(c(),f(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(B,{block:"",class:"_margin-top:2"})]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})}]]);export{Z as default}; +import{u as y}from"./index-nI_NVV5B.js";import{F as b,l as k,C as M,D as A}from"./vendor-fortawesome-CpQlJZ13.js";import{_ as p}from"./vendor-inkline-C_NPDnDu.js";import{l as c,q as t,p as l,o as f,k as n,s as o,I as x,i as I,f as C}from"./vendor-BMrK3KHF.js";import{D as z}from"./DashBoardCard-DJZ2GsC-.js";k.add(M);const D=p({name:"ReloadButton",components:{FontAwesomeIcon:b},props:{},data:()=>({}),methods:{reloadDisplay(){location.reload()}}},[["render",function(w,e,h,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-button");return f(),c(a,{color:"success",size:"lg",onClick:e[0]||(e[0]=s=>m.reloadDisplay())},{default:t(()=>[e[1]||(e[1]=n(" Display neu laden ")),o(i,{"fixed-width":"",icon:["fas","fa-undo"]})]),_:1})}]]);k.add(M);const F=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,h,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-container"),s=l("i-button"),d=l("i-column"),_=l("i-row"),g=l("i-modal");return f(),c(s,{color:"warning",size:"lg",onClick:e[3]||(e[3]=r=>m.toggleModal())},{default:t(()=>[e[8]||(e[8]=n(" openWB neu starten ")),o(i,{"fixed-width":"",icon:["fas","fa-undo"]}),(f(),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... ")])),footer:t(()=>[o(a,null,{default:t(()=>[o(_,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}),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})]),_:1})]),_:1})]),default:t(()=>[o(a,null,{default:t(()=>e[5]||(e[5]=[n(" Möchten Sie diese openWB wirklich neu starten? ")])),_:1})]),_:1},8,["modelValue"])]))]),_:1})}]]);k.add(A);const Z=p({name:"StatusView",components:{ReloadButton:D,RebootButton:F,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,h,S,u,m){const i=l("FontAwesomeIcon"),a=l("i-container"),s=l("i-button"),d=l("i-column"),_=l("i-row"),g=l("i-modal");return f(),c(s,{color:"danger",size:"lg",onClick:e[3]||(e[3]=r=>m.toggleModal())},{default:t(()=>[e[8]||(e[8]=n(" openWB ausschalten ")),o(i,{"fixed-width":"",icon:["fas","fa-power-off"]}),(f(),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... ")])),footer:t(()=>[o(a,null,{default:t(()=>[o(_,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}),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})]),_:1})]),_:1})]),default:t(()=>[o(a,null,{default:t(()=>e[5]||(e[5]=[n(" Möchten Sie diese openWB wirklich ausschalten?"),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},8,["modelValue"])]))]),_:1})}]]),DashBoardCard:z},props:{changesLocked:{required:!1,type:Boolean,default:!1}},data:()=>({mqttStore:y()})},[["render",function(w,e,h,S,u,m){const i=l("i-form-label"),a=l("i-column"),s=l("i-input"),d=l("i-row"),_=l("i-form-group"),g=l("reload-button"),r=l("reboot-button"),B=l("shutdown-button"),q=l("i-form"),v=l("i-container"),V=l("dash-board-card");return f(),c(V,{color:"primary"},{headerLeft:t(()=>e[0]||(e[0]=[n(" Status ")])),default:t(()=>[o(v,null,{default:t(()=>[o(q,null,{default:t(()=>[o(d,null,{default:t(()=>[o(a,null,{default:t(()=>[o(_,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}),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}),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}),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}),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}),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}),h.changesLocked?C("",!0):(f(),c(d,{key:0,class:"_margin-top:5",between:""},{default:t(()=>[o(a,null,{default:t(()=>[o(g,{block:""})]),_:1})]),_:1})),h.changesLocked?C("",!0):(f(),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(B,{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-BCcTh2Tv.js b/packages/modules/display_themes/cards/web/assets/index-nI_NVV5B.js similarity index 95% rename from packages/modules/display_themes/cards/web/assets/index-BCcTh2Tv.js rename to packages/modules/display_themes/cards/web/assets/index-nI_NVV5B.js index 29a2e44aae..2d3f885c16 100644 --- a/packages/modules/display_themes/cards/web/assets/index-BCcTh2Tv.js +++ b/packages/modules/display_themes/cards/web/assets/index-nI_NVV5B.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashBoardView-K8In7LJT.js","assets/DashBoardCard-BqIRnhnk.js","assets/vendor-inkline-CqnuQ_Go.js","assets/vendor-CFVb6_YQ.js","assets/vendor-inkline-BxOXWZNy.css","assets/DashBoardCard-Bl80pQ9w.css","assets/ChargePointPlugBadge-D7ai0q3I.js","assets/vendor-fortawesome-DhL64LM6.js","assets/ChargePointPlugBadge-HWp2u3dG.css","assets/DashBoardView-CZvLtoU0.css","assets/EnergyFlowView-BRDVZpdF.js","assets/EnergyFlowView-CMZu-SNR.css","assets/ChargePointsView-go1OQl3F.js","assets/ChargePointsView-ALIhGmhe.css","assets/StatusView-BneXgLoT.js"])))=>i.map(i=>d[i]); -import{o as p,e as P,k as f,x as k,f as B,j as W,F as T,H as F,q as d,l as C,n as c,i as y,A as I,s as l,I as E,y as A,R as H,J as R,K as U,L as z,M as G,N as K}from"./vendor-CFVb6_YQ.js";import{_ as b,I as J,c as Y}from"./vendor-inkline-CqnuQ_Go.js";import{l as $,f as L,a as q,F as O,b as Z,c as Q}from"./vendor-fortawesome-DhL64LM6.js";(function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const n of document.querySelectorAll('link[rel="modulepreload"]'))t(n);new MutationObserver(n=>{for(const a of n)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&t(i)}).observe(document,{childList:!0,subtree:!0})}function t(n){if(n.ep)return;n.ep=!0;const a=function(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}(n);fetch(n.href,a)}})();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,n,a,i,o){return p(),P(T,null,[f(k(i.time),1),B(e.$slots,"default",{},()=>[t[0]||(t[0]=W("br",null,null,-1))]),f(k(i.date),1)],64)}]]),w=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,n=!1)=>{let a=t;n||(a="^"+t.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let i=Object.keys(e.topics).filter(o=>o.match(a));return i.forEach((o,r,s)=>{s[r]=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),i},getWildcardTopics:e=>(t,n=!1)=>{let a=t;return n||(a="^"+t.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(e.topics).filter(i=>i.match(a)).reduce((i,o)=>({...i,[o]:e.topics[o]}),{})},getObjectIds:e=>t=>function n(a){let i=[];return a!==void 0&&a.forEach(o=>{o.type==t&&i.push(o.id),i=[...i,...n(o.children)]}),i}(e.topics["openWB/counter/get/hierarchy"]),getValueBool:e=>(t,n=!1)=>{let a=e.topics[t];return a!==void 0?a:n},getValueString:e=>(t,n="W",a="",i=!0,o=!1,r="---",s=void 0)=>{var h=!1,g=e.topics[t];if(g===void 0||s!==void 0&&g[s]===void 0)m=r;else{s!==void 0&&(g=g[s]),o&&(g*=-1);for(var m=g.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0}),u=g;i&&(u>999||u<-999);)switch(u/=1e3,h=!0,a){case"":a="k";break;case"k":a="M";break;case"M":a="G"}m=u.toLocaleString(void 0,{minimumFractionDigits:h?2:0,maximumFractionDigits:h?2:0})}return{textValue:`${m} ${a}${n}`,value:g,unit:n,scaledValue:u,scaledUnit:`${a}${n}`}},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},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 n=Object.keys(e.topics["openWB/counter/get/hierarchy"])[0];if(e.topics["openWB/counter/get/hierarchy"][n].type=="counter")return e.topics["openWB/counter/get/hierarchy"][n].id}},getGridPower:e=>(t="textValue")=>{let n=e.getGridId;if(n===void 0)return"---";let a=e.getValueString(`openWB/counter/${n}/get/power`,"W");return Object.hasOwnProperty.call(a,t)?a[t]:t=="object"?a:void 0},getGridPowerChartData(e){let t=e.getGridId;return t===void 0?[]:e.getChartData(`openWB/counter/${t}/get/power`)},getHomePower:e=>(t="textValue")=>{let n=e.getValueString("openWB/counter/set/home_consumption","W");return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getHomePowerChartData:e=>e.getChartData("openWB/counter/set/home_consumption"),getBatteryConfigured:e=>e.getValueBool("openWB/bat/config/configured"),getBatteryPower:e=>(t="textValue")=>{let n=e.getValueString("openWB/bat/get/power","W");return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getBatteryPowerChartData:e=>e.getChartData("openWB/bat/get/power"),getBatterySoc:e=>(t="textValue")=>{let n=e.getValueString("openWB/bat/get/soc","%","",!1);return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getBatterySocChartData:e=>e.getChartData("openWB/bat/get/soc"),getPvConfigured:e=>e.getValueBool("openWB/pv/config/configured"),getPvPower:e=>(t="textValue")=>{var n=e.getValueString("openWB/pv/get/power","W","",!0,!0);return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getPvPowerChartData:e=>e.getChartData("openWB/pv/get/power").map(t=>-1*t),getChargePointSumPower:e=>(t="textValue")=>{var n=e.getValueString("openWB/chargepoint/get/power","W");return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getChargePointSumPowerChartData:e=>e.getChartData("openWB/chargepoint/get/power"),getChargePointIds(e){let t=e.getObjectIds("cp"),n=this.getChargePointFilter;return n.length>0?t.filter(a=>n.includes(a)):t},getChargePointName:e=>t=>e.topics[`openWB/chargepoint/${t}/config`]!==void 0?e.topics[`openWB/chargepoint/${t}/config`].name:"---",getChargePointPower:e=>(t,n="textValue")=>{var a=e.getValueString(`openWB/chargepoint/${t}/get/power`,"W");return Object.hasOwnProperty.call(a,n)?a[n]:n=="object"?a: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,n="textValue")=>{let a=e.getValueString(`openWB/chargepoint/${t}/set/current`,"A");return Object.hasOwnProperty.call(a,n)?a[n]:n=="object"?a:void 0},getChargePointPhasesInUse:e=>t=>{const n=["/","①","②","③"],a=e.topics[`openWB/chargepoint/${t}/get/phases_in_use`];return a!==void 0&&a>=0&&at=>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=>{let n=e.getChargePointConnectedVehicleChargeTemplateIndex(t);return e.topics[`openWB/vehicle/template/charge_template/${n}`]},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 n=e.getChargePointConnectedVehicleConfig(t).time_charging_in_use;return n!==void 0&&n},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},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},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},getChargePointConnectedVehiclePvChargingMaxSoc:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.max_soc},getChargePointConnectedVehicleScheduledChargingPlans:e=>t=>{let n=e.getChargePointConnectedVehicleChargeTemplateIndex(t);return e.getWildcardTopics(`openWB/vehicle/template/charge_template/${n}/chargemode/scheduled_charging/plans/+`)},getChargePointConnectedVehicleTimeChargingPlans:e=>t=>{let n=e.getChargePointConnectedVehicleChargeTemplateIndex(t);return e.getWildcardTopics(`openWB/vehicle/template/charge_template/${n}/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")}},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,n=void 0){var a,i,o;e in this.topics&&(n!=null?(a=this.topics[e],o=t,(i=n).split(".").reduce((r,s,h)=>r[s]=i.split(".").length===++h?o:r[s]||{},a)):this.topics[e]=t)},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,n=void 0){this.updateTopic(e,t,n)},chargeModeList(){var e=[{id:"instant_charging"},{id:"pv_charging"},{id:"scheduled_charging"},{id:"standby"},{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:"Zielladen",class:"primary"};case"time_charging":return{mode:e,label:"Zeitladen",class:"warning"};case"standby":return{mode:e,label:"Standby",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 n={year:"numeric",month:"2-digit",day:"2-digit"};let a={day:"2-digit"};const i=new Date(e[0]),o=new Date(e[1]);return i.getFullYear()==o.getFullYear()?i.getMonth()!=o.getMonth()&&(a.month=n.month):a=n,`${this.formatDate(e[0],a)}${t}${this.formatDate(e[1],n)}`},formatWeeklyScheduleDays(e){const t=["Mo","Di","Mi","Do","Fr","Sa","So"];let n=[];return e.forEach(function(a,i){a==1&&n.push(t[i])}),n.join(",")}}}),ee=b({name:"NavBar",components:{NavItem:b({name:"NavItem",props:{to:{type:Object,required:!0}}},[["render",function(e,t,n,a,i,o){const r=d("i-nav-item");return p(),C(r,{to:n.to,"active-class":"-active",class:"_border _border-color:primary _text-align:center"},{default:c(()=>[B(e.$slots,"default",{},void 0,!0)]),_:3},8,["to"])}],["__scopeId","data-v-1db6ae73"]])},data:()=>({mqttStore:w()})},[["render",function(e,t,n,a,i,o){const r=d("nav-item"),s=d("i-nav");return p(),C(s,{vertical:"",class:"_align-items:stretch",size:"lg"},{default:c(()=>[i.mqttStore.getDashBoardEnabled?(p(),C(r,{key:0,to:{name:"dash-board"}},{default:c(()=>t[0]||(t[0]=[f(" Übersicht ")])),_:1})):y("",!0),i.mqttStore.getEnergyFlowEnabled?(p(),C(r,{key:1,to:{name:"energy-flow"}},{default:c(()=>t[1]||(t[1]=[f(" Energiefluss ")])),_:1})):y("",!0),i.mqttStore.getChargePointsEnabled&&i.mqttStore.getChargePointIds.length>0?(p(),C(r,{key:2,to:{name:"charge-points"}},{default:c(()=>t[2]||(t[2]=[f(" Ladepunkte ")])),_:1})):y("",!0),i.mqttStore.getStateEnabled?(p(),C(r,{key:3,to:{name:"status"}},{default:c(()=>t[3]||(t[3]=[f(" Status ")])),_:1})):y("",!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,n,a,i,o){const r=d("i-button"),s=d("i-column"),h=d("i-row"),g=d("FontAwesomeIcon"),m=d("i-container");return p(),C(m,null,{default:c(()=>[(p(!0),P(T,null,I(i.buttonRows,u=>(p(),C(h,{key:u,center:"",class:"_padding-bottom:1"},{default:c(()=>[(p(!0),P(T,null,I(u,_=>(p(),C(s,{key:_.value,class:"pin-button-column"},{default:c(()=>[l(r,{size:"lg",class:"pin-button",onClick:v=>o.emitDigit(_.value)},{default:c(()=>[f(k(_.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:2},1024))),128)),l(h,{center:""},{default:c(()=>[l(s,{class:"pin-button-column"},{default:c(()=>[l(r,{size:"lg",class:"pin-button",onClick:t[0]||(t[0]=u=>o.emitClear())},{default:c(()=>[l(g,{"fixed-width":"",icon:["fas","fa-eraser"]})]),_:1})]),_:1}),l(s,{class:"pin-button-column"},{default:c(()=>[l(r,{size:"lg",class:"pin-button",onClick:t[1]||(t[1]=u=>o.emitDigit("0"))},{default:c(()=>t[3]||(t[3]=[f(" 0 ")])),_:1})]),_:1}),l(s,{class:"pin-button-column"},{default:c(()=>[l(r,{size:"lg",class:"pin-button",onClick:t[2]||(t[2]=u=>o.emitDelete())},{default:c(()=>[l(g,{"fixed-width":"",icon:["fas","fa-delete-left"]})]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-4e2103db"]]),ne=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,n,a,i,o){const r=d("i-input"),s=d("i-column"),h=d("i-row"),g=d("NumberPad"),m=d("i-container"),u=d("i-button"),_=d("i-modal");return p(),C(E,{to:"body"},[l(_,{"model-value":n.modelValue,color:i.modalBackground,"onUpdate:modelValue":t[4]||(t[4]=v=>e.$emit("update:modelValue",v))},{header:c(()=>[B(e.$slots,"header",{},()=>[t[5]||(t[5]=f(" **HEADER** "))])]),footer:c(()=>[l(m,null,{default:c(()=>[l(h,null,{default:c(()=>[l(s,null,{default:c(()=>[l(u,{color:"danger",onClick:o.abort},{default:c(()=>[B(e.$slots,"abort",{},()=>[t[6]||(t[6]=f(" Zurück "))])]),_:3},8,["onClick"])]),_:3}),l(s,{class:"_text-align:right"},{default:c(()=>[o.enableSubmit?(p(),C(u,{key:0,color:"success",onClick:o.submit},{default:c(()=>[B(e.$slots,"submit",{},()=>[t[7]||(t[7]=f(" OK "))])]),_:3},8,["onClick"])):y("",!0)]),_:3})]),_:3})]),_:3})]),default:c(()=>[l(m,null,{default:c(()=>[l(h,{center:"",class:"_padding-bottom:1"},{default:c(()=>[l(s,null,{default:c(()=>[l(r,{modelValue:i.number,"onUpdate:modelValue":t[0]||(t[0]=v=>i.number=v),placeholder:o.placeholder,readonly:"",size:"lg",type:n.inputVisible?"text":"password",class:"_text-align:center"},null,8,["modelValue","placeholder","type"])]),_:1})]),_:1}),l(g,{"onKey:digit":t[1]||(t[1]=v=>o.addDigit(v)),"onKey:clear":t[2]||(t[2]=v=>o.clear()),"onKey:delete":t[3]||(t[3]=v=>o.removeDigit(v))})]),_:1})]),_:3},8,["model-value","color"])])}]]);$.add(Z,Q,L,q);const oe={key:0,class:"_padding-left:1"},x="/openWB/web/display/themes/cards/openWB_logo_dark.png",ae=b({name:"OpenwbDisplayCardsApp",components:{RouterView:H,DateTime:X,NavBar:ee,LockNavItem:b({name:"LockNavItem",components:{FontAwesomeIcon:O,CodeInputModal:ne},props:{},data:()=>({mqttStore:w(),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,n,a,i,o){const r=d("FontAwesomeIcon"),s=d("i-button"),h=d("CodeInputModal");return p(),P(T,null,[i.mqttStore.getLockChanges?(p(),C(s,{key:0,class:"_padding-left:0 _padding-right:0 _margin-bottom:1",size:"lg",block:"",color:o.changesLocked?"danger":"success",onClick:t[0]||(t[0]=g=>o.toggleChangesLock())},{default:c(()=>[l(r,{"fixed-width":"",icon:o.changesLocked?["fas","fa-lock"]:["fas","fa-lock-open"],class:A(o.changesLocked?"_color:danger-80":"_color:success-80")},null,8,["icon","class"]),!o.changesLocked&&i.countdownInterval?(p(),P("span",oe,k(o.timer),1)):y("",!0)]),_:1},8,["color"])):y("",!0),l(h,{ref:"lockInput",modelValue:i.modalPinEntryVisible,"onUpdate:modelValue":t[1]||(t[1]=g=>i.modalPinEntryVisible=g),"min-length":4,"max-length":10,"onUpdate:inputValue":o.checkUnlockCode},{header:c(()=>t[2]||(t[2]=[f(" Bitte den PIN zur Freigabe von Änderungen eingeben. ")])),_:1},8,["modelValue","onUpdate:inputValue"])],64)}]]),TouchBlocker:b({name:"TouchBlocker",data:()=>({mqttStore:w(),show:!1,countdown:void 0,countdownInterval: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},touchBlockerTimeout(){return Math.max(this.configuredDisplayStandby-3,1)}},mounted(){this.setupEventHandler(),this.setupTimeout()},unmounted(){this.clearEventHandler(),this.clearTimeout()},methods:{handleTouchBlockerClick(e){e===!1&&(this.show=!1,this.setupEventHandler(),this.setupTimeout())},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)},setupTimeout(){this.countdownInterval===void 0&&(this.countdownInterval=setInterval(this.updateCountdown,1e3))},clearTimeout(){this.countdownInterval!==void 0&&(clearInterval(this.countdownInterval),this.countdownInterval=void 0)},updateCountdown(){this.countdown===void 0?this.countdown=this.touchBlockerTimeout:(this.countdown-=1,this.countdown<1&&this.showTouchBlocker())},handleDocumentEvent(){this.countdown=this.touchBlockerTimeout,this.show=!1},showTouchBlocker(){this.show=!0,this.clearTimeout()}}},[["render",function(e,t,n,a,i,o){const r=d("IModal");return p(),C(E,{to:"body"},[l(r,{class:"touch-blocker",size:"sm",color:"dark","model-value":i.show,"onUpdate:modelValue":t[0]||(t[0]=s=>o.handleTouchBlockerClick(s))},{default:c(()=>t[1]||(t[1]=[W("img",{class:"logo",src:x},null,-1),W("p",null," Bitte das Display berühren. ",-1)])),_:1},8,["model-value"])])}],["__scopeId","data-v-e4e632d4"]])},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/+/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/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","openWB/vehicle/template/charge_template/#"],mqttStore:w(),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 a=new URLSearchParams(e);if(a.has("data")){let i=JSON.parse(a.get("data"));Object.entries(i).forEach(([o,r])=>{o.startsWith("parentChargePoint")?this.mqttStore.updateSetting(o,parseInt(r)):this.mqttStore.updateSetting(o,r)})}}this.doSubscribe(this.mqttTopicsToSubscribe),this.chartInterval=setInterval(this.mqttStore.updateChartData,5e3);const t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()+1,0,0,0,0).getTime()-t.getTime();this.clearConsoleHandler=setTimeout(()=>this.clearConsole(),n)},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:n,endpoint:a,...i}=this.connection,o=`${e}://${t}:${n}${a}`;try{this.client=R.connect(o,i)}catch{}this.client.on("connect",()=>{}),this.client.on("error",r=>{}),this.client.on("message",(r,s)=>{if(s.toString().length>0){let h;try{h=JSON.parse(s.toString())}catch{h=s.toString()}this.mqttStore.addTopic(r,h)}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,n=!0,a=2){let i={qos:a,retain:n};this.client.publish(e,JSON.stringify(t),i,o=>{})},sendTopicToBroker(e,t=void 0){let n=e.replace("openWB/","openWB/set/");t===void 0&&(t=this.mqttStore.topics[e]),this.doPublish(n,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,n,a,i,o){const r=d("DateTime"),s=d("i-column"),h=d("i-row"),g=d("i-container"),m=d("LockNavItem"),u=d("NavBar"),_=d("TouchBlocker"),v=d("i-layout-aside"),j=d("RouterView"),M=d("i-layout-content"),N=d("i-layout");return p(),C(N,{vertical:""},{default:c(()=>[l(v,{class:"_position:fixed"},{default:c(()=>[l(g,{fluid:"",class:"_margin-bottom:1"},{default:c(()=>[l(h,{center:""},{default:c(()=>[l(s,null,{default:c(()=>[l(r)]),_:1})]),_:1})]),_:1}),l(m),l(u,{"changes-locked":o.changesLocked},null,8,["changes-locked"]),l(_)]),_:1}),l(M,null,{default:c(()=>[l(j,{"changes-locked":o.changesLocked},null,8,["changes-locked"])]),_:1})]),_:1})}],["__scopeId","data-v-6804b914"]]),D={},S=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),r=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));a=Promise.allSettled(t.map(s=>{if((s=function(u){return"/openWB/web/display/themes/cards/"+u}(s))in D)return;D[s]=!0;const h=s.endsWith(".css"),g=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${g}`))return;const m=document.createElement("link");return m.rel=h?"stylesheet":"modulepreload",h||(m.as="script"),m.crossOrigin="",m.href=s,r&&m.setAttribute("nonce",r),document.head.appendChild(m),h?new Promise((u,_)=>{m.addEventListener("load",u),m.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${s}`)))}):void 0}))}function i(o){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=o,window.dispatchEvent(r),!r.defaultPrevented)throw o}return a.then(o=>{for(const r of o||[])r.status==="rejected"&&i(r.reason);return e().catch(i)})},ie=b({name:"WelcomeView",data:()=>({mqttStore:w()}),computed:{firstView(){if(this.mqttStore.getThemeConfiguration){if(this.mqttStore.getThemeConfiguration.enable_dashboard_view)return"dash-board";if(this.mqttStore.getThemeConfiguration.enable_energy_flow_view)return"energy-flow";if(this.mqttStore.getThemeConfiguration.enable_charge_points_view)return"charge-points";if(this.mqttStore.getThemeConfiguration.enable_status_view)return"status"}}},mounted(){setTimeout(this.selectFirstRoute,3e3)},methods:{selectFirstRoute(){this.firstView&&this.$router.push({name:this.firstView})}}},[["render",function(e,t,n,a,i,o){const r=d("i-card"),s=d("i-column"),h=d("i-row"),g=d("i-container");return p(),C(g,null,{default:c(()=>[l(h,{center:"",middle:""},{default:c(()=>[l(s,null,{default:c(()=>[l(r,{color:"primary"},{header:c(()=>t[0]||(t[0]=[f(" Cards Theme ")])),default:c(()=>[t[1]||(t[1]=W("img",{class:"logo",src:x},null,-1))]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-16686e30"]]),re=U({history:z("/openWB/web/display/themes/cards/"),routes:[{path:"/",name:"welcome",component:ie},{path:"/DashBoard",name:"dash-board",component:()=>S(()=>import("./DashBoardView-K8In7LJT.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))},{path:"/EnergyFlow",name:"energy-flow",component:()=>S(()=>import("./EnergyFlowView-BRDVZpdF.js"),__vite__mapDeps([10,1,2,3,4,5,7,11]))},{path:"/ChargePoints",name:"charge-points",component:()=>S(()=>import("./ChargePointsView-go1OQl3F.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,13]))},{path:"/Status",name:"status",component:()=>S(()=>import("./StatusView-BneXgLoT.js"),__vite__mapDeps([14,7,3,2,4,1,5]))}]}),V=G(ae);V.use(K()),V.use(re),V.use(J,{colorMode:"dark",components:Y}),V.mount("#app");export{ne as C,te as N,w as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashBoardView-BvptEyMO.js","assets/DashBoardCard-DJZ2GsC-.js","assets/vendor-inkline-C_NPDnDu.js","assets/vendor-BMrK3KHF.js","assets/vendor-inkline-BxOXWZNy.css","assets/DashBoardCard-Bl80pQ9w.css","assets/ChargePointPlugBadge-bP9BlN1o.js","assets/vendor-fortawesome-CpQlJZ13.js","assets/ChargePointPlugBadge-HWp2u3dG.css","assets/DashBoardView-CZvLtoU0.css","assets/EnergyFlowView-D3Xr79nb.js","assets/EnergyFlowView-CMZu-SNR.css","assets/ChargePointsView-DAOuhP6h.js","assets/ChargePointsView-ALIhGmhe.css","assets/StatusView-rjhbJP_1.js"])))=>i.map(i=>d[i]); +import{e as P,k as f,j as B,x as k,F as W,o as p,i as T,H as F,l as C,q as c,p as d,f as y,s as l,A as I,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-BMrK3KHF.js";import{_ as b,I as J,c as Y}from"./vendor-inkline-C_NPDnDu.js";import{l as $,f as L,a as q,F as O,b as Z,c as Q}from"./vendor-fortawesome-CpQlJZ13.js";(function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const n of document.querySelectorAll('link[rel="modulepreload"]'))t(n);new MutationObserver(n=>{for(const a of n)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&t(i)}).observe(document,{childList:!0,subtree:!0})}function t(n){if(n.ep)return;n.ep=!0;const a=function(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}(n);fetch(n.href,a)}})();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,n,a,i,o){return p(),P(W,null,[f(k(i.time),1),B(e.$slots,"default",{},()=>[t[0]||(t[0]=T("br",null,null,-1))]),f(k(i.date),1)],64)}]]),w=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,n=!1)=>{let a=t;n||(a="^"+t.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let i=Object.keys(e.topics).filter(o=>o.match(a));return i.forEach((o,r,s)=>{s[r]=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),i},getWildcardTopics:e=>(t,n=!1)=>{let a=t;return n||(a="^"+t.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(e.topics).filter(i=>i.match(a)).reduce((i,o)=>({...i,[o]:e.topics[o]}),{})},getObjectIds:e=>t=>function n(a){let i=[];return a!==void 0&&a.forEach(o=>{o.type==t&&i.push(o.id),i=[...i,...n(o.children)]}),i}(e.topics["openWB/counter/get/hierarchy"]),getValueBool:e=>(t,n=!1)=>{let a=e.topics[t];return a!==void 0?a:n},getValueString:e=>(t,n="W",a="",i=!0,o=!1,r="---",s=void 0)=>{var h=!1,g=e.topics[t];if(g===void 0||s!==void 0&&g[s]===void 0)m=r;else{s!==void 0&&(g=g[s]),o&&(g*=-1);for(var m=g.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0}),u=g;i&&(u>999||u<-999);)switch(u/=1e3,h=!0,a){case"":a="k";break;case"k":a="M";break;case"M":a="G"}m=u.toLocaleString(void 0,{minimumFractionDigits:h?2:0,maximumFractionDigits:h?2:0})}return{textValue:`${m} ${a}${n}`,value:g,unit:n,scaledValue:u,scaledUnit:`${a}${n}`}},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},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 n=Object.keys(e.topics["openWB/counter/get/hierarchy"])[0];if(e.topics["openWB/counter/get/hierarchy"][n].type=="counter")return e.topics["openWB/counter/get/hierarchy"][n].id}},getGridPower:e=>(t="textValue")=>{let n=e.getGridId;if(n===void 0)return"---";let a=e.getValueString(`openWB/counter/${n}/get/power`,"W");return Object.hasOwnProperty.call(a,t)?a[t]:t=="object"?a:void 0},getGridPowerChartData(e){let t=e.getGridId;return t===void 0?[]:e.getChartData(`openWB/counter/${t}/get/power`)},getHomePower:e=>(t="textValue")=>{let n=e.getValueString("openWB/counter/set/home_consumption","W");return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getHomePowerChartData:e=>e.getChartData("openWB/counter/set/home_consumption"),getBatteryConfigured:e=>e.getValueBool("openWB/bat/config/configured"),getBatteryPower:e=>(t="textValue")=>{let n=e.getValueString("openWB/bat/get/power","W");return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getBatteryPowerChartData:e=>e.getChartData("openWB/bat/get/power"),getBatterySoc:e=>(t="textValue")=>{let n=e.getValueString("openWB/bat/get/soc","%","",!1);return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getBatterySocChartData:e=>e.getChartData("openWB/bat/get/soc"),getPvConfigured:e=>e.getValueBool("openWB/pv/config/configured"),getPvPower:e=>(t="textValue")=>{var n=e.getValueString("openWB/pv/get/power","W","",!0,!0);return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getPvPowerChartData:e=>e.getChartData("openWB/pv/get/power").map(t=>-1*t),getChargePointSumPower:e=>(t="textValue")=>{var n=e.getValueString("openWB/chargepoint/get/power","W");return Object.hasOwnProperty.call(n,t)?n[t]:t=="object"?n:void 0},getChargePointSumPowerChartData:e=>e.getChartData("openWB/chargepoint/get/power"),getChargePointIds(e){let t=e.getObjectIds("cp"),n=this.getChargePointFilter;return n.length>0?t.filter(a=>n.includes(a)):t},getChargePointName:e=>t=>e.topics[`openWB/chargepoint/${t}/config`]!==void 0?e.topics[`openWB/chargepoint/${t}/config`].name:"---",getChargePointPower:e=>(t,n="textValue")=>{var a=e.getValueString(`openWB/chargepoint/${t}/get/power`,"W");return Object.hasOwnProperty.call(a,n)?a[n]:n=="object"?a: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,n="textValue")=>{let a=e.getValueString(`openWB/chargepoint/${t}/set/current`,"A");return Object.hasOwnProperty.call(a,n)?a[n]:n=="object"?a:void 0},getChargePointPhasesInUse:e=>t=>{const n=["/","①","②","③"],a=e.topics[`openWB/chargepoint/${t}/get/phases_in_use`];return a!==void 0&&a>=0&&at=>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=>{let n=e.getChargePointConnectedVehicleChargeTemplateIndex(t);return e.topics[`openWB/vehicle/template/charge_template/${n}`]},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 n=e.getChargePointConnectedVehicleConfig(t).time_charging_in_use;return n!==void 0&&n},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},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},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},getChargePointConnectedVehiclePvChargingMaxSoc:e=>t=>{if(e.getChargePointConnectedVehicleChargeTemplate(t))return e.getChargePointConnectedVehicleChargeTemplate(t).chargemode.pv_charging.max_soc},getChargePointConnectedVehicleScheduledChargingPlans:e=>t=>{let n=e.getChargePointConnectedVehicleChargeTemplateIndex(t);return e.getWildcardTopics(`openWB/vehicle/template/charge_template/${n}/chargemode/scheduled_charging/plans/+`)},getChargePointConnectedVehicleTimeChargingPlans:e=>t=>{let n=e.getChargePointConnectedVehicleChargeTemplateIndex(t);return e.getWildcardTopics(`openWB/vehicle/template/charge_template/${n}/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")}},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,n=void 0){var a,i,o;e in this.topics&&(n!=null?(a=this.topics[e],o=t,(i=n).split(".").reduce((r,s,h)=>r[s]=i.split(".").length===++h?o:r[s]||{},a)):this.topics[e]=t)},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,n=void 0){this.updateTopic(e,t,n)},chargeModeList(){var e=[{id:"instant_charging"},{id:"pv_charging"},{id:"scheduled_charging"},{id:"standby"},{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:"Zielladen",class:"primary"};case"time_charging":return{mode:e,label:"Zeitladen",class:"warning"};case"standby":return{mode:e,label:"Standby",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 n={year:"numeric",month:"2-digit",day:"2-digit"};let a={day:"2-digit"};const i=new Date(e[0]),o=new Date(e[1]);return i.getFullYear()==o.getFullYear()?i.getMonth()!=o.getMonth()&&(a.month=n.month):a=n,`${this.formatDate(e[0],a)}${t}${this.formatDate(e[1],n)}`},formatWeeklyScheduleDays(e){const t=["Mo","Di","Mi","Do","Fr","Sa","So"];let n=[];return e.forEach(function(a,i){a==1&&n.push(t[i])}),n.join(",")}}}),ee=b({name:"NavBar",components:{NavItem:b({name:"NavItem",props:{to:{type:Object,required:!0}}},[["render",function(e,t,n,a,i,o){const r=d("i-nav-item");return p(),C(r,{to:n.to,"active-class":"-active",class:"_border _border-color:primary _text-align:center"},{default:c(()=>[B(e.$slots,"default",{},void 0,!0)]),_:3},8,["to"])}],["__scopeId","data-v-1db6ae73"]])},data:()=>({mqttStore:w()})},[["render",function(e,t,n,a,i,o){const r=d("nav-item"),s=d("i-nav");return p(),C(s,{vertical:"",class:"_align-items:stretch",size:"lg"},{default:c(()=>[i.mqttStore.getDashBoardEnabled?(p(),C(r,{key:0,to:{name:"dash-board"}},{default:c(()=>t[0]||(t[0]=[f(" Übersicht ")])),_:1})):y("",!0),i.mqttStore.getEnergyFlowEnabled?(p(),C(r,{key:1,to:{name:"energy-flow"}},{default:c(()=>t[1]||(t[1]=[f(" Energiefluss ")])),_:1})):y("",!0),i.mqttStore.getChargePointsEnabled&&i.mqttStore.getChargePointIds.length>0?(p(),C(r,{key:2,to:{name:"charge-points"}},{default:c(()=>t[2]||(t[2]=[f(" Ladepunkte ")])),_:1})):y("",!0),i.mqttStore.getStateEnabled?(p(),C(r,{key:3,to:{name:"status"}},{default:c(()=>t[3]||(t[3]=[f(" Status ")])),_:1})):y("",!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,n,a,i,o){const r=d("i-button"),s=d("i-column"),h=d("i-row"),g=d("FontAwesomeIcon"),m=d("i-container");return p(),C(m,null,{default:c(()=>[(p(!0),P(W,null,I(i.buttonRows,u=>(p(),C(h,{key:u,center:"",class:"_padding-bottom:1"},{default:c(()=>[(p(!0),P(W,null,I(u,_=>(p(),C(s,{key:_.value,class:"pin-button-column"},{default:c(()=>[l(r,{size:"lg",class:"pin-button",onClick:v=>o.emitDigit(_.value)},{default:c(()=>[f(k(_.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:2},1024))),128)),l(h,{center:""},{default:c(()=>[l(s,{class:"pin-button-column"},{default:c(()=>[l(r,{size:"lg",class:"pin-button",onClick:t[0]||(t[0]=u=>o.emitClear())},{default:c(()=>[l(g,{"fixed-width":"",icon:["fas","fa-eraser"]})]),_:1})]),_:1}),l(s,{class:"pin-button-column"},{default:c(()=>[l(r,{size:"lg",class:"pin-button",onClick:t[1]||(t[1]=u=>o.emitDigit("0"))},{default:c(()=>t[3]||(t[3]=[f(" 0 ")])),_:1})]),_:1}),l(s,{class:"pin-button-column"},{default:c(()=>[l(r,{size:"lg",class:"pin-button",onClick:t[2]||(t[2]=u=>o.emitDelete())},{default:c(()=>[l(g,{"fixed-width":"",icon:["fas","fa-delete-left"]})]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-4e2103db"]]),ne=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,n,a,i,o){const r=d("i-input"),s=d("i-column"),h=d("i-row"),g=d("NumberPad"),m=d("i-container"),u=d("i-button"),_=d("i-modal");return p(),C(E,{to:"body"},[l(_,{"model-value":n.modelValue,color:i.modalBackground,"onUpdate:modelValue":t[4]||(t[4]=v=>e.$emit("update:modelValue",v))},{header:c(()=>[B(e.$slots,"header",{},()=>[t[5]||(t[5]=f(" **HEADER** "))])]),footer:c(()=>[l(m,null,{default:c(()=>[l(h,null,{default:c(()=>[l(s,null,{default:c(()=>[l(u,{color:"danger",onClick:o.abort},{default:c(()=>[B(e.$slots,"abort",{},()=>[t[6]||(t[6]=f(" Zurück "))])]),_:3},8,["onClick"])]),_:3}),l(s,{class:"_text-align:right"},{default:c(()=>[o.enableSubmit?(p(),C(u,{key:0,color:"success",onClick:o.submit},{default:c(()=>[B(e.$slots,"submit",{},()=>[t[7]||(t[7]=f(" OK "))])]),_:3},8,["onClick"])):y("",!0)]),_:3})]),_:3})]),_:3})]),default:c(()=>[l(m,null,{default:c(()=>[l(h,{center:"",class:"_padding-bottom:1"},{default:c(()=>[l(s,null,{default:c(()=>[l(r,{modelValue:i.number,"onUpdate:modelValue":t[0]||(t[0]=v=>i.number=v),placeholder:o.placeholder,readonly:"",size:"lg",type:n.inputVisible?"text":"password",class:"_text-align:center"},null,8,["modelValue","placeholder","type"])]),_:1})]),_:1}),l(g,{"onKey:digit":t[1]||(t[1]=v=>o.addDigit(v)),"onKey:clear":t[2]||(t[2]=v=>o.clear()),"onKey:delete":t[3]||(t[3]=v=>o.removeDigit(v))})]),_:1})]),_:3},8,["model-value","color"])])}]]);$.add(Z,Q,L,q);const oe={key:0,class:"_padding-left:1"},x="/openWB/web/display/themes/cards/openWB_logo_dark.png",ae=b({name:"OpenwbDisplayCardsApp",components:{RouterView:H,DateTime:X,NavBar:ee,LockNavItem:b({name:"LockNavItem",components:{FontAwesomeIcon:O,CodeInputModal:ne},props:{},data:()=>({mqttStore:w(),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,n,a,i,o){const r=d("FontAwesomeIcon"),s=d("i-button"),h=d("CodeInputModal");return p(),P(W,null,[i.mqttStore.getLockChanges?(p(),C(s,{key:0,class:"_padding-left:0 _padding-right:0 _margin-bottom:1",size:"lg",block:"",color:o.changesLocked?"danger":"success",onClick:t[0]||(t[0]=g=>o.toggleChangesLock())},{default:c(()=>[l(r,{"fixed-width":"",icon:o.changesLocked?["fas","fa-lock"]:["fas","fa-lock-open"],class:A(o.changesLocked?"_color:danger-80":"_color:success-80")},null,8,["icon","class"]),!o.changesLocked&&i.countdownInterval?(p(),P("span",oe,k(o.timer),1)):y("",!0)]),_:1},8,["color"])):y("",!0),l(h,{ref:"lockInput",modelValue:i.modalPinEntryVisible,"onUpdate:modelValue":t[1]||(t[1]=g=>i.modalPinEntryVisible=g),"min-length":4,"max-length":10,"onUpdate:inputValue":o.checkUnlockCode},{header:c(()=>t[2]||(t[2]=[f(" Bitte den PIN zur Freigabe von Änderungen eingeben. ")])),_:1},8,["modelValue","onUpdate:inputValue"])],64)}]]),TouchBlocker:b({name:"TouchBlocker",data:()=>({mqttStore:w(),show:!1,countdown:void 0,countdownInterval: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},touchBlockerTimeout(){return Math.max(this.configuredDisplayStandby-3,1)}},mounted(){this.setupEventHandler(),this.setupTimeout()},unmounted(){this.clearEventHandler(),this.clearTimeout()},methods:{handleTouchBlockerClick(e){e===!1&&(this.show=!1,this.setupEventHandler(),this.setupTimeout())},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)},setupTimeout(){this.countdownInterval===void 0&&(this.countdownInterval=setInterval(this.updateCountdown,1e3))},clearTimeout(){this.countdownInterval!==void 0&&(clearInterval(this.countdownInterval),this.countdownInterval=void 0)},updateCountdown(){this.countdown===void 0?this.countdown=this.touchBlockerTimeout:(this.countdown-=1,this.countdown<1&&this.showTouchBlocker())},handleDocumentEvent(){this.countdown=this.touchBlockerTimeout,this.show=!1},showTouchBlocker(){this.show=!0,this.clearTimeout()}}},[["render",function(e,t,n,a,i,o){const r=d("IModal");return p(),C(E,{to:"body"},[l(r,{class:"touch-blocker",size:"sm",color:"dark","model-value":i.show,"onUpdate:modelValue":t[0]||(t[0]=s=>o.handleTouchBlockerClick(s))},{default:c(()=>t[1]||(t[1]=[T("img",{class:"logo",src:x},null,-1),T("p",null," Bitte das Display berühren. ",-1)])),_:1},8,["model-value"])])}],["__scopeId","data-v-e4e632d4"]])},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/+/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/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","openWB/vehicle/template/charge_template/#"],mqttStore:w(),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 a=new URLSearchParams(e);if(a.has("data")){let i=JSON.parse(a.get("data"));Object.entries(i).forEach(([o,r])=>{o.startsWith("parentChargePoint")?this.mqttStore.updateSetting(o,parseInt(r)):this.mqttStore.updateSetting(o,r)})}}this.doSubscribe(this.mqttTopicsToSubscribe),this.chartInterval=setInterval(this.mqttStore.updateChartData,5e3);const t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()+1,0,0,0,0).getTime()-t.getTime();this.clearConsoleHandler=setTimeout(()=>this.clearConsole(),n)},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:n,endpoint:a,...i}=this.connection,o=`${e}://${t}:${n}${a}`;try{this.client=R.connect(o,i)}catch{}this.client.on("connect",()=>{}),this.client.on("error",r=>{}),this.client.on("message",(r,s)=>{if(s.toString().length>0){let h;try{h=JSON.parse(s.toString())}catch{h=s.toString()}this.mqttStore.addTopic(r,h)}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,n=!0,a=2){let i={qos:a,retain:n};this.client.publish(e,JSON.stringify(t),i,o=>{})},sendTopicToBroker(e,t=void 0){let n=e.replace("openWB/","openWB/set/");t===void 0&&(t=this.mqttStore.topics[e]),this.doPublish(n,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,n,a,i,o){const r=d("DateTime"),s=d("i-column"),h=d("i-row"),g=d("i-container"),m=d("LockNavItem"),u=d("NavBar"),_=d("TouchBlocker"),v=d("i-layout-aside"),j=d("RouterView"),M=d("i-layout-content"),N=d("i-layout");return p(),C(N,{vertical:""},{default:c(()=>[l(v,{class:"_position:fixed"},{default:c(()=>[l(g,{fluid:"",class:"_margin-bottom:1"},{default:c(()=>[l(h,{center:""},{default:c(()=>[l(s,null,{default:c(()=>[l(r)]),_:1})]),_:1})]),_:1}),l(m),l(u,{"changes-locked":o.changesLocked},null,8,["changes-locked"]),l(_)]),_:1}),l(M,null,{default:c(()=>[l(j,{"changes-locked":o.changesLocked},null,8,["changes-locked"])]),_:1})]),_:1})}],["__scopeId","data-v-6804b914"]]),D={},S=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),r=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));a=Promise.allSettled(t.map(s=>{if((s=function(u){return"/openWB/web/display/themes/cards/"+u}(s))in D)return;D[s]=!0;const h=s.endsWith(".css"),g=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${g}`))return;const m=document.createElement("link");return m.rel=h?"stylesheet":"modulepreload",h||(m.as="script"),m.crossOrigin="",m.href=s,r&&m.setAttribute("nonce",r),document.head.appendChild(m),h?new Promise((u,_)=>{m.addEventListener("load",u),m.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${s}`)))}):void 0}))}function i(o){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=o,window.dispatchEvent(r),!r.defaultPrevented)throw o}return a.then(o=>{for(const r of o||[])r.status==="rejected"&&i(r.reason);return e().catch(i)})},ie=b({name:"WelcomeView",data:()=>({mqttStore:w()}),computed:{firstView(){if(this.mqttStore.getThemeConfiguration){if(this.mqttStore.getThemeConfiguration.enable_dashboard_view)return"dash-board";if(this.mqttStore.getThemeConfiguration.enable_energy_flow_view)return"energy-flow";if(this.mqttStore.getThemeConfiguration.enable_charge_points_view)return"charge-points";if(this.mqttStore.getThemeConfiguration.enable_status_view)return"status"}}},mounted(){setTimeout(this.selectFirstRoute,3e3)},methods:{selectFirstRoute(){this.firstView&&this.$router.push({name:this.firstView})}}},[["render",function(e,t,n,a,i,o){const r=d("i-card"),s=d("i-column"),h=d("i-row"),g=d("i-container");return p(),C(g,null,{default:c(()=>[l(h,{center:"",middle:""},{default:c(()=>[l(s,null,{default:c(()=>[l(r,{color:"primary"},{header:c(()=>t[0]||(t[0]=[f(" Cards Theme ")])),default:c(()=>[t[1]||(t[1]=T("img",{class:"logo",src:x},null,-1))]),_:1})]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-16686e30"]]),re=U({history:z("/openWB/web/display/themes/cards/"),routes:[{path:"/",name:"welcome",component:ie},{path:"/DashBoard",name:"dash-board",component:()=>S(()=>import("./DashBoardView-BvptEyMO.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))},{path:"/EnergyFlow",name:"energy-flow",component:()=>S(()=>import("./EnergyFlowView-D3Xr79nb.js"),__vite__mapDeps([10,1,2,3,4,5,7,11]))},{path:"/ChargePoints",name:"charge-points",component:()=>S(()=>import("./ChargePointsView-DAOuhP6h.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,13]))},{path:"/Status",name:"status",component:()=>S(()=>import("./StatusView-rjhbJP_1.js"),__vite__mapDeps([14,7,3,2,4,1,5]))}]}),V=G(ae);V.use(K()),V.use(re),V.use(J,{colorMode:"dark",components:Y}),V.mount("#app");export{ne as C,te as N,w as u}; diff --git a/packages/modules/display_themes/cards/web/assets/vendor-BMrK3KHF.js b/packages/modules/display_themes/cards/web/assets/vendor-BMrK3KHF.js new file mode 100644 index 0000000000..469e50f488 --- /dev/null +++ b/packages/modules/display_themes/cards/web/assets/vendor-BMrK3KHF.js @@ -0,0 +1,29 @@ +var Dd=Object.defineProperty;var Hl=t=>{throw TypeError(t)};var Fd=(t,e,r)=>e in t?Dd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Ht=(t,e,r)=>Fd(t,typeof e!="symbol"?e+"":e,r),Do=(t,e,r)=>e.has(t)||Hl("Cannot "+r);var K=(t,e,r)=>(Do(t,e,"read from private field"),r?r.call(t):e.get(t)),Pt=(t,e,r)=>e.has(t)?Hl("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),St=(t,e,r,n)=>(Do(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Et=(t,e,r)=>(Do(t,e,"access private method"),r);var Ii=(t,e,r,n)=>({set _(l){St(t,e,l,r)},get _(){return K(t,e,n)}});const to=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{};/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function nl(t){const e=Object.create(null);for(const r of t.split(","))e[r]=1;return r=>r in e}const Ut={},kn=[],Ge=()=>{},Wd=()=>!1,bo=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),il=t=>t.startsWith("onUpdate:"),ee=Object.assign,ol=(t,e)=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)},$d=Object.prototype.hasOwnProperty,Mt=(t,e)=>$d.call(t,e),At=Array.isArray,In=t=>vo(t)==="[object Map]",Xc=t=>vo(t)==="[object Set]",It=t=>typeof t=="function",qt=t=>typeof t=="string",gr=t=>typeof t=="symbol",Wt=t=>t!==null&&typeof t=="object",Zc=t=>(Wt(t)||It(t))&&It(t.then)&&It(t.catch),th=Object.prototype.toString,vo=t=>th.call(t),eh=t=>vo(t)==="[object Object]",sl=t=>qt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Jn=nl(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),wo=t=>{const e=Object.create(null);return r=>e[r]||(e[r]=t(r))},Vd=/-(\w)/g,Ce=wo(t=>t.replace(Vd,(e,r)=>r?r.toUpperCase():"")),qd=/\B([A-Z])/g,Nr=wo(t=>t.replace(qd,"-$1").toLowerCase()),_o=wo(t=>t.charAt(0).toUpperCase()+t.slice(1)),Fo=wo(t=>t?`on${_o(t)}`:""),Pr=(t,e)=>!Object.is(t,e),Wo=(t,...e)=>{for(let r=0;r{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:r})},Hd=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let zl;const eo=()=>zl||(zl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:to!==void 0?to:{});function Eo(t){if(At(t)){const e={};for(let r=0;r{if(r){const n=r.split(Kd);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function So(t){let e="";if(qt(t))e=t;else if(At(t))for(let r=0;r!(!t||t.__v_isRef!==!0),Jd=t=>qt(t)?t:t==null?"":At(t)||Wt(t)&&(t.toString===th||!It(t.toString))?ih(t)?Jd(t.value):JSON.stringify(t,oh,2):String(t),oh=(t,e)=>ih(e)?oh(t,e.value):In(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((r,[n,l],o)=>(r[$o(n,o)+" =>"]=l,r),{})}:Xc(e)?{[`Set(${e.size})`]:[...e.values()].map(r=>$o(r))}:gr(e)?$o(e):!Wt(e)||At(e)||eh(e)?e:String(e),$o=(t,e="")=>{var r;return gr(t)?`Symbol(${(r=t.description)!=null?r:e})`:t};/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let fe,Ft;class sh{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=fe,!e&&fe&&(this.index=(fe.scopes||(fe.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,r;if(this._isPaused=!0,this.scopes)for(e=0,r=this.scopes.length;e0)return;if(Zn){let e=Zn;for(Zn=void 0;e;){const r=e.next;e.next=void 0,e.flags&=-9,e=r}}let t;for(;Xn;){let e=Xn;for(Xn=void 0;e;){const r=e.next;if(e.next=void 0,e.flags&=-9,1&e.flags)try{e.trigger()}catch(n){t||(t=n)}e=r}}if(t)throw t}function fh(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function ph(t){let e,r=t.depsTail,n=r;for(;n;){const l=n.prevDep;n.version===-1?(n===r&&(r=l),ul(n),Xd(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=l}t.deps=e,t.depsTail=r}function Os(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(dh(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function dh(t){if(4&t.flags&&!(16&t.flags)||(t.flags&=-17,t.globalVersion===ui))return;t.globalVersion=ui;const e=t.dep;if(t.flags|=2,e.version>0&&!t.isSSR&&t.deps&&!Os(t))return void(t.flags&=-3);const r=Ft,n=Ue;Ft=t,Ue=!0;try{fh(t);const l=t.fn(t._value);(e.version===0||Pr(l,t._value))&&(t._value=l,e.version++)}catch(l){throw e.version++,l}finally{Ft=r,Ue=n,ph(t),t.flags&=-3}}function ul(t,e=!1){const{dep:r,prevSub:n,nextSub:l}=t;if(n&&(n.nextSub=l,t.prevSub=void 0),l&&(l.prevSub=n,t.nextSub=void 0),r.subs===t&&(r.subs=n,!n&&r.computed)){r.computed.flags&=-5;for(let o=r.computed.deps;o;o=o.nextDep)ul(o,!0)}e||--r.sc||!r.map||r.map.delete(r.key)}function Xd(t){const{prevDep:e,nextDep:r}=t;e&&(e.nextDep=r,t.prevDep=void 0),r&&(r.prevDep=e,t.nextDep=void 0)}let Ue=!0;const gh=[];function Lr(){gh.push(Ue),Ue=!1}function jr(){const t=gh.pop();Ue=t===void 0||t}function Kl(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const r=Ft;Ft=void 0;try{e()}finally{Ft=r}}}let ui=0;class Zd{constructor(e,r){this.sub=e,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class cl{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!Ft||!Ue||Ft===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==Ft)r=this.activeLink=new Zd(Ft,this),Ft.deps?(r.prevDep=Ft.depsTail,Ft.depsTail.nextDep=r,Ft.depsTail=r):Ft.deps=Ft.depsTail=r,mh(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const n=r.nextDep;n.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=n),r.prevDep=Ft.depsTail,r.nextDep=void 0,Ft.depsTail.nextDep=r,Ft.depsTail=r,Ft.deps===r&&(Ft.deps=n)}return r}trigger(e){this.version++,ui++,this.notify(e)}notify(e){al();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{ll()}}}function mh(t){if(t.dep.sc++,4&t.sub.flags){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)mh(n)}const r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}const ro=new WeakMap,nn=Symbol(""),xs=Symbol(""),ci=Symbol("");function le(t,e,r){if(Ue&&Ft){let n=ro.get(t);n||ro.set(t,n=new Map);let l=n.get(r);l||(n.set(r,l=new cl),l.map=n,l.key=r),l.track()}}function ar(t,e,r,n,l,o){const s=ro.get(t);if(!s)return void ui++;const i=a=>{a&&a.trigger()};if(al(),e==="clear")s.forEach(i);else{const a=At(t),u=a&&sl(r);if(a&&r==="length"){const c=Number(n);s.forEach((d,f)=>{(f==="length"||f===ci||!gr(f)&&f>=c)&&i(d)})}else switch((r!==void 0||s.has(void 0))&&i(s.get(r)),u&&i(s.get(ci)),e){case"add":a?u&&i(s.get("length")):(i(s.get(nn)),In(t)&&i(s.get(xs)));break;case"delete":a||(i(s.get(nn)),In(t)&&i(s.get(xs)));break;case"set":In(t)&&i(s.get(nn))}}ll()}function mn(t){const e=Rt(t);return e===t?e:(le(e,0,ci),xe(t)?e:e.map(ue))}function Ao(t){return le(t=Rt(t),0,ci),t}const tg={__proto__:null,[Symbol.iterator](){return qo(this,Symbol.iterator,ue)},concat(...t){return mn(this).concat(...t.map(e=>At(e)?mn(e):e))},entries(){return qo(this,"entries",t=>(t[1]=ue(t[1]),t))},every(t,e){return Xe(this,"every",t,e,void 0,arguments)},filter(t,e){return Xe(this,"filter",t,e,r=>r.map(ue),arguments)},find(t,e){return Xe(this,"find",t,e,ue,arguments)},findIndex(t,e){return Xe(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Xe(this,"findLast",t,e,ue,arguments)},findLastIndex(t,e){return Xe(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Xe(this,"forEach",t,e,void 0,arguments)},includes(...t){return Ho(this,"includes",t)},indexOf(...t){return Ho(this,"indexOf",t)},join(t){return mn(this).join(t)},lastIndexOf(...t){return Ho(this,"lastIndexOf",t)},map(t,e){return Xe(this,"map",t,e,void 0,arguments)},pop(){return Dn(this,"pop")},push(...t){return Dn(this,"push",t)},reduce(t,...e){return Gl(this,"reduce",t,e)},reduceRight(t,...e){return Gl(this,"reduceRight",t,e)},shift(){return Dn(this,"shift")},some(t,e){return Xe(this,"some",t,e,void 0,arguments)},splice(...t){return Dn(this,"splice",t)},toReversed(){return mn(this).toReversed()},toSorted(t){return mn(this).toSorted(t)},toSpliced(...t){return mn(this).toSpliced(...t)},unshift(...t){return Dn(this,"unshift",t)},values(){return qo(this,"values",ue)}};function qo(t,e,r){const n=Ao(t),l=n[e]();return n===t||xe(t)||(l._next=l.next,l.next=()=>{const o=l._next();return o.value&&(o.value=r(o.value)),o}),l}const eg=Array.prototype;function Xe(t,e,r,n,l,o){const s=Ao(t),i=s!==t&&!xe(t),a=s[e];if(a!==eg[e]){const d=a.apply(t,o);return i?ue(d):d}let u=r;s!==t&&(i?u=function(d,f){return r.call(this,ue(d),f,t)}:r.length>2&&(u=function(d,f){return r.call(this,d,f,t)}));const c=a.call(s,u,n);return i&&l?l(c):c}function Gl(t,e,r,n){const l=Ao(t);let o=r;return l!==t&&(xe(t)?r.length>3&&(o=function(s,i,a){return r.call(this,s,i,a,t)}):o=function(s,i,a){return r.call(this,s,ue(i),a,t)}),l[e](o,...n)}function Ho(t,e,r){const n=Rt(t);le(n,0,ci);const l=n[e](...r);return l!==-1&&l!==!1||!pl(r[0])?l:(r[0]=Rt(r[0]),n[e](...r))}function Dn(t,e,r=[]){Lr(),al();const n=Rt(t)[e].apply(t,r);return ll(),jr(),n}const rg=nl("__proto__,__v_isRef,__isVue"),yh=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(gr));function ng(t){gr(t)||(t=String(t));const e=Rt(this);return le(e,0,t),e.hasOwnProperty(t)}class bh{constructor(e=!1,r=!1){this._isReadonly=e,this._isShallow=r}get(e,r,n){if(r==="__v_skip")return e.__v_skip;const l=this._isReadonly,o=this._isShallow;if(r==="__v_isReactive")return!l;if(r==="__v_isReadonly")return l;if(r==="__v_isShallow")return o;if(r==="__v_raw")return n===(l?o?fg:Eh:o?_h:wh).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const s=At(e);if(!l){let a;if(s&&(a=tg[r]))return a;if(r==="hasOwnProperty")return ng}const i=Reflect.get(e,r,Qt(e)?e:n);return(gr(r)?yh.has(r):rg(r))?i:(l||le(e,0,r),o?i:Qt(i)?s&&sl(r)?i:i.value:Wt(i)?l?Ah(i):wi(i):i)}}class vh extends bh{constructor(e=!1){super(!1,e)}set(e,r,n,l){let o=e[r];if(!this._isShallow){const a=cn(o);if(xe(n)||cn(n)||(o=Rt(o),n=Rt(n)),!At(e)&&Qt(o)&&!Qt(n))return!a&&(o.value=n,!0)}const s=At(e)&&sl(r)?Number(r)t,Ti=t=>Reflect.getPrototypeOf(t);function Oi(t){return function(...e){return t!=="delete"&&(t==="clear"?void 0:this)}}function lg(t,e){const r={get(n){const l=this.__v_raw,o=Rt(l),s=Rt(n);t||(Pr(n,s)&&le(o,0,n),le(o,0,s));const{has:i}=Ti(o),a=e?zo:t?Ko:ue;return i.call(o,n)?a(l.get(n)):i.call(o,s)?a(l.get(s)):void(l!==o&&l.get(n))},get size(){const n=this.__v_raw;return!t&&le(Rt(n),0,nn),Reflect.get(n,"size",n)},has(n){const l=this.__v_raw,o=Rt(l),s=Rt(n);return t||(Pr(n,s)&&le(o,0,n),le(o,0,s)),n===s?l.has(n):l.has(n)||l.has(s)},forEach(n,l){const o=this,s=o.__v_raw,i=Rt(s),a=e?zo:t?Ko:ue;return!t&&le(i,0,nn),s.forEach((u,c)=>n.call(l,a(u),a(c),o))}};return ee(r,t?{add:Oi("add"),set:Oi("set"),delete:Oi("delete"),clear:Oi("clear")}:{add(n){e||xe(n)||cn(n)||(n=Rt(n));const l=Rt(this);return Ti(l).has.call(l,n)||(l.add(n),ar(l,"add",n,n)),this},set(n,l){e||xe(l)||cn(l)||(l=Rt(l));const o=Rt(this),{has:s,get:i}=Ti(o);let a=s.call(o,n);a||(n=Rt(n),a=s.call(o,n));const u=i.call(o,n);return o.set(n,l),a?Pr(l,u)&&ar(o,"set",n,l):ar(o,"add",n,l),this},delete(n){const l=Rt(this),{has:o,get:s}=Ti(l);let i=o.call(l,n);i||(n=Rt(n),i=o.call(l,n)),s&&s.call(l,n);const a=l.delete(n);return i&&ar(l,"delete",n,void 0),a},clear(){const n=Rt(this),l=n.size!==0,o=n.clear();return l&&ar(n,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(n=>{r[n]=function(l,o,s){return function(...i){const a=this.__v_raw,u=Rt(a),c=In(u),d=l==="entries"||l===Symbol.iterator&&c,f=l==="keys"&&c,g=a[l](...i),b=s?zo:o?Ko:ue;return!o&&le(u,0,f?xs:nn),{next(){const{value:_,done:S}=g.next();return S?{value:_,done:S}:{value:d?[b(_[0]),b(_[1])]:b(_),done:S}},[Symbol.iterator](){return this}}}}(n,t,e)}),r}function hl(t,e){const r=lg(t,e);return(n,l,o)=>l==="__v_isReactive"?!t:l==="__v_isReadonly"?t:l==="__v_raw"?n:Reflect.get(Mt(r,l)&&l in n?r:n,l,o)}const ug={get:hl(!1,!1)},cg={get:hl(!1,!0)},hg={get:hl(!0,!1)},wh=new WeakMap,_h=new WeakMap,Eh=new WeakMap,fg=new WeakMap;function pg(t){return t.__v_skip||!Object.isExtensible(t)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>vo(e).slice(8,-1))(t))}function wi(t){return cn(t)?t:fl(t,!1,og,ug,wh)}function Sh(t){return fl(t,!1,ag,cg,_h)}function Ah(t){return fl(t,!0,sg,hg,Eh)}function fl(t,e,r,n,l){if(!Wt(t)||t.__v_raw&&(!e||!t.__v_isReactive))return t;const o=l.get(t);if(o)return o;const s=pg(t);if(s===0)return t;const i=new Proxy(t,s===2?n:r);return l.set(t,i),i}function Br(t){return cn(t)?Br(t.__v_raw):!(!t||!t.__v_isReactive)}function cn(t){return!(!t||!t.__v_isReadonly)}function xe(t){return!(!t||!t.__v_isShallow)}function pl(t){return!!t&&!!t.__v_raw}function Rt(t){const e=t&&t.__v_raw;return e?Rt(e):t}function dl(t){return!Mt(t,"__v_skip")&&Object.isExtensible(t)&&rh(t,"__v_skip",!0),t}const ue=t=>Wt(t)?wi(t):t,Ko=t=>Wt(t)?Ah(t):t;function Qt(t){return!!t&&t.__v_isRef===!0}function gl(t){return kh(t,!1)}function kh(t,e){return Qt(t)?t:new dg(t,e)}class dg{constructor(e,r){this.dep=new cl,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?e:Rt(e),this._value=r?e:ue(e),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(e){const r=this._rawValue,n=this.__v_isShallow||xe(e)||cn(e);e=n?e:Rt(e),Pr(e,r)&&(this._rawValue=e,this._value=n?e:ue(e),this.dep.trigger())}}function Tn(t){return Qt(t)?t.value:t}const gg={get:(t,e,r)=>e==="__v_raw"?t:Tn(Reflect.get(t,e,r)),set:(t,e,r,n)=>{const l=t[e];return Qt(l)&&!Qt(r)?(l.value=r,!0):Reflect.set(t,e,r,n)}};function Ih(t){return Br(t)?t:new Proxy(t,gg)}class mg{constructor(e,r,n){this._object=e,this._key=r,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return function(e,r){const n=ro.get(e);return n&&n.get(r)}(Rt(this._object),this._key)}}function yg(t,e,r){const n=t[e];return Qt(n)?n:new mg(t,e,r)}class bg{constructor(e,r,n){this.fn=e,this.setter=r,this._value=void 0,this.dep=new cl(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ui-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&Ft!==this)return hh(this,!0),!0}get value(){const e=this.dep.track();return dh(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}const xi={},Ci=new WeakMap;let Fr;function vg(t,e,r=Ut){const{immediate:n,deep:l,once:o,scheduler:s,augmentJob:i,call:a}=r,u=$=>l?$:xe($)||l===!1||l===0?lr($,1):lr($);let c,d,f,g,b=!1,_=!1;if(Qt(t)?(d=()=>t.value,b=xe(t)):Br(t)?(d=()=>u(t),b=!0):At(t)?(_=!0,b=t.some($=>Br($)||xe($)),d=()=>t.map($=>Qt($)?$.value:Br($)?u($):It($)?a?a($,2):$():void 0)):d=It(t)?e?a?()=>a(t,2):t:()=>{if(f){Lr();try{f()}finally{jr()}}const $=Fr;Fr=c;try{return a?a(t,3,[g]):t(g)}finally{Fr=$}}:Ge,e&&l){const $=d,X=l===!0?1/0:l;d=()=>lr($(),X)}const S=lh(),U=()=>{c.stop(),S&&S.active&&ol(S.effects,c)};if(o&&e){const $=e;e=(...X)=>{$(...X),U()}}let D=_?new Array(t.length).fill(xi):xi;const G=$=>{if(1&c.flags&&(c.dirty||$))if(e){const X=c.run();if(l||b||(_?X.some((B,A)=>Pr(B,D[A])):Pr(X,D))){f&&f();const B=Fr;Fr=c;try{const A=[X,D===xi?void 0:_&&D[0]===xi?[]:D,g];a?a(e,3,A):e(...A),D=X}finally{Fr=B}}}else c.run()};return i&&i(G),c=new uh(d),c.scheduler=s?()=>s(G,!1):G,g=$=>function(X,B=!1,A=Fr){if(A){let E=Ci.get(A);E||Ci.set(A,E=[]),E.push(X)}}($,!1,c),f=c.onStop=()=>{const $=Ci.get(c);if($){if(a)a($,4);else for(const X of $)X();Ci.delete(c)}},e?n?G(!0):D=c.run():s?s(G.bind(null,!0),!0):c.run(),U.pause=c.pause.bind(c),U.resume=c.resume.bind(c),U.stop=U,U}function lr(t,e=1/0,r){if(e<=0||!Wt(t)||t.__v_skip||(r=r||new Set).has(t))return t;if(r.add(t),e--,Qt(t))lr(t.value,e,r);else if(At(t))for(let n=0;n{lr(n,e,r)});else if(eh(t)){for(const n in t)lr(t[n],e,r);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&lr(t[n],e,r)}return t}/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function _i(t,e,r,n){try{return n?t(...n):t()}catch(l){ko(l,e,r)}}function Ne(t,e,r,n){if(It(t)){const l=_i(t,e,r,n);return l&&Zc(l)&&l.catch(o=>{ko(o,e,r)}),l}if(At(t)){const l=[];for(let o=0;o=ti(r)?pe.push(t):pe.splice(function(n){let l=Ve+1,o=pe.length;for(;l>>1,i=pe[s],a=ti(i);ati(r)-ti(n));if(On.length=0,Tr)return void Tr.push(...e);for(Tr=e,wn=0;wnt.id==null?2&t.flags?-1:1/0:t.id;function Rh(t){try{for(Ve=0;Ve{n._d&&gu(-1);const o=io(e);let s;try{s=t(...l)}finally{io(o),n._d&&gu(1)}return s};return n._n=!0,n._c=!0,n._d=!0,n}function $y(t,e){if(Jt===null)return t;const r=xo(Jt),n=t.dirs||(t.dirs=[]);for(let l=0;lt.__isTeleport,Gn=t=>t&&(t.disabled||t.disabled===""),Yl=t=>t&&(t.defer||t.defer===""),Jl=t=>typeof SVGElement<"u"&&t instanceof SVGElement,Xl=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Go=(t,e)=>{const r=t&&t.to;return qt(r)?e?e(r):null:r},Lh={name:"Teleport",__isTeleport:!0,process(t,e,r,n,l,o,s,i,a,u){const{mc:c,pc:d,pbc:f,o:{insert:g,querySelector:b,createText:_,createComment:S}}=u,U=Gn(e.props);let{shapeFlag:D,children:G,dynamicChildren:$}=e;if(t==null){const X=e.el=_(""),B=e.anchor=_("");g(X,r,n),g(B,r,n);const A=(w,M)=>{16&D&&(l&&l.isCE&&(l.ce._teleportTarget=w),c(G,w,M,l,o,s,i,a))},E=()=>{const w=e.target=Go(e.props,b),M=Zl(w,e,_,g);w&&(s!=="svg"&&Jl(w)?s="svg":s!=="mathml"&&Xl(w)&&(s="mathml"),U||(A(w,M),Pi(e,!1)))};U&&(A(r,B),Pi(e,!0)),Yl(e.props)?he(()=>{E(),e.el.__isMounted=!0},o):E()}else{if(Yl(e.props)&&!t.el.__isMounted)return void he(()=>{Lh.process(t,e,r,n,l,o,s,i,a,u),delete t.el.__isMounted},o);e.el=t.el,e.targetStart=t.targetStart;const X=e.anchor=t.anchor,B=e.target=t.target,A=e.targetAnchor=t.targetAnchor,E=Gn(t.props),w=E?r:B,M=E?X:A;if(s==="svg"||Jl(B)?s="svg":(s==="mathml"||Xl(B))&&(s="mathml"),$?(f(t.dynamicChildren,$,w,l,o,s,i),Sl(t,e,!0)):a||d(t,e,w,M,l,o,s,i,!1),U)E?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):Ri(e,r,X,u,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const R=e.target=Go(e.props,b);R&&Ri(e,R,null,u,0)}else E&&Ri(e,B,A,u,1);Pi(e,U)}},remove(t,e,r,{um:n,o:{remove:l}},o){const{shapeFlag:s,children:i,anchor:a,targetStart:u,targetAnchor:c,target:d,props:f}=t;if(d&&(l(u),l(c)),o&&l(a),16&s){const g=o||!Gn(f);for(let b=0;b{const e=t.subTree;return e.component?Uh(e.component):e},_g={name:"BaseTransition",props:jh,setup(t,{slots:e}){const r=cf(),n=function(){const l={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return bl(()=>{l.isMounted=!0}),Hh(()=>{l.isUnmounting=!0}),l}();return()=>{const l=e.default&&Fh(e.default(),!0);if(!l||!l.length)return;const o=Nh(l),s=Rt(t),{mode:i}=s;if(n.isLeaving)return Qo(o);const a=tu(o);if(!a)return Qo(o);let u=Cs(a,s,n,r,d=>u=d);a.type!==de&&hi(a,u);let c=r.subTree&&tu(r.subTree);if(c&&c.type!==de&&!Zr(a,c)&&Uh(r).type!==de){let d=Cs(c,s,n,r);if(hi(c,d),i==="out-in"&&a.type!==de)return n.isLeaving=!0,d.afterLeave=()=>{n.isLeaving=!1,8&r.job.flags||r.update(),delete d.afterLeave,c=void 0},Qo(o);i==="in-out"&&a.type!==de?d.delayLeave=(f,g,b)=>{Dh(n,c)[String(c.key)]=c,f[Or]=()=>{g(),f[Or]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{b(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function Nh(t){let e=t[0];if(t.length>1){for(const r of t)if(r.type!==de){e=r;break}}return e}const Eg=_g;function Dh(t,e){const{leavingVNodes:r}=t;let n=r.get(e.type);return n||(n=Object.create(null),r.set(e.type,n)),n}function Cs(t,e,r,n,l){const{appear:o,mode:s,persisted:i=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:f,onLeave:g,onAfterLeave:b,onLeaveCancelled:_,onBeforeAppear:S,onAppear:U,onAfterAppear:D,onAppearCancelled:G}=e,$=String(t.key),X=Dh(r,t),B=(w,M)=>{w&&Ne(w,n,9,M)},A=(w,M)=>{const R=M[1];B(w,M),At(w)?w.every(nt=>nt.length<=1)&&R():w.length<=1&&R()},E={mode:s,persisted:i,beforeEnter(w){let M=a;if(!r.isMounted){if(!o)return;M=S||a}w[Or]&&w[Or](!0);const R=X[$];R&&Zr(t,R)&&R.el[Or]&&R.el[Or](),B(M,[w])},enter(w){let M=u,R=c,nt=d;if(!r.isMounted){if(!o)return;M=U||u,R=D||c,nt=G||d}let st=!1;const Z=w[Bi]=j=>{st||(st=!0,B(j?nt:R,[w]),E.delayedLeave&&E.delayedLeave(),w[Bi]=void 0)};M?A(M,[w,Z]):Z()},leave(w,M){const R=String(t.key);if(w[Bi]&&w[Bi](!0),r.isUnmounting)return M();B(f,[w]);let nt=!1;const st=w[Or]=Z=>{nt||(nt=!0,M(),B(Z?_:b,[w]),w[Or]=void 0,X[R]===t&&delete X[R])};X[R]=t,g?A(g,[w,st]):st()},clone(w){const M=Cs(w,e,r,n,l);return l&&l(M),M}};return E}function Qo(t){if(Io(t))return(t=Ur(t)).children=null,t}function tu(t){if(!Io(t))return Mh(t.type)&&t.children?Nh(t.children):t;const{shapeFlag:e,children:r}=t;if(r){if(16&e)return r[0];if(32&e&&It(r.default))return r.default()}}function hi(t,e){6&t.shapeFlag&&t.component?(t.transition=e,hi(t.component.subTree,e)):128&t.shapeFlag?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function Fh(t,e=!1,r){let n=[],l=0;for(let o=0;o1)for(let o=0;ooo(b,e&&(At(e)?e[_]:e),r,n,l));if(Sn(n)&&!l)return void(512&n.shapeFlag&&n.type.__asyncResolved&&n.component.subTree.component&&oo(t,e,r,n.component.subTree));const o=4&n.shapeFlag?xo(n.component):n.el,s=l?null:o,{i,r:a}=t,u=e&&e.r,c=i.refs===Ut?i.refs={}:i.refs,d=i.setupState,f=Rt(d),g=d===Ut?()=>!1:b=>Mt(f,b);if(u!=null&&u!==a&&(qt(u)?(c[u]=null,g(u)&&(d[u]=null)):Qt(u)&&(u.value=null)),It(a))_i(a,i,12,[s,c]);else{const b=qt(a),_=Qt(a);if(b||_){const S=()=>{if(t.f){const U=b?g(a)?d[a]:c[a]:a.value;l?At(U)&&ol(U,o):At(U)?U.includes(o)||U.push(o):b?(c[a]=[o],g(a)&&(d[a]=c[a])):(a.value=[o],t.k&&(c[t.k]=a.value))}else b?(c[a]=s,g(a)&&(d[a]=s)):_&&(a.value=s,t.k&&(c[t.k]=s))};s?(S.id=-1,he(S,r)):S()}}}eo().requestIdleCallback,eo().cancelIdleCallback;const Sn=t=>!!t.type.__asyncLoader,Io=t=>t.type.__isKeepAlive;function Sg(t,e){Vh(t,"a",e)}function Ag(t,e){Vh(t,"da",e)}function Vh(t,e,r=te){const n=t.__wdc||(t.__wdc=()=>{let l=r;for(;l;){if(l.isDeactivated)return;l=l.parent}return t()});if(To(e,n,r),r){let l=r.parent;for(;l&&l.parent;)Io(l.parent.vnode)&&kg(n,e,r,l),l=l.parent}}function kg(t,e,r,n){const l=To(e,t,n,!0);vl(()=>{ol(n[e],l)},r)}function To(t,e,r=te,n=!1){if(r){const l=r[t]||(r[t]=[]),o=e.__weh||(e.__weh=(...s)=>{Lr();const i=Ei(r),a=Ne(e,r,t,s);return i(),jr(),a});return n?l.unshift(o):l.push(o),o}}const mr=t=>(e,r=te)=>{di&&t!=="sp"||To(t,(...n)=>e(...n),r)},Ig=mr("bm"),bl=mr("m"),qh=mr("bu"),Tg=mr("u"),Hh=mr("bum"),vl=mr("um"),Og=mr("sp"),xg=mr("rtg"),Cg=mr("rtc");function Rg(t,e=te){To("ec",t,e)}const wl="components";function qy(t,e){return _l(wl,t,!0,e)||t}const zh=Symbol.for("v-ndc");function Hy(t){return qt(t)?_l(wl,t,!1)||t:t||zh}function zy(t){return _l("directives",t)}function _l(t,e,r=!0,n=!1){const l=Jt||te;if(l){const o=l.type;if(t===wl){const i=Zg(o,!1);if(i&&(i===e||i===Ce(e)||i===_o(Ce(e))))return o}const s=eu(l[t]||o[t],e)||eu(l.appContext[t],e);return!s&&n?o:s}}function eu(t,e){return t&&(t[e]||t[Ce(e)]||t[_o(Ce(e))])}function Ky(t,e,r,n){let l;const o=r,s=At(t);if(s||qt(t)){let i=!1;s&&Br(t)&&(i=!xe(t),t=Ao(t)),l=new Array(t.length);for(let a=0,u=t.length;ae(i,a,void 0,o));else{const i=Object.keys(t);l=new Array(i.length);for(let a=0,u=i.length;a{const o=n.fn(...l);return o&&(o.key=n.key),o}:n.fn)}return t}function Qy(t,e,r={},n,l){if(Jt.ce||Jt.parent&&Sn(Jt.parent)&&Jt.parent.ce)return e!=="default"&&(r.name=e),Ls(),js(me,null,[ye("slot",r,n&&n())],64);let o=t[e];o&&o._c&&(o._d=!1),Ls();const s=o&&Kh(o(r)),i=r.key||s&&s.key,a=js(me,{key:(i&&!gr(i)?i:`_${e}`)+(!s&&n?"_fb":"")},s||(n?n():[]),s&&t._===1?64:-2);return!l&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),o&&o._c&&(o._d=!0),a}function Kh(t){return t.some(e=>!pi(e)||e.type!==de&&!(e.type===me&&!Kh(e.children)))?t:null}const Rs=t=>t?hf(t)?xo(t):Rs(t.parent):null,ei=ee(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Rs(t.parent),$root:t=>Rs(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Qh(t),$forceUpdate:t=>t.f||(t.f=()=>{yl(t.update)}),$nextTick:t=>t.n||(t.n=ml.bind(t.proxy)),$watch:t=>$g.bind(t)}),Yo=(t,e)=>t!==Ut&&!t.__isScriptSetup&&Mt(t,e),Pg={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:r,setupState:n,data:l,props:o,accessCache:s,type:i,appContext:a}=t;let u;if(e[0]!=="$"){const g=s[e];if(g!==void 0)switch(g){case 1:return n[e];case 2:return l[e];case 4:return r[e];case 3:return o[e]}else{if(Yo(n,e))return s[e]=1,n[e];if(l!==Ut&&Mt(l,e))return s[e]=2,l[e];if((u=t.propsOptions[0])&&Mt(u,e))return s[e]=3,o[e];if(r!==Ut&&Mt(r,e))return s[e]=4,r[e];Ps&&(s[e]=0)}}const c=ei[e];let d,f;return c?(e==="$attrs"&&le(t.attrs,0,""),c(t)):(d=i.__cssModules)&&(d=d[e])?d:r!==Ut&&Mt(r,e)?(s[e]=4,r[e]):(f=a.config.globalProperties,Mt(f,e)?f[e]:void 0)},set({_:t},e,r){const{data:n,setupState:l,ctx:o}=t;return Yo(l,e)?(l[e]=r,!0):n!==Ut&&Mt(n,e)?(n[e]=r,!0):!Mt(t.props,e)&&(e[0]!=="$"||!(e.slice(1)in t))&&(o[e]=r,!0)},has({_:{data:t,setupState:e,accessCache:r,ctx:n,appContext:l,propsOptions:o}},s){let i;return!!r[s]||t!==Ut&&Mt(t,s)||Yo(e,s)||(i=o[0])&&Mt(i,s)||Mt(n,s)||Mt(ei,s)||Mt(l.config.globalProperties,s)},defineProperty(t,e,r){return r.get!=null?t._.accessCache[e]=0:Mt(r,"value")&&this.set(t,e,r.value,null),Reflect.defineProperty(t,e,r)}};function ru(t){return At(t)?t.reduce((e,r)=>(e[r]=null,e),{}):t}let Ps=!0;function Bg(t){const e=Qh(t),r=t.proxy,n=t.ctx;Ps=!1,e.beforeCreate&&nu(e.beforeCreate,t,"bc");const{data:l,computed:o,methods:s,watch:i,provide:a,inject:u,created:c,beforeMount:d,mounted:f,beforeUpdate:g,updated:b,activated:_,deactivated:S,beforeDestroy:U,beforeUnmount:D,destroyed:G,unmounted:$,render:X,renderTracked:B,renderTriggered:A,errorCaptured:E,serverPrefetch:w,expose:M,inheritAttrs:R,components:nt,directives:st,filters:Z}=e;if(u&&function(N,F){At(N)&&(N=Bs(N));for(const it in N){const J=N[it];let Y;Y=Wt(J)?"default"in J?Qe(J.from||it,J.default,!0):Qe(J.from||it):Qe(J),Qt(Y)?Object.defineProperty(F,it,{enumerable:!0,configurable:!0,get:()=>Y.value,set:k=>Y.value=k}):F[it]=Y}}(u,n,null),s)for(const N in s){const F=s[N];It(F)&&(n[N]=F.bind(r))}if(l){const N=l.call(r,r);Wt(N)&&(t.data=wi(N))}if(Ps=!0,o)for(const N in o){const F=o[N],it=It(F)?F.bind(r,r):It(F.get)?F.get.bind(r,r):Ge,J=!It(F)&&It(F.set)?F.set.bind(r):Ge,Y=Te({get:it,set:J});Object.defineProperty(n,N,{enumerable:!0,configurable:!0,get:()=>Y.value,set:k=>Y.value=k})}if(i)for(const N in i)Gh(i[N],n,r,N);if(a){const N=It(a)?a.call(r):a;Reflect.ownKeys(N).forEach(F=>{$i(F,N[F])})}function j(N,F){At(F)?F.forEach(it=>N(it.bind(r))):F&&N(F.bind(r))}if(c&&nu(c,t,"c"),j(Ig,d),j(bl,f),j(qh,g),j(Tg,b),j(Sg,_),j(Ag,S),j(Rg,E),j(Cg,B),j(xg,A),j(Hh,D),j(vl,$),j(Og,w),At(M))if(M.length){const N=t.exposed||(t.exposed={});M.forEach(F=>{Object.defineProperty(N,F,{get:()=>r[F],set:it=>r[F]=it})})}else t.exposed||(t.exposed={});X&&t.render===Ge&&(t.render=X),R!=null&&(t.inheritAttrs=R),nt&&(t.components=nt),st&&(t.directives=st),w&&$h(t)}function nu(t,e,r){Ne(At(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,r)}function Gh(t,e,r,n){let l=n.includes(".")?nf(r,n):()=>r[n];if(qt(t)){const o=e[t];It(o)&&xn(l,o)}else if(It(t))xn(l,t.bind(r));else if(Wt(t))if(At(t))t.forEach(o=>Gh(o,e,r,n));else{const o=It(t.handler)?t.handler.bind(r):e[t.handler];It(o)&&xn(l,o,t)}}function Qh(t){const e=t.type,{mixins:r,extends:n}=e,{mixins:l,optionsCache:o,config:{optionMergeStrategies:s}}=t.appContext,i=o.get(e);let a;return i?a=i:l.length||r||n?(a={},l.length&&l.forEach(u=>so(a,u,s,!0)),so(a,e,s)):a=e,Wt(e)&&o.set(e,a),a}function so(t,e,r,n=!1){const{mixins:l,extends:o}=e;o&&so(t,o,r,!0),l&&l.forEach(s=>so(t,s,r,!0));for(const s in e)if(!(n&&s==="expose")){const i=Mg[s]||r&&r[s];t[s]=i?i(t[s],e[s]):e[s]}return t}const Mg={data:iu,props:ou,emits:ou,methods:Fn,computed:Fn,beforeCreate:ce,created:ce,beforeMount:ce,mounted:ce,beforeUpdate:ce,updated:ce,beforeDestroy:ce,beforeUnmount:ce,destroyed:ce,unmounted:ce,activated:ce,deactivated:ce,errorCaptured:ce,serverPrefetch:ce,components:Fn,directives:Fn,watch:function(t,e){if(!t)return e;if(!e)return t;const r=ee(Object.create(null),t);for(const n in e)r[n]=ce(t[n],e[n]);return r},provide:iu,inject:function(t,e){return Fn(Bs(t),Bs(e))}};function iu(t,e){return e?t?function(){return ee(It(t)?t.call(this,this):t,It(e)?e.call(this,this):e)}:e:t}function Bs(t){if(At(t)){const e={};for(let r=0;r(o.has(u)||(u&&It(u.install)?(o.add(u),u.install(a,...c)):It(u)&&(o.add(u),u(a,...c))),a),mixin:u=>(l.mixins.includes(u)||l.mixins.push(u),a),component:(u,c)=>c?(l.components[u]=c,a):l.components[u],directive:(u,c)=>c?(l.directives[u]=c,a):l.directives[u],mount(u,c,d){if(!i){const f=a._ceVNode||ye(r,n);return f.appContext=l,d===!0?d="svg":d===!1&&(d=void 0),t(f,u,d),i=!0,a._container=u,u.__vue_app__=a,xo(f.component)}},onUnmount(u){s.push(u)},unmount(){i&&(Ne(s,a._instance,16),t(null,a._container),delete a._container.__vue_app__)},provide:(u,c)=>(l.provides[u]=c,a),runWithContext(u){const c=on;on=a;try{return u()}finally{on=c}}};return a}}let on=null;function $i(t,e){if(te){let r=te.provides;const n=te.parent&&te.parent.provides;n===r&&(r=te.provides=Object.create(n)),r[t]=e}}function Qe(t,e,r=!1){const n=te||Jt;if(n||on){const l=on?on._context.provides:n?n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(l&&t in l)return l[t];if(arguments.length>1)return r&&It(e)?e.call(n&&n.proxy):e}}const Jh={},su=()=>Object.create(Jh),Xh=t=>Object.getPrototypeOf(t)===Jh;function au(t,e,r,n){const[l,o]=t.propsOptions;let s,i=!1;if(e)for(let a in e){if(Jn(a))continue;const u=e[a];let c;l&&Mt(l,c=Ce(a))?o&&o.includes(c)?(s||(s={}))[c]=u:r[c]=u:ao(t.emitsOptions,a)||a in n&&u===n[a]||(n[a]=u,i=!0)}if(o){const a=Rt(r),u=s||Ut;for(let c=0;c{a=!0;const[f,g]=Zh(d,e,!0);ee(s,f),g&&i.push(...g)};!r&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}if(!o&&!a)return Wt(t)&&n.set(t,kn),kn;if(At(o))for(let c=0;ct[0]==="_"||t==="$stable",El=t=>At(t)?t.map(qe):[qe(t)],Ng=(t,e,r)=>{if(e._n)return e;const n=wg((...l)=>El(e(...l)),r);return n._c=!1,n},uu=(t,e,r)=>{const n=t._ctx;for(const l in t){if(tf(l))continue;const o=t[l];if(It(o))e[l]=Ng(0,o,n);else if(o!=null){const s=El(o);e[l]=()=>s}}},cu=(t,e)=>{const r=El(e);t.slots.default=()=>r},hu=(t,e,r)=>{for(const n in e)(r||n!=="_")&&(t[n]=e[n])},he=function(t,e){e&&e.pendingBranch?At(t)?e.effects.push(...t):e.effects.push(t):xh(t)};function Dg(t){return function(e){eo().__VUE__=!0;const{insert:r,remove:n,patchProp:l,createElement:o,createText:s,createComment:i,setText:a,setElementText:u,parentNode:c,nextSibling:d,setScopeId:f=Ge,insertStaticContent:g}=e,b=(P,W,C,Q=null,h=null,p=null,v=void 0,O=null,x=!!W.dynamicChildren)=>{if(P===W)return;P&&!Zr(P,W)&&(Q=ut(P),k(P,h,p,!0),P=null),W.patchFlag===-2&&(x=!1,W.dynamicChildren=null);const{type:I,ref:m,shapeFlag:y}=W;switch(I){case Oo:_(P,W,C,Q);break;case de:S(P,W,C,Q);break;case Vi:P==null&&U(W,C,Q,v);break;case me:R(P,W,C,Q,h,p,v,O,x);break;default:1&y?$(P,W,C,Q,h,p,v,O,x):6&y?nt(P,W,C,Q,h,p,v,O,x):(64&y||128&y)&&I.process(P,W,C,Q,h,p,v,O,x,rt)}m!=null&&h&&oo(m,P&&P.ref,p,W||P,!W)},_=(P,W,C,Q)=>{if(P==null)r(W.el=s(W.children),C,Q);else{const h=W.el=P.el;W.children!==P.children&&a(h,W.children)}},S=(P,W,C,Q)=>{P==null?r(W.el=i(W.children||""),C,Q):W.el=P.el},U=(P,W,C,Q)=>{[P.el,P.anchor]=g(P.children,W,C,Q,P.el,P.anchor)},D=({el:P,anchor:W},C,Q)=>{let h;for(;P&&P!==W;)h=d(P),r(P,C,Q),P=h;r(W,C,Q)},G=({el:P,anchor:W})=>{let C;for(;P&&P!==W;)C=d(P),n(P),P=C;n(W)},$=(P,W,C,Q,h,p,v,O,x)=>{W.type==="svg"?v="svg":W.type==="math"&&(v="mathml"),P==null?X(W,C,Q,h,p,v,O,x):E(P,W,h,p,v,O,x)},X=(P,W,C,Q,h,p,v,O)=>{let x,I;const{props:m,shapeFlag:y,transition:T,dirs:L}=P;if(x=P.el=o(P.type,p,m&&m.is,m),8&y?u(x,P.children):16&y&&A(P.children,x,null,Q,h,Jo(P,p),v,O),L&&Wr(P,null,Q,"created"),B(x,P,P.scopeId,v,Q),m){for(const V in m)V==="value"||Jn(V)||l(x,V,null,m[V],p,Q);"value"in m&&l(x,"value",null,m.value,p),(I=m.onVnodeBeforeMount)&&Fe(I,Q,P)}L&&Wr(P,null,Q,"beforeMount");const z=function(V,lt){return(!V||V&&!V.pendingBranch)&<&&!lt.persisted}(h,T);z&&T.beforeEnter(x),r(x,W,C),((I=m&&m.onVnodeMounted)||z||L)&&he(()=>{I&&Fe(I,Q,P),z&&T.enter(x),L&&Wr(P,null,Q,"mounted")},h)},B=(P,W,C,Q,h)=>{if(C&&f(P,C),Q)for(let p=0;p{for(let I=x;I{const O=W.el=P.el;let{patchFlag:x,dynamicChildren:I,dirs:m}=W;x|=16&P.patchFlag;const y=P.props||Ut,T=W.props||Ut;let L;if(C&&$r(C,!1),(L=T.onVnodeBeforeUpdate)&&Fe(L,C,W,P),m&&Wr(W,P,C,"beforeUpdate"),C&&$r(C,!0),(y.innerHTML&&T.innerHTML==null||y.textContent&&T.textContent==null)&&u(O,""),I?w(P.dynamicChildren,I,O,C,Q,Jo(W,h),p):v||F(P,W,O,null,C,Q,Jo(W,h),p,!1),x>0){if(16&x)M(O,y,T,C,h);else if(2&x&&y.class!==T.class&&l(O,"class",null,T.class,h),4&x&&l(O,"style",y.style,T.style,h),8&x){const z=W.dynamicProps;for(let V=0;V{L&&Fe(L,C,W,P),m&&Wr(W,P,C,"updated")},Q)},w=(P,W,C,Q,h,p,v)=>{for(let O=0;O{if(W!==C){if(W!==Ut)for(const p in W)Jn(p)||p in C||l(P,p,W[p],null,h,Q);for(const p in C){if(Jn(p))continue;const v=C[p],O=W[p];v!==O&&p!=="value"&&l(P,p,O,v,h,Q)}"value"in C&&l(P,"value",W.value,C.value,h)}},R=(P,W,C,Q,h,p,v,O,x)=>{const I=W.el=P?P.el:s(""),m=W.anchor=P?P.anchor:s("");let{patchFlag:y,dynamicChildren:T,slotScopeIds:L}=W;L&&(O=O?O.concat(L):L),P==null?(r(I,C,Q),r(m,C,Q),A(W.children||[],C,m,h,p,v,O,x)):y>0&&64&y&&T&&P.dynamicChildren?(w(P.dynamicChildren,T,C,h,p,v,O),(W.key!=null||h&&W===h.subTree)&&Sl(P,W,!0)):F(P,W,C,m,h,p,v,O,x)},nt=(P,W,C,Q,h,p,v,O,x)=>{W.slotScopeIds=O,P==null?512&W.shapeFlag?h.ctx.activate(W,C,Q,v,x):st(W,C,Q,h,p,v,x):Z(P,W,x)},st=(P,W,C,Q,h,p,v)=>{const O=P.component=function(x,I,m){const y=x.type,T=(I?I.appContext:x.appContext)||Yg,L={uid:Jg++,vnode:x,type:y,parent:I,appContext:T,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new sh(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:I?I.provides:Object.create(T.provides),ids:I?I.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Zh(y,T),emitsOptions:of(y,T),emit:null,emitted:null,propsDefaults:Ut,inheritAttrs:y.inheritAttrs,ctx:Ut,data:Ut,props:Ut,attrs:Ut,slots:Ut,refs:Ut,setupState:Ut,setupContext:null,suspense:m,suspenseId:m?m.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return L.ctx={_:L},L.root=I?I.root:L,L.emit=qg.bind(null,L),x.ce&&x.ce(L),L}(P,Q,h);if(Io(P)&&(O.ctx.renderer=rt),function(x,I=!1,m=!1){I&&Us(I);const{props:y,children:T}=x.vnode,L=hf(x);(function(V,lt,ct,yt=!1){const bt={},wt=su();V.propsDefaults=Object.create(null),au(V,lt,bt,wt);for(const Ot in V.propsOptions[0])Ot in bt||(bt[Ot]=void 0);ct?V.props=yt?bt:Sh(bt):V.type.props?V.props=bt:V.props=wt,V.attrs=wt})(x,y,L,I),((V,lt,ct)=>{const yt=V.slots=su();if(32&V.vnode.shapeFlag){const bt=lt._;bt?(hu(yt,lt,ct),ct&&rh(yt,"_",bt,!0)):uu(lt,yt)}else lt&&cu(V,lt)})(x,T,m);const z=L?function(V,lt){const ct=V.type;V.accessCache=Object.create(null),V.proxy=new Proxy(V.ctx,Pg);const{setup:yt}=ct;if(yt){Lr();const bt=V.setupContext=yt.length>1?function(_t){const Tt=kt=>{_t.exposed=kt||{}};return{attrs:new Proxy(_t.attrs,Xg),slots:_t.slots,emit:_t.emit,expose:Tt}}(V):null,wt=Ei(V),Ot=_i(yt,V,0,[V.props,bt]),xt=Zc(Ot);if(jr(),wt(),!xt&&!V.sp||Sn(V)||$h(V),xt){if(Ot.then(mu,mu),lt)return Ot.then(_t=>{yu(V,_t)}).catch(_t=>{ko(_t,V,0)});V.asyncDep=Ot}else yu(V,Ot)}else ff(V)}(x,I):void 0;I&&Us(!1)}(O,!1,v),O.asyncDep){if(h&&h.registerDep(O,j,v),!P.el){const x=O.subTree=ye(de);S(null,x,W,C)}}else j(O,P,W,C,h,p,v)},Z=(P,W,C)=>{const Q=W.component=P.component;if(function(h,p,v){const{props:O,children:x,component:I}=h,{props:m,children:y,patchFlag:T}=p,L=I.emitsOptions;if(p.dirs||p.transition)return!0;if(!(v&&T>=0))return!(!x&&!y||y&&y.$stable)||O!==m&&(O?!m||du(O,m,L):!!m);if(1024&T)return!0;if(16&T)return O?du(O,m,L):!!m;if(8&T){const z=p.dynamicProps;for(let V=0;V{const O=()=>{if(P.isMounted){let{next:y,bu:T,u:L,parent:z,vnode:V}=P;{const wt=ef(P);if(wt)return y&&(y.el=V.el,N(P,y,v)),void wt.asyncDep.then(()=>{P.isUnmounted||O()})}let lt,ct=y;$r(P,!1),y?(y.el=V.el,N(P,y,v)):y=V,T&&Wo(T),(lt=y.props&&y.props.onVnodeBeforeUpdate)&&Fe(lt,z,y,V),$r(P,!0);const yt=pu(P),bt=P.subTree;P.subTree=yt,b(bt,yt,c(bt.el),ut(bt),P,h,p),y.el=yt.el,ct===null&&function({vnode:wt,parent:Ot},xt){for(;Ot;){const _t=Ot.subTree;if(_t.suspense&&_t.suspense.activeBranch===wt&&(_t.el=wt.el),_t!==wt)break;(wt=Ot.vnode).el=xt,Ot=Ot.parent}}(P,yt.el),L&&he(L,h),(lt=y.props&&y.props.onVnodeUpdated)&&he(()=>Fe(lt,z,y,V),h)}else{let y;const{el:T,props:L}=W,{bm:z,m:V,parent:lt,root:ct,type:yt}=P,bt=Sn(W);$r(P,!1),z&&Wo(z),!bt&&(y=L&&L.onVnodeBeforeMount)&&Fe(y,lt,W),$r(P,!0);{ct.ce&&ct.ce._injectChildStyle(yt);const wt=P.subTree=pu(P);b(null,wt,C,Q,P,h,p),W.el=wt.el}if(V&&he(V,h),!bt&&(y=L&&L.onVnodeMounted)){const wt=W;he(()=>Fe(y,lt,wt),h)}(256&W.shapeFlag||lt&&Sn(lt.vnode)&&256<.vnode.shapeFlag)&&P.a&&he(P.a,h),P.isMounted=!0,W=C=Q=null}};P.scope.on();const x=P.effect=new uh(O);P.scope.off();const I=P.update=x.run.bind(x),m=P.job=x.runIfDirty.bind(x);m.i=P,m.id=P.uid,x.scheduler=()=>yl(m),$r(P,!0),I()},N=(P,W,C)=>{W.component=P;const Q=P.vnode.props;P.vnode=W,P.next=null,function(h,p,v,O){const{props:x,attrs:I,vnode:{patchFlag:m}}=h,y=Rt(x),[T]=h.propsOptions;let L=!1;if(!(O||m>0)||16&m){let z;au(h,p,x,I)&&(L=!0);for(const V in y)p&&(Mt(p,V)||(z=Nr(V))!==V&&Mt(p,z))||(T?!v||v[V]===void 0&&v[z]===void 0||(x[V]=Ms(T,y,V,void 0,h,!0)):delete x[V]);if(I!==y)for(const V in I)p&&Mt(p,V)||(delete I[V],L=!0)}else if(8&m){const z=h.vnode.dynamicProps;for(let V=0;V{const{vnode:O,slots:x}=h;let I=!0,m=Ut;if(32&O.shapeFlag){const y=p._;y?v&&y===1?I=!1:hu(x,p,v):(I=!p.$stable,uu(p,x)),m=p}else p&&(cu(h,p),m={default:1});if(I)for(const y in x)tf(y)||m[y]!=null||delete x[y]})(P,W.children,C),Lr(),Ql(P),jr()},F=(P,W,C,Q,h,p,v,O,x=!1)=>{const I=P&&P.children,m=P?P.shapeFlag:0,y=W.children,{patchFlag:T,shapeFlag:L}=W;if(T>0){if(128&T)return void J(I,y,C,Q,h,p,v,O,x);if(256&T)return void it(I,y,C,Q,h,p,v,O,x)}8&L?(16&m&&at(I,h,p),y!==I&&u(C,y)):16&m?16&L?J(I,y,C,Q,h,p,v,O,x):at(I,h,p,!0):(8&m&&u(C,""),16&L&&A(y,C,Q,h,p,v,O,x))},it=(P,W,C,Q,h,p,v,O,x)=>{W=W||kn;const I=(P=P||kn).length,m=W.length,y=Math.min(I,m);let T;for(T=0;Tm?at(P,h,p,!0,!1,y):A(W,C,Q,h,p,v,O,x,y)},J=(P,W,C,Q,h,p,v,O,x)=>{let I=0;const m=W.length;let y=P.length-1,T=m-1;for(;I<=y&&I<=T;){const L=P[I],z=W[I]=x?xr(W[I]):qe(W[I]);if(!Zr(L,z))break;b(L,z,C,null,h,p,v,O,x),I++}for(;I<=y&&I<=T;){const L=P[y],z=W[T]=x?xr(W[T]):qe(W[T]);if(!Zr(L,z))break;b(L,z,C,null,h,p,v,O,x),y--,T--}if(I>y){if(I<=T){const L=T+1,z=LT)for(;I<=y;)k(P[I],h,p,!0),I++;else{const L=I,z=I,V=new Map;for(I=z;I<=T;I++){const _t=W[I]=x?xr(W[I]):qe(W[I]);_t.key!=null&&V.set(_t.key,I)}let lt,ct=0;const yt=T-z+1;let bt=!1,wt=0;const Ot=new Array(yt);for(I=0;I=yt){k(_t,h,p,!0);continue}let Tt;if(_t.key!=null)Tt=V.get(_t.key);else for(lt=z;lt<=T;lt++)if(Ot[lt-z]===0&&Zr(_t,W[lt])){Tt=lt;break}Tt===void 0?k(_t,h,p,!0):(Ot[Tt-z]=I+1,Tt>=wt?wt=Tt:bt=!0,b(_t,W[Tt],C,null,h,p,v,O,x),ct++)}const xt=bt?function(_t){const Tt=_t.slice(),kt=[0];let vt,Ct,re,Yt,se;const Je=_t.length;for(vt=0;vt>1,_t[kt[se]]<_e?re=se+1:Yt=se;_e<_t[kt[re]]&&(re>0&&(Tt[vt]=kt[re-1]),kt[re]=vt)}}for(re=kt.length,Yt=kt[re-1];re-- >0;)kt[re]=Yt,Yt=Tt[Yt];return kt}(Ot):kn;for(lt=xt.length-1,I=yt-1;I>=0;I--){const _t=z+I,Tt=W[_t],kt=_t+1{const{el:p,type:v,transition:O,children:x,shapeFlag:I}=P;if(6&I)return void Y(P.component.subTree,W,C,Q);if(128&I)return void P.suspense.move(W,C,Q);if(64&I)return void v.move(P,W,C,rt);if(v===me){r(p,W,C);for(let m=0;mO.enter(p),h);else{const{leave:m,delayLeave:y,afterLeave:T}=O,L=()=>r(p,W,C),z=()=>{m(p,()=>{L(),T&&T()})};y?y(p,L,z):z()}else r(p,W,C)},k=(P,W,C,Q=!1,h=!1)=>{const{type:p,props:v,ref:O,children:x,dynamicChildren:I,shapeFlag:m,patchFlag:y,dirs:T,cacheIndex:L}=P;if(y===-2&&(h=!1),O!=null&&oo(O,null,C,P,!0),L!=null&&(W.renderCache[L]=void 0),256&m)return void W.ctx.deactivate(P);const z=1&m&&T,V=!Sn(P);let lt;if(V&&(lt=v&&v.onVnodeBeforeUnmount)&&Fe(lt,W,P),6&m)ot(P.component,C,Q);else{if(128&m)return void P.suspense.unmount(C,Q);z&&Wr(P,null,W,"beforeUnmount"),64&m?P.type.remove(P,W,C,rt,Q):I&&!I.hasOnce&&(p!==me||y>0&&64&y)?at(I,W,C,!1,!0):(p===me&&384&y||!h&&16&m)&&at(x,W,C),Q&&q(P)}(V&&(lt=v&&v.onVnodeUnmounted)||z)&&he(()=>{lt&&Fe(lt,W,P),z&&Wr(P,null,W,"unmounted")},C)},q=P=>{const{type:W,el:C,anchor:Q,transition:h}=P;if(W===me)return void et(C,Q);if(W===Vi)return void G(P);const p=()=>{n(C),h&&!h.persisted&&h.afterLeave&&h.afterLeave()};if(1&P.shapeFlag&&h&&!h.persisted){const{leave:v,delayLeave:O}=h,x=()=>v(C,p);O?O(P.el,p,x):x()}else p()},et=(P,W)=>{let C;for(;P!==W;)C=d(P),n(P),P=C;n(W)},ot=(P,W,C)=>{const{bum:Q,scope:h,job:p,subTree:v,um:O,m:x,a:I}=P;fu(x),fu(I),Q&&Wo(Q),h.stop(),p&&(p.flags|=8,k(v,P,W,C)),O&&he(O,W),he(()=>{P.isUnmounted=!0},W),W&&W.pendingBranch&&!W.isUnmounted&&P.asyncDep&&!P.asyncResolved&&P.suspenseId===W.pendingId&&(W.deps--,W.deps===0&&W.resolve())},at=(P,W,C,Q=!1,h=!1,p=0)=>{for(let v=p;v{if(6&P.shapeFlag)return ut(P.component.subTree);if(128&P.shapeFlag)return P.suspense.next();const W=d(P.anchor||P.el),C=W&&W[Bh];return C?d(C):W};let dt=!1;const H=(P,W,C)=>{P==null?W._vnode&&k(W._vnode,null,null,!0):b(W._vnode||null,P,W,null,null,null,C),W._vnode=P,dt||(dt=!0,Ql(),Ch(),dt=!1)},rt={p:b,um:k,m:Y,r:q,mt:st,mc:A,pc:F,pbc:w,n:ut,o:e};return{render:H,hydrate:void 0,createApp:jg(H)}}(t)}function Jo({type:t,props:e},r){return r==="svg"&&t==="foreignObject"||r==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:r}function $r({effect:t,job:e},r){r?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function Sl(t,e,r=!1){const n=t.children,l=e.children;if(At(n)&&At(l))for(let o=0;oQe(Fg);function xn(t,e,r){return rf(t,e,r)}function rf(t,e,r=Ut){const{immediate:n,deep:l,flush:o,once:s}=r,i=ee({},r),a=e&&n||!e&&o!=="post";let u;if(di){if(o==="sync"){const g=Wg();u=g.__watcherHandles||(g.__watcherHandles=[])}else if(!a){const g=()=>{};return g.stop=Ge,g.resume=Ge,g.pause=Ge,g}}const c=te;i.call=(g,b,_)=>Ne(g,c,b,_);let d=!1;o==="post"?i.scheduler=g=>{he(g,c&&c.suspense)}:o!=="sync"&&(d=!0,i.scheduler=(g,b)=>{b?g():yl(g)}),i.augmentJob=g=>{e&&(g.flags|=4),d&&(g.flags|=2,c&&(g.id=c.uid,g.i=c))};const f=vg(t,e,i);return di&&(u?u.push(f):a&&f()),f}function $g(t,e,r){const n=this.proxy,l=qt(t)?t.includes(".")?nf(n,t):()=>n[t]:t.bind(n,n);let o;It(e)?o=e:(o=e.handler,r=e);const s=Ei(this),i=rf(l,o.bind(n),r);return s(),i}function nf(t,e){const r=e.split(".");return()=>{let n=t;for(let l=0;le==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ce(e)}Modifiers`]||t[`${Nr(e)}Modifiers`];function qg(t,e,...r){if(t.isUnmounted)return;const n=t.vnode.props||Ut;let l=r;const o=e.startsWith("update:"),s=o&&Vg(n,e.slice(7));let i;s&&(s.trim&&(l=r.map(c=>qt(c)?c.trim():c)),s.number&&(l=r.map(Hd)));let a=n[i=Fo(e)]||n[i=Fo(Ce(e))];!a&&o&&(a=n[i=Fo(Nr(e))]),a&&Ne(a,t,6,l);const u=n[i+"Once"];if(u){if(t.emitted){if(t.emitted[i])return}else t.emitted={};t.emitted[i]=!0,Ne(u,t,6,l)}}function of(t,e,r=!1){const n=e.emitsCache,l=n.get(t);if(l!==void 0)return l;const o=t.emits;let s={},i=!1;if(!It(t)){const a=u=>{const c=of(u,e,!0);c&&(i=!0,ee(s,c))};!r&&e.mixins.length&&e.mixins.forEach(a),t.extends&&a(t.extends),t.mixins&&t.mixins.forEach(a)}return o||i?(At(o)?o.forEach(a=>s[a]=null):ee(s,o),Wt(t)&&n.set(t,s),s):(Wt(t)&&n.set(t,null),null)}function ao(t,e){return!(!t||!bo(e))&&(e=e.slice(2).replace(/Once$/,""),Mt(t,e[0].toLowerCase()+e.slice(1))||Mt(t,Nr(e))||Mt(t,e))}function pu(t){const{type:e,vnode:r,proxy:n,withProxy:l,propsOptions:[o],slots:s,attrs:i,emit:a,render:u,renderCache:c,props:d,data:f,setupState:g,ctx:b,inheritAttrs:_}=t,S=io(t);let U,D;try{if(4&r.shapeFlag){const $=l||n,X=$;U=qe(u.call(X,$,c,d,g,f,b)),D=i}else{const $=e;U=qe($.length>1?$(d,{attrs:i,slots:s,emit:a}):$(d,null)),D=e.props?i:Hg(i)}}catch($){ri.length=0,ko($,t,1),U=ye(de)}let G=U;if(D&&_!==!1){const $=Object.keys(D),{shapeFlag:X}=G;$.length&&7&X&&(o&&$.some(il)&&(D=zg(D,o)),G=Ur(G,D,!1,!0))}return r.dirs&&(G=Ur(G,null,!1,!0),G.dirs=G.dirs?G.dirs.concat(r.dirs):r.dirs),r.transition&&hi(G,r.transition),U=G,io(S),U}const Hg=t=>{let e;for(const r in t)(r==="class"||r==="style"||bo(r))&&((e||(e={}))[r]=t[r]);return e},zg=(t,e)=>{const r={};for(const n in t)il(n)&&n.slice(9)in e||(r[n]=t[n]);return r};function du(t,e,r){const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!0;for(let l=0;lt.__isSuspense,me=Symbol.for("v-fgt"),Oo=Symbol.for("v-txt"),de=Symbol.for("v-cmt"),Vi=Symbol.for("v-stc"),ri=[];let Se=null;function Ls(t=!1){ri.push(Se=t?null:[])}let fi=1;function gu(t,e=!1){fi+=t,t<0&&Se&&e&&(Se.hasOnce=!0)}function af(t){return t.dynamicChildren=fi>0?Se||kn:null,ri.pop(),Se=ri[ri.length-1]||null,fi>0&&Se&&Se.push(t),t}function Yy(t,e,r,n,l,o){return af(uf(t,e,r,n,l,o,!0))}function js(t,e,r,n,l){return af(ye(t,e,r,n,l,!0))}function pi(t){return!!t&&t.__v_isVNode===!0}function Zr(t,e){return t.type===e.type&&t.key===e.key}const lf=({key:t})=>t??null,qi=({ref:t,ref_key:e,ref_for:r})=>(typeof t=="number"&&(t=""+t),t!=null?qt(t)||Qt(t)||It(t)?{i:Jt,r:t,k:e,f:!!r}:t:null);function uf(t,e=null,r=null,n=0,l=null,o=t===me?0:1,s=!1,i=!1){const a={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&lf(e),ref:e&&qi(e),scopeId:Ph,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:n,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:Jt};return i?(Al(a,r),128&o&&t.normalize(a)):r&&(a.shapeFlag|=qt(r)?8:16),fi>0&&!s&&Se&&(a.patchFlag>0||6&o)&&a.patchFlag!==32&&Se.push(a),a}const ye=function(t,e=null,r=null,n=0,l=null,o=!1){if(t&&t!==zh||(t=de),pi(t)){const a=Ur(t,e,!0);return r&&Al(a,r),fi>0&&!o&&Se&&(6&a.shapeFlag?Se[Se.indexOf(t)]=a:Se.push(a)),a.patchFlag=-2,a}s=t,It(s)&&"__vccOpts"in s&&(t=t.__vccOpts);var s;if(e){e=Kg(e);let{class:a,style:u}=e;a&&!qt(a)&&(e.class=So(a)),Wt(u)&&(pl(u)&&!At(u)&&(u=ee({},u)),e.style=Eo(u))}const i=qt(t)?1:sf(t)?128:Mh(t)?64:Wt(t)?4:It(t)?2:0;return uf(t,e,r,n,l,i,o,!0)};function Kg(t){return t?pl(t)||Xh(t)?ee({},t):t:null}function Ur(t,e,r=!1,n=!1){const{props:l,ref:o,patchFlag:s,children:i,transition:a}=t,u=e?Qg(l||{},e):l,c={__v_isVNode:!0,__v_skip:!0,type:t.type,props:u,key:u&&lf(u),ref:e&&e.ref?r&&o?At(o)?o.concat(qi(e)):[o,qi(e)]:qi(e):o,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:i,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==me?s===-1?16:16|s:s,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:a,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Ur(t.ssContent),ssFallback:t.ssFallback&&Ur(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return a&&n&&hi(c,a.clone(c)),c}function Gg(t=" ",e=0){return ye(Oo,null,t,e)}function Jy(t="",e=!1){return e?(Ls(),js(de,null,t)):ye(de,null,t)}function qe(t){return t==null||typeof t=="boolean"?ye(de):At(t)?ye(me,null,t.slice()):pi(t)?xr(t):ye(Oo,null,String(t))}function xr(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Ur(t)}function Al(t,e){let r=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(At(e))r=16;else if(typeof e=="object"){if(65&n){const l=e.default;return void(l&&(l._c&&(l._d=!1),Al(t,l()),l._c&&(l._d=!0)))}{r=32;const l=e._;l||Xh(e)?l===3&&Jt&&(Jt.slots._===1?e._=1:(e._=2,t.patchFlag|=1024)):e._ctx=Jt}}else It(e)?(e={default:e,_ctx:Jt},r=32):(e=String(e),64&n?(r=16,e=[Gg(e)]):r=8);t.children=e,t.shapeFlag|=r}function Qg(...t){const e={};for(let r=0;rte||Jt;let lo,Us;{const t=eo(),e=(r,n)=>{let l;return(l=t[r])||(l=t[r]=[]),l.push(n),o=>{l.length>1?l.forEach(s=>s(o)):l[0](o)}};lo=e("__VUE_INSTANCE_SETTERS__",r=>te=r),Us=e("__VUE_SSR_SETTERS__",r=>di=r)}const Ei=t=>{const e=te;return lo(t),t.scope.on(),()=>{t.scope.off(),lo(e)}},mu=()=>{te&&te.scope.off(),lo(null)};function hf(t){return 4&t.vnode.shapeFlag}let di=!1;function yu(t,e,r){It(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Wt(e)&&(t.setupState=Ih(e)),ff(t)}function ff(t,e,r){const n=t.type;t.render||(t.render=n.render||Ge);{const l=Ei(t);Lr();try{Bg(t)}finally{jr(),l()}}}const Xg={get:(t,e)=>(le(t,0,""),t[e])};function xo(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Ih(dl(t.exposed)),{get:(e,r)=>r in e?e[r]:r in ei?ei[r](t):void 0,has:(e,r)=>r in e||r in ei})):t.proxy}function Zg(t,e=!0){return It(t)?t.displayName||t.name:t.name||e&&t.__name}const Te=(t,e)=>function(n,l,o=!1){let s,i;return It(n)?s=n:(s=n.get,i=n.set),new bg(s,i,o)}(t,0,di);function kl(t,e,r){const n=arguments.length;return n===2?Wt(e)&&!At(e)?pi(e)?ye(t,null,[e]):ye(t,e):ye(t,null,e):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&pi(r)&&(r=[r]),ye(t,e,r))}const tm="3.5.13";/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ns;const bu=typeof window<"u"&&window.trustedTypes;if(bu)try{Ns=bu.createPolicy("vue",{createHTML:t=>t})}catch{}const pf=Ns?t=>Ns.createHTML(t):t=>t,ir=typeof document<"u"?document:null,vu=ir&&ir.createElement("template"),em={insert:(t,e,r)=>{e.insertBefore(t,r||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,r,n)=>{const l=e==="svg"?ir.createElementNS("http://www.w3.org/2000/svg",t):e==="mathml"?ir.createElementNS("http://www.w3.org/1998/Math/MathML",t):r?ir.createElement(t,{is:r}):ir.createElement(t);return t==="select"&&n&&n.multiple!=null&&l.setAttribute("multiple",n.multiple),l},createText:t=>ir.createTextNode(t),createComment:t=>ir.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>ir.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,r,n,l,o){const s=r?r.previousSibling:e.lastChild;if(l&&(l===o||l.nextSibling))for(;e.insertBefore(l.cloneNode(!0),r),l!==o&&(l=l.nextSibling););else{vu.innerHTML=pf(n==="svg"?`${t}`:n==="mathml"?`${t}`:t);const i=vu.content;if(n==="svg"||n==="mathml"){const a=i.firstChild;for(;a.firstChild;)i.appendChild(a.firstChild);i.removeChild(a)}e.insertBefore(i,r)}return[s?s.nextSibling:e.firstChild,r?r.previousSibling:e.lastChild]}},wr="transition",Wn="animation",gi=Symbol("_vtc"),df={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},rm=ee({},jh,df),Xy=(t=>(t.displayName="Transition",t.props=rm,t))((t,{slots:e})=>kl(Eg,function(r){const n={};for(const Z in r)Z in df||(n[Z]=r[Z]);if(r.css===!1)return n;const{name:l="v",type:o,duration:s,enterFromClass:i=`${l}-enter-from`,enterActiveClass:a=`${l}-enter-active`,enterToClass:u=`${l}-enter-to`,appearFromClass:c=i,appearActiveClass:d=a,appearToClass:f=u,leaveFromClass:g=`${l}-leave-from`,leaveActiveClass:b=`${l}-leave-active`,leaveToClass:_=`${l}-leave-to`}=r,S=function(Z){if(Z==null)return null;if(Wt(Z))return[Xo(Z.enter),Xo(Z.leave)];{const j=Xo(Z);return[j,j]}}(s),U=S&&S[0],D=S&&S[1],{onBeforeEnter:G,onEnter:$,onEnterCancelled:X,onLeave:B,onLeaveCancelled:A,onBeforeAppear:E=G,onAppear:w=$,onAppearCancelled:M=X}=n,R=(Z,j,N,F)=>{Z._enterCancelled=F,qr(Z,j?f:u),qr(Z,j?d:a),N&&N()},nt=(Z,j)=>{Z._isLeaving=!1,qr(Z,g),qr(Z,_),qr(Z,b),j&&j()},st=Z=>(j,N)=>{const F=Z?w:$,it=()=>R(j,Z,N);Vr(F,[j,it]),_u(()=>{qr(j,Z?c:i),Ze(j,Z?f:u),wu(F)||Eu(j,o,U,it)})};return ee(n,{onBeforeEnter(Z){Vr(G,[Z]),Ze(Z,i),Ze(Z,a)},onBeforeAppear(Z){Vr(E,[Z]),Ze(Z,c),Ze(Z,d)},onEnter:st(!1),onAppear:st(!0),onLeave(Z,j){Z._isLeaving=!0;const N=()=>nt(Z,j);Ze(Z,g),Z._enterCancelled?(Ze(Z,b),ku()):(ku(),Ze(Z,b)),_u(()=>{Z._isLeaving&&(qr(Z,g),Ze(Z,_),wu(B)||Eu(Z,o,D,N))}),Vr(B,[Z,N])},onEnterCancelled(Z){R(Z,!1,void 0,!0),Vr(X,[Z])},onAppearCancelled(Z){R(Z,!0,void 0,!0),Vr(M,[Z])},onLeaveCancelled(Z){nt(Z),Vr(A,[Z])}})}(t),e)),Vr=(t,e=[])=>{At(t)?t.forEach(r=>r(...e)):t&&t(...e)},wu=t=>!!t&&(At(t)?t.some(e=>e.length>1):t.length>1);function Xo(t){return(r=>{const n=qt(r)?Number(r):NaN;return isNaN(n)?r:n})(t)}function Ze(t,e){e.split(/\s+/).forEach(r=>r&&t.classList.add(r)),(t[gi]||(t[gi]=new Set)).add(e)}function qr(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.remove(n));const r=t[gi];r&&(r.delete(e),r.size||(t[gi]=void 0))}function _u(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let nm=0;function Eu(t,e,r,n){const l=t._endId=++nm,o=()=>{l===t._endId&&n()};if(r!=null)return setTimeout(o,r);const{type:s,timeout:i,propCount:a}=function(g,b){const _=window.getComputedStyle(g),S=R=>(_[R]||"").split(", "),U=S(`${wr}Delay`),D=S(`${wr}Duration`),G=Su(U,D),$=S(`${Wn}Delay`),X=S(`${Wn}Duration`),B=Su($,X);let A=null,E=0,w=0;b===wr?G>0&&(A=wr,E=G,w=D.length):b===Wn?B>0&&(A=Wn,E=B,w=X.length):(E=Math.max(G,B),A=E>0?G>B?wr:Wn:null,w=A?A===wr?D.length:X.length:0);const M=A===wr&&/\b(transform|all)(,|$)/.test(S(`${wr}Property`).toString());return{type:A,timeout:E,propCount:w,hasTransform:M}}(t,e);if(!s)return n();const u=s+"end";let c=0;const d=()=>{t.removeEventListener(u,f),o()},f=g=>{g.target===t&&++c>=a&&d()};setTimeout(()=>{cAu(r)+Au(t[n])))}function Au(t){return t==="auto"?0:1e3*Number(t.slice(0,-1).replace(",","."))}function ku(){return document.body.offsetHeight}const uo=Symbol("_vod"),gf=Symbol("_vsh"),Zy={beforeMount(t,{value:e},{transition:r}){t[uo]=t.style.display==="none"?"":t.style.display,r&&e?r.beforeEnter(t):$n(t,e)},mounted(t,{value:e},{transition:r}){r&&e&&r.enter(t)},updated(t,{value:e,oldValue:r},{transition:n}){!e!=!r&&(n?e?(n.beforeEnter(t),$n(t,!0),n.enter(t)):n.leave(t,()=>{$n(t,!1)}):$n(t,e))},beforeUnmount(t,{value:e}){$n(t,e)}};function $n(t,e){t.style.display=e?t[uo]:"none",t[gf]=!e}const mf=Symbol("");function tb(t){const e=cf();if(!e)return;const r=e.ut=(l=t(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(o=>co(o,l))},n=()=>{const l=t(e.proxy);e.ce?co(e.ce,l):Ds(e.subTree,l),r(l)};qh(()=>{xh(n)}),bl(()=>{xn(n,Ge,{flush:"post"});const l=new MutationObserver(n);l.observe(e.subTree.el.parentNode,{childList:!0}),vl(()=>l.disconnect())})}function Ds(t,e){if(128&t.shapeFlag){const r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{Ds(r.activeBranch,e)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)co(t.el,e);else if(t.type===me)t.children.forEach(r=>Ds(r,e));else if(t.type===Vi){let{el:r,anchor:n}=t;for(;r&&(co(r,e),r!==n);)r=r.nextSibling}}function co(t,e){if(t.nodeType===1){const r=t.style;let n="";for(const l in e)r.setProperty(`--${l}`,e[l]),n+=`--${l}: ${e[l]};`;r[mf]=n}}const im=/(^|;)\s*display\s*:/,Iu=/\s*!important$/;function Hi(t,e,r){if(At(r))r.forEach(n=>Hi(t,e,n));else if(r==null&&(r=""),e.startsWith("--"))t.setProperty(e,r);else{const n=function(l,o){const s=Zo[o];if(s)return s;let i=Ce(o);if(i!=="filter"&&i in l)return Zo[o]=i;i=_o(i);for(let a=0;a{if(g._vts){if(g._vts<=f.attached)return}else g._vts=Date.now();Ne(function(b,_){if(At(_)){const S=b.stopImmediatePropagation;return b.stopImmediatePropagation=()=>{S.call(b),b._stopped=!0},_.map(U=>D=>!D._stopped&&U&&U(D))}return _}(g,f.value),d,5,[g])};return f.value=c,f.attached=am(),f}(n,l);(function(c,d,f,g){c.addEventListener(d,f,g)})(t,i,u,a)}else s&&(function(u,c,d,f){u.removeEventListener(c,d,f)}(t,i,s,a),o[e]=void 0)}}const Pu=/(?:Once|Passive|Capture)$/;let ts=0;const sm=Promise.resolve(),am=()=>ts||(sm.then(()=>ts=0),ts=Date.now()),Bu=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,lm=["ctrl","shift","alt","meta"],um={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>lm.some(r=>t[`${r}Key`]&&!e.includes(r))},eb=(t,e)=>{const r=t._withMods||(t._withMods={}),n=e.join(".");return r[n]||(r[n]=(l,...o)=>{for(let s=0;s{const r=t._withKeys||(t._withKeys={}),n=e.join(".");return r[n]||(r[n]=l=>{if(!("key"in l))return;const o=Nr(l.key);return e.some(s=>s===o||cm[s]===o)?t(l):void 0})},hm=ee({patchProp:(t,e,r,n,l,o)=>{const s=l==="svg";e==="class"?function(i,a,u){const c=i[gi];c&&(a=(a?[a,...c]:[...c]).join(" ")),a==null?i.removeAttribute("class"):u?i.setAttribute("class",a):i.className=a}(t,n,s):e==="style"?function(i,a,u){const c=i.style,d=qt(u);let f=!1;if(u&&!d){if(a)if(qt(a))for(const g of a.split(";")){const b=g.slice(0,g.indexOf(":")).trim();u[b]==null&&Hi(c,b,"")}else for(const g in a)u[g]==null&&Hi(c,g,"");for(const g in u)g==="display"&&(f=!0),Hi(c,g,u[g])}else if(d){if(a!==u){const g=c[mf];g&&(u+=";"+g),c.cssText=u,f=im.test(u)}}else a&&i.removeAttribute("style");uo in i&&(i[uo]=f?c.display:"",i[gf]&&(c.display="none"))}(t,r,n):bo(e)?il(e)||om(t,e,0,n,o):(e[0]==="."?(e=e.slice(1),1):e[0]==="^"?(e=e.slice(1),0):function(i,a,u,c){if(c)return a==="innerHTML"||a==="textContent"||!!(a in i&&Bu(a)&&It(u));if(a==="spellcheck"||a==="draggable"||a==="translate"||a==="form"||a==="list"&&i.tagName==="INPUT"||a==="type"&&i.tagName==="TEXTAREA")return!1;if(a==="width"||a==="height"){const d=i.tagName;if(d==="IMG"||d==="VIDEO"||d==="CANVAS"||d==="SOURCE")return!1}return Bu(a)&&qt(u)?!1:a in i}(t,e,n,s))?(Cu(t,e,n),t.tagName.includes("-")||e!=="value"&&e!=="checked"&&e!=="selected"||xu(t,e,n,s,0,e!=="value")):!t._isVueCE||!/[A-Z]/.test(e)&&qt(n)?(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),xu(t,e,n,s)):Cu(t,Ce(e),n,0,e)}},em);let Mu;const nb=(...t)=>{const e=(Mu||(Mu=Dg(hm))).createApp(...t),{mount:r}=e;return e.mount=n=>{const l=function(i){return qt(i)?document.querySelector(i):i}(n);if(!l)return;const o=e._component;It(o)||o.render||o.template||(o.template=l.innerHTML),l.nodeType===1&&(l.textContent="");const s=r(l,!1,function(i){if(i instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&i instanceof MathMLElement)return"mathml"}(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),s},e};let yf;const Co=t=>yf=t,bf=Symbol();function Fs(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var ni,es;function ib(){const t=ah(!0),e=t.run(()=>gl({}));let r=[],n=[];const l=dl({install(o){Co(l),l._a=o,o.provide(bf,l),o.config.globalProperties.$pinia=l,n.forEach(s=>r.push(s)),n=[]},use(o){return this._a?r.push(o):n.push(o),this},_p:r,_a:null,_e:t,_s:new Map,state:e});return l}(es=ni||(ni={})).direct="direct",es.patchObject="patch object",es.patchFunction="patch function";const vf=()=>{};function Lu(t,e,r,n=vf){t.push(e);const l=()=>{const o=t.indexOf(e);o>-1&&(t.splice(o,1),n())};return!r&&lh()&&function(o){fe&&fe.cleanups.push(o)}(l),l}function yn(t,...e){t.slice().forEach(r=>{r(...e)})}const fm=t=>t(),ju=Symbol(),rs=Symbol();function Ws(t,e){t instanceof Map&&e instanceof Map?e.forEach((r,n)=>t.set(n,r)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const r in e){if(!e.hasOwnProperty(r))continue;const n=e[r],l=t[r];Fs(l)&&Fs(n)&&t.hasOwnProperty(r)&&!Qt(n)&&!Br(n)?t[r]=Ws(l,n):t[r]=n}return t}const pm=Symbol(),{assign:Er}=Object;function dm(t,e,r,n){const{state:l,actions:o,getters:s}=e,i=r.state.value[t];let a;return a=wf(t,function(){i||(r.state.value[t]=l?l():{});const u=function(c){const d=At(c)?new Array(c.length):{};for(const f in c)d[f]=yg(c,f);return d}(r.state.value[t]);return Er(u,o,Object.keys(s||{}).reduce((c,d)=>(c[d]=dl(Te(()=>{Co(r);const f=r._s.get(t);return s[d].call(f,f)})),c),{}))},e,r,n,!0),a}function wf(t,e,r={},n,l,o){let s;const i=Er({actions:{}},r),a={deep:!0};let u,c,d,f=[],g=[];const b=n.state.value[t];let _;function S(A){let E;u=c=!1,typeof A=="function"?(A(n.state.value[t]),E={type:ni.patchFunction,storeId:t,events:d}):(Ws(n.state.value[t],A),E={type:ni.patchObject,payload:A,storeId:t,events:d});const w=_=Symbol();ml().then(()=>{_===w&&(u=!0)}),c=!0,yn(f,E,n.state.value[t])}o||b||(n.state.value[t]={}),gl({});const U=o?function(){const{state:A}=r,E=A?A():{};this.$patch(w=>{Er(w,E)})}:vf,D=(A,E="")=>{if(ju in A)return A[rs]=E,A;const w=function(){Co(n);const M=Array.from(arguments),R=[],nt=[];let st;yn(g,{args:M,name:w[rs],store:G,after:function(Z){R.push(Z)},onError:function(Z){nt.push(Z)}});try{st=A.apply(this&&this.$id===t?this:G,M)}catch(Z){throw yn(nt,Z),Z}return st instanceof Promise?st.then(Z=>(yn(R,Z),Z)).catch(Z=>(yn(nt,Z),Promise.reject(Z))):(yn(R,st),st)};return w[ju]=!0,w[rs]=E,w},G=wi({_p:n,$id:t,$onAction:Lu.bind(null,g),$patch:S,$reset:U,$subscribe(A,E={}){const w=Lu(f,A,E.detached,()=>M()),M=s.run(()=>xn(()=>n.state.value[t],R=>{(E.flush==="sync"?c:u)&&A({storeId:t,type:ni.direct,events:d},R)},Er({},a,E)));return w},$dispose:function(){s.stop(),f=[],g=[],n._s.delete(t)}});n._s.set(t,G);const $=(n._a&&n._a.runWithContext||fm)(()=>n._e.run(()=>(s=ah()).run(()=>e({action:D}))));for(const A in $){const E=$[A];if(Qt(E)&&(!Qt(B=E)||!B.effect)||Br(E))o||(!b||Fs(X=E)&&X.hasOwnProperty(pm)||(Qt(E)?E.value=b[A]:Ws(E,b[A])),n.state.value[t][A]=E);else if(typeof E=="function"){const w=D(E,A);$[A]=w,i.actions[A]=E}}var X,B;return Er(G,$),Er(Rt(G),$),Object.defineProperty(G,"$state",{get:()=>n.state.value[t],set:A=>{S(E=>{Er(E,A)})}}),n._p.forEach(A=>{Er(G,s.run(()=>A({store:G,app:n._a,pinia:n,options:i})))}),b&&o&&r.hydrate&&r.hydrate(G.$state,b),u=!0,c=!0,G}/*! #__NO_SIDE_EFFECTS__ */function ob(t,e,r){let n,l;const o=typeof e=="function";function s(i,a){return(i=i||(te||Jt||on?Qe(bf,null):null))&&Co(i),(i=yf)._s.has(n)||(o?wf(n,e,l,i):dm(n,l,i)),i._s.get(n)}return n=t,l=o?r:e,s.$id=n,s}/*! + * vue-router v4.5.0 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const _n=typeof document<"u";function Uu(t){return typeof t=="object"||"displayName"in t||"props"in t||"__vccOpts"in t}const Bt=Object.assign;function ns(t,e){const r={};for(const n in e){const l=e[n];r[n]=De(l)?l.map(t):t(l)}return r}const ii=()=>{},De=Array.isArray,_f=/#/g,gm=/&/g,mm=/\//g,ym=/=/g,bm=/\?/g,Ef=/\+/g,vm=/%5B/g,wm=/%5D/g,Sf=/%5E/g,_m=/%60/g,Af=/%7B/g,Em=/%7C/g,kf=/%7D/g,Sm=/%20/g;function Il(t){return encodeURI(""+t).replace(Em,"|").replace(vm,"[").replace(wm,"]")}function is(t){return Il(t).replace(Ef,"%2B").replace(Sm,"+").replace(_f,"%23").replace(gm,"%26").replace(_m,"`").replace(Af,"{").replace(kf,"}").replace(Sf,"^")}function Am(t){return t==null?"":function(e){return Il(e).replace(_f,"%23").replace(bm,"%3F")}(t).replace(mm,"%2F")}function mi(t){try{return decodeURIComponent(""+t)}catch{}return""+t}const km=/\/$/;function os(t,e,r="/"){let n,l={},o="",s="";const i=e.indexOf("#");let a=e.indexOf("?");return i=0&&(a=-1),a>-1&&(n=e.slice(0,a),o=e.slice(a+1,i>-1?i:e.length),l=t(o)),i>-1&&(n=n||e.slice(0,i),s=e.slice(i,e.length)),n=function(u,c){if(u.startsWith("/"))return u;if(!u)return c;const d=c.split("/"),f=u.split("/"),g=f[f.length-1];g!==".."&&g!=="."||f.push("");let b,_,S=d.length-1;for(b=0;b1&&S--}return d.slice(0,S).join("/")+"/"+f.slice(b).join("/")}(n??e,r),{fullPath:n+(o&&"?")+o+s,path:n,query:l,hash:mi(s)}}function Nu(t,e){return e&&t.toLowerCase().startsWith(e.toLowerCase())?t.slice(e.length)||"/":t}function Cn(t,e){return(t.aliasOf||t)===(e.aliasOf||e)}function If(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const r in t)if(!Im(t[r],e[r]))return!1;return!0}function Im(t,e){return De(t)?Du(t,e):De(e)?Du(e,t):t===e}function Du(t,e){return De(e)?t.length===e.length&&t.every((r,n)=>r===e[n]):t.length===1&&t[0]===e}const _r={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var yi,Fu,oi,ss;function Tm(t){if(!t)if(_n){const e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else t="/";return t[0]!=="/"&&t[0]!=="#"&&(t="/"+t),t.replace(km,"")}(Fu=yi||(yi={})).pop="pop",Fu.push="push",(ss=oi||(oi={})).back="back",ss.forward="forward",ss.unknown="";const Om=/^[^#]+#/;function xm(t,e){return t.replace(Om,"#")+e}const Ro=()=>({left:window.scrollX,top:window.scrollY});function Cm(t){let e;if("el"in t){const r=t.el,n=typeof r=="string"&&r.startsWith("#"),l=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!l)return;e=function(o,s){const i=document.documentElement.getBoundingClientRect(),a=o.getBoundingClientRect();return{behavior:s.behavior,left:a.left-i.left-(s.left||0),top:a.top-i.top-(s.top||0)}}(l,t)}else e=t;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function Wu(t,e){return(history.state?history.state.position-e:-1)+t}const as=new Map;function Tf(t,e){const{pathname:r,search:n,hash:l}=e,o=t.indexOf("#");if(o>-1){let s=l.includes(t.slice(o))?t.slice(o).length:1,i=l.slice(s);return i[0]!=="/"&&(i="/"+i),Nu(i,"")}return Nu(r,t)+n+l}function $u(t,e,r,n=!1,l=!1){return{back:t,current:e,forward:r,replaced:n,position:window.history.length,scroll:l?Ro():null}}function Rm(t){const{history:e,location:r}=window,n={value:Tf(t,r)},l={value:e.state};function o(s,i,a){const u=t.indexOf("#"),c=u>-1?(r.host&&document.querySelector("base")?t:t.slice(u))+s:location.protocol+"//"+location.host+t+s;try{e[a?"replaceState":"pushState"](i,"",c),l.value=i}catch{r[a?"replace":"assign"](c)}}return l.value||o(n.value,{back:null,current:n.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0),{location:n,state:l,push:function(s,i){const a=Bt({},l.value,e.state,{forward:s,scroll:Ro()});o(a.current,a,!0),o(s,Bt({},$u(n.value,s,null),{position:a.position+1},i),!1),n.value=s},replace:function(s,i){o(s,Bt({},e.state,$u(l.value.back,s,l.value.forward,!0),i,{position:l.value.position}),!0),n.value=s}}}function Pm(t){const e=Rm(t=Tm(t)),r=function(l,o,s,i){let a=[],u=[],c=null;const d=({state:g})=>{const b=Tf(l,location),_=s.value,S=o.value;let U=0;if(g){if(s.value=b,o.value=g,c&&c===_)return void(c=null);U=S?g.position-S.position:0}else i(b);a.forEach(D=>{D(s.value,_,{delta:U,type:yi.pop,direction:U?U>0?oi.forward:oi.back:oi.unknown})})};function f(){const{history:g}=window;g.state&&g.replaceState(Bt({},g.state,{scroll:Ro()}),"")}return window.addEventListener("popstate",d),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:function(){c=s.value},listen:function(g){a.push(g);const b=()=>{const _=a.indexOf(g);_>-1&&a.splice(_,1)};return u.push(b),b},destroy:function(){for(const g of u)g();u=[],window.removeEventListener("popstate",d),window.removeEventListener("beforeunload",f)}}}(t,e.state,e.location,e.replace),n=Bt({location:"",base:t,go:function(l,o=!0){o||r.pauseListeners(),history.go(l)},createHref:xm.bind(null,t)},e,r);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>e.state.value}),n}function sb(t){return(t=location.host?t||location.pathname+location.search:"").includes("#")||(t+="#"),Pm(t)}function Of(t){return typeof t=="string"||typeof t=="symbol"}const xf=Symbol("");var Vu,bn;function Rn(t,e){return Bt(new Error,{type:t,[xf]:!0},e)}function tr(t,e){return t instanceof Error&&xf in t&&(e==null||!!(t.type&e))}(bn=Vu||(Vu={}))[bn.aborted=4]="aborted",bn[bn.cancelled=8]="cancelled",bn[bn.duplicated=16]="duplicated";const qu="[^/]+?",Bm={sensitive:!1,strict:!1,start:!0,end:!0},Mm=/[.+*?^${}()[\]/\\]/g;function Lm(t,e){let r=0;for(;re.length?e.length===1&&e[0]===80?1:-1:0}function Hu(t,e){let r=0;const n=t.score,l=e.score;for(;r0&&e[e.length-1]<0}const jm={type:0,value:""},Um=/[a-zA-Z0-9_]/;function Nm(t,e,r){const n=function(o,s){const i=Bt({},Bm,s),a=[];let u=i.start?"^":"";const c=[];for(const f of o){const g=f.length?[]:[90];i.strict&&!f.length&&(u+="/");for(let b=0;b1&&(f==="*"||f==="+")&&s(`A repeatable param (${b}) must be alone in its segment. eg: '/:ids+.`),c.push({type:1,value:b,regexp:_,repeatable:f==="*"||f==="+",optional:f==="*"||f==="?"})):s("Invalid state to consume buffer"),b="")}function U(){b+=f}for(;g{o(_)}:ii}function o(i){if(Of(i)){const a=n.get(i);a&&(n.delete(i),r.splice(r.indexOf(a),1),a.children.forEach(o),a.alias.forEach(o))}else{const a=r.indexOf(i);a>-1&&(r.splice(a,1),i.record.name&&n.delete(i.record.name),i.children.forEach(o),i.alias.forEach(o))}}function s(i){const a=function(u,c){let d=0,f=c.length;for(;d!==f;){const b=d+f>>1;Hu(u,c[b])<0?f=b:d=b+1}const g=function(b){let _=b;for(;_=_.parent;)if(Ju(_)&&Hu(b,_)===0)return _}(u);return g&&(f=c.lastIndexOf(g,f-1)),f}(i,r);r.splice(a,0,i),i.record.name&&!Qu(i)&&n.set(i.record.name,i)}return e=Yu({strict:!1,end:!0,sensitive:!1},e),t.forEach(i=>l(i)),{addRoute:l,resolve:function(i,a){let u,c,d,f={};if("name"in i&&i.name){if(u=n.get(i.name),!u)throw Rn(1,{location:i});d=u.record.name,f=Bt(Ku(a.params,u.keys.filter(_=>!_.optional).concat(u.parent?u.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),i.params&&Ku(i.params,u.keys.map(_=>_.name))),c=u.stringify(f)}else if(i.path!=null)c=i.path,u=r.find(_=>_.re.test(c)),u&&(f=u.parse(c),d=u.record.name);else{if(u=a.name?n.get(a.name):r.find(_=>_.re.test(a.path)),!u)throw Rn(1,{location:i,currentLocation:a});d=u.record.name,f=Bt({},a.params,i.params),c=u.stringify(f)}const g=[];let b=u;for(;b;)g.unshift(b.record),b=b.parent;return{name:d,path:c,params:f,matched:g,meta:Wm(g)}},removeRoute:o,clearRoutes:function(){r.length=0,n.clear()},getRoutes:function(){return r},getRecordMatcher:function(i){return n.get(i)}}}function Ku(t,e){const r={};for(const n of e)n in t&&(r[n]=t[n]);return r}function Gu(t){const e={path:t.path,redirect:t.redirect,name:t.name,meta:t.meta||{},aliasOf:t.aliasOf,beforeEnter:t.beforeEnter,props:Fm(t),children:t.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in t?t.components||null:t.component&&{default:t.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function Fm(t){const e={},r=t.props||!1;if("component"in t)e.default=r;else for(const n in t.components)e[n]=typeof r=="object"?r[n]:r;return e}function Qu(t){for(;t;){if(t.record.aliasOf)return!0;t=t.parent}return!1}function Wm(t){return t.reduce((e,r)=>Bt(e,r.meta),{})}function Yu(t,e){const r={};for(const n in t)r[n]=n in e?e[n]:t[n];return r}function Ju({record:t}){return!!(t.name||t.components&&Object.keys(t.components).length||t.redirect)}function $m(t){const e={};if(t===""||t==="?")return e;const r=(t[0]==="?"?t.slice(1):t).split("&");for(let n=0;no&&is(o)):[n&&is(n)]).forEach(o=>{o!==void 0&&(e+=(e.length?"&":"")+r,o!=null&&(e+="="+o))})}return e}function Vm(t){const e={};for(const r in t){const n=t[r];n!==void 0&&(e[r]=De(n)?n.map(l=>l==null?null:""+l):n==null?n:""+n)}return e}const qm=Symbol(""),Zu=Symbol(""),Tl=Symbol(""),Cf=Symbol(""),$s=Symbol("");function Vn(){let t=[];return{add:function(e){return t.push(e),()=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)}},list:()=>t.slice(),reset:function(){t=[]}}}function Cr(t,e,r,n,l,o=s=>s()){const s=n&&(n.enterCallbacks[l]=n.enterCallbacks[l]||[]);return()=>new Promise((i,a)=>{const u=f=>{var g;f===!1?a(Rn(4,{from:r,to:e})):f instanceof Error?a(f):typeof(g=f)=="string"||g&&typeof g=="object"?a(Rn(2,{from:e,to:f})):(s&&n.enterCallbacks[l]===s&&typeof f=="function"&&s.push(f),i())},c=o(()=>t.call(n&&n.instances[l],e,r,u));let d=Promise.resolve(c);t.length<3&&(d=d.then(u)),d.catch(f=>a(f))})}function ls(t,e,r,n,l=o=>o()){const o=[];for(const s of t)for(const i in s.components){let a=s.components[i];if(e==="beforeRouteEnter"||s.instances[i])if(Uu(a)){const u=(a.__vccOpts||a)[e];u&&o.push(Cr(u,r,n,s,i,l))}else{let u=a();o.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${i}" at "${s.path}"`);const d=(f=c).__esModule||f[Symbol.toStringTag]==="Module"||f.default&&Uu(f.default)?c.default:c;var f;s.mods[i]=c,s.components[i]=d;const g=(d.__vccOpts||d)[e];return g&&Cr(g,r,n,s,i,l)()}))}}return o}function tc(t){const e=Qe(Tl),r=Qe(Cf),n=Te(()=>{const i=Tn(t.to);return e.resolve(i)}),l=Te(()=>{const{matched:i}=n.value,{length:a}=i,u=i[a-1],c=r.matched;if(!u||!c.length)return-1;const d=c.findIndex(Cn.bind(null,u));if(d>-1)return d;const f=ec(i[a-2]);return a>1&&ec(u)===f&&c[c.length-1].path!==f?c.findIndex(Cn.bind(null,i[a-2])):d}),o=Te(()=>l.value>-1&&function(i,a){for(const u in a){const c=a[u],d=i[u];if(typeof c=="string"){if(c!==d)return!1}else if(!De(d)||d.length!==c.length||c.some((f,g)=>f!==d[g]))return!1}return!0}(r.params,n.value.params)),s=Te(()=>l.value>-1&&l.value===r.matched.length-1&&If(r.params,n.value.params));return{route:n,href:Te(()=>n.value.href),isActive:o,isExactActive:s,navigate:function(i={}){if(function(a){if(!(a.metaKey||a.altKey||a.ctrlKey||a.shiftKey)&&!a.defaultPrevented&&!(a.button!==void 0&&a.button!==0)){if(a.currentTarget&&a.currentTarget.getAttribute){const u=a.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(u))return}return a.preventDefault&&a.preventDefault(),!0}}(i)){const a=e[Tn(t.replace)?"replace":"push"](Tn(t.to)).catch(ii);return t.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>a),a}return Promise.resolve()}}}const Hm=Wh({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"}},useLink:tc,setup(t,{slots:e}){const r=wi(tc(t)),{options:n}=Qe(Tl),l=Te(()=>({[rc(t.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[rc(t.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const o=e.default&&((s=e.default(r)).length===1?s[0]:s);var s;return t.custom?o:kl("a",{"aria-current":r.isExactActive?t.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:l.value},o)}}});function ec(t){return t?t.aliasOf?t.aliasOf.path:t.path:""}const rc=(t,e,r)=>t??e??r;function nc(t,e){if(!t)return null;const r=t(e);return r.length===1?r[0]:r}const zm=Wh({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(t,{attrs:e,slots:r}){const n=Qe($s),l=Te(()=>t.route||n.value),o=Qe(Zu,0),s=Te(()=>{let u=Tn(o);const{matched:c}=l.value;let d;for(;(d=c[u])&&!d.components;)u++;return u}),i=Te(()=>l.value.matched[s.value]);$i(Zu,Te(()=>s.value+1)),$i(qm,i),$i($s,l);const a=gl();return xn(()=>[a.value,i.value,t.name],([u,c,d],[f,g,b])=>{c&&(c.instances[d]=u,g&&g!==c&&u&&u===f&&(c.leaveGuards.size||(c.leaveGuards=g.leaveGuards),c.updateGuards.size||(c.updateGuards=g.updateGuards))),!u||!c||g&&Cn(c,g)&&f||(c.enterCallbacks[d]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=l.value,c=t.name,d=i.value,f=d&&d.components[c];if(!f)return nc(r.default,{Component:f,route:u});const g=d.props[c],b=g?g===!0?u.params:typeof g=="function"?g(u):g:null,_=kl(f,Bt({},b,e,{onVnodeUnmounted:S=>{S.component.isUnmounted&&(d.instances[c]=null)},ref:a}));return nc(r.default,{Component:_,route:u})||_}}});function ab(t){const e=Dm(t.routes,t),r=t.parseQuery||$m,n=t.stringifyQuery||Xu,l=t.history,o=Vn(),s=Vn(),i=Vn(),a=kh(_r,!0);let u=_r;_n&&t.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=ns.bind(null,k=>""+k),d=ns.bind(null,Am),f=ns.bind(null,mi);function g(k,q){if(q=Bt({},q||a.value),typeof k=="string"){const rt=os(r,k,q.path),tt=e.resolve({path:rt.path},q),P=l.createHref(rt.fullPath);return Bt(rt,tt,{params:f(tt.params),hash:mi(rt.hash),redirectedFrom:void 0,href:P})}let et;if(k.path!=null)et=Bt({},k,{path:os(r,k.path,q.path).path});else{const rt=Bt({},k.params);for(const tt in rt)rt[tt]==null&&delete rt[tt];et=Bt({},k,{params:d(rt)}),q.params=d(q.params)}const ot=e.resolve(et,q),at=k.hash||"";ot.params=c(f(ot.params));const ut=function(rt,tt){const P=tt.query?rt(tt.query):"";return tt.path+(P&&"?")+P+(tt.hash||"")}(n,Bt({},k,{hash:(dt=at,Il(dt).replace(Af,"{").replace(kf,"}").replace(Sf,"^")),path:ot.path}));var dt;const H=l.createHref(ut);return Bt({fullPath:ut,hash:at,query:n===Xu?Vm(k.query):k.query||{}},ot,{redirectedFrom:void 0,href:H})}function b(k){return typeof k=="string"?os(r,k,a.value.path):Bt({},k)}function _(k,q){if(u!==k)return Rn(8,{from:q,to:k})}function S(k){return D(k)}function U(k){const q=k.matched[k.matched.length-1];if(q&&q.redirect){const{redirect:et}=q;let ot=typeof et=="function"?et(k):et;return typeof ot=="string"&&(ot=ot.includes("?")||ot.includes("#")?ot=b(ot):{path:ot},ot.params={}),Bt({query:k.query,hash:k.hash,params:ot.path!=null?{}:k.params},ot)}}function D(k,q){const et=u=g(k),ot=a.value,at=k.state,ut=k.force,dt=k.replace===!0,H=U(et);if(H)return D(Bt(b(H),{state:typeof H=="object"?Bt({},at,H.state):at,force:ut,replace:dt}),q||et);const rt=et;let tt;return rt.redirectedFrom=q,!ut&&function(P,W,C){const Q=W.matched.length-1,h=C.matched.length-1;return Q>-1&&Q===h&&Cn(W.matched[Q],C.matched[h])&&If(W.params,C.params)&&P(W.query)===P(C.query)&&W.hash===C.hash}(n,ot,et)&&(tt=Rn(16,{to:rt,from:ot}),j(ot,ot,!0,!1)),(tt?Promise.resolve(tt):X(rt,ot)).catch(P=>tr(P)?tr(P,2)?P:Z(P):st(P,rt,ot)).then(P=>{if(P){if(tr(P,2))return D(Bt({replace:dt},b(P.to),{state:typeof P.to=="object"?Bt({},at,P.to.state):at,force:ut}),q||rt)}else P=A(rt,ot,!0,dt,at);return B(rt,ot,P),P})}function G(k,q){const et=_(k,q);return et?Promise.reject(et):Promise.resolve()}function $(k){const q=it.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(k):k()}function X(k,q){let et;const[ot,at,ut]=function(H,rt){const tt=[],P=[],W=[],C=Math.max(rt.matched.length,H.matched.length);for(let Q=0;QCn(v,h))?P.push(h):tt.push(h));const p=H.matched[Q];p&&(rt.matched.find(v=>Cn(v,p))||W.push(p))}return[tt,P,W]}(k,q);et=ls(ot.reverse(),"beforeRouteLeave",k,q);for(const H of ot)H.leaveGuards.forEach(rt=>{et.push(Cr(rt,k,q))});const dt=G.bind(null,k,q);return et.push(dt),Y(et).then(()=>{et=[];for(const H of o.list())et.push(Cr(H,k,q));return et.push(dt),Y(et)}).then(()=>{et=ls(at,"beforeRouteUpdate",k,q);for(const H of at)H.updateGuards.forEach(rt=>{et.push(Cr(rt,k,q))});return et.push(dt),Y(et)}).then(()=>{et=[];for(const H of ut)if(H.beforeEnter)if(De(H.beforeEnter))for(const rt of H.beforeEnter)et.push(Cr(rt,k,q));else et.push(Cr(H.beforeEnter,k,q));return et.push(dt),Y(et)}).then(()=>(k.matched.forEach(H=>H.enterCallbacks={}),et=ls(ut,"beforeRouteEnter",k,q,$),et.push(dt),Y(et))).then(()=>{et=[];for(const H of s.list())et.push(Cr(H,k,q));return et.push(dt),Y(et)}).catch(H=>tr(H,8)?H:Promise.reject(H))}function B(k,q,et){i.list().forEach(ot=>$(()=>ot(k,q,et)))}function A(k,q,et,ot,at){const ut=_(k,q);if(ut)return ut;const dt=q===_r,H=_n?history.state:{};et&&(ot||dt?l.replace(k.fullPath,Bt({scroll:dt&&H&&H.scroll},at)):l.push(k.fullPath,at)),a.value=k,j(k,q,et,dt),Z()}let E;function w(){E||(E=l.listen((k,q,et)=>{if(!J.listening)return;const ot=g(k),at=U(ot);if(at)return void D(Bt(at,{replace:!0,force:!0}),ot).catch(ii);u=ot;const ut=a.value;var dt,H;_n&&(dt=Wu(ut.fullPath,et.delta),H=Ro(),as.set(dt,H)),X(ot,ut).catch(rt=>tr(rt,12)?rt:tr(rt,2)?(D(Bt(b(rt.to),{force:!0}),ot).then(tt=>{tr(tt,20)&&!et.delta&&et.type===yi.pop&&l.go(-1,!1)}).catch(ii),Promise.reject()):(et.delta&&l.go(-et.delta,!1),st(rt,ot,ut))).then(rt=>{(rt=rt||A(ot,ut,!1))&&(et.delta&&!tr(rt,8)?l.go(-et.delta,!1):et.type===yi.pop&&tr(rt,20)&&l.go(-1,!1)),B(ot,ut,rt)}).catch(ii)}))}let M,R=Vn(),nt=Vn();function st(k,q,et){Z(k);const ot=nt.list();return ot.length&&ot.forEach(at=>at(k,q,et)),Promise.reject(k)}function Z(k){return M||(M=!k,w(),R.list().forEach(([q,et])=>k?et(k):q()),R.reset()),k}function j(k,q,et,ot){const{scrollBehavior:at}=t;if(!_n||!at)return Promise.resolve();const ut=!et&&function(dt){const H=as.get(dt);return as.delete(dt),H}(Wu(k.fullPath,0))||(ot||!et)&&history.state&&history.state.scroll||null;return ml().then(()=>at(k,q,ut)).then(dt=>dt&&Cm(dt)).catch(dt=>st(dt,k,q))}const N=k=>l.go(k);let F;const it=new Set,J={currentRoute:a,listening:!0,addRoute:function(k,q){let et,ot;return Of(k)?(et=e.getRecordMatcher(k),ot=q):ot=k,e.addRoute(ot,et)},removeRoute:function(k){const q=e.getRecordMatcher(k);q&&e.removeRoute(q)},clearRoutes:e.clearRoutes,hasRoute:function(k){return!!e.getRecordMatcher(k)},getRoutes:function(){return e.getRoutes().map(k=>k.record)},resolve:g,options:t,push:S,replace:function(k){return S(Bt(b(k),{replace:!0}))},go:N,back:()=>N(-1),forward:()=>N(1),beforeEach:o.add,beforeResolve:s.add,afterEach:i.add,onError:nt.add,isReady:function(){return M&&a.value!==_r?Promise.resolve():new Promise((k,q)=>{R.add([k,q])})},install(k){k.component("RouterLink",Hm),k.component("RouterView",zm),k.config.globalProperties.$router=this,Object.defineProperty(k.config.globalProperties,"$route",{enumerable:!0,get:()=>Tn(a)}),_n&&!F&&a.value===_r&&(F=!0,S(l.location).catch(ot=>{}));const q={};for(const ot in _r)Object.defineProperty(q,ot,{get:()=>a.value[ot],enumerable:!0});k.provide(Tl,this),k.provide(Cf,Sh(q)),k.provide($s,a);const et=k.unmount;it.add(k),k.unmount=function(){it.delete(k),it.size<1&&(u=_r,E&&E(),E=null,a.value=_r,F=!1,M=!1),et()}}};function Y(k){return k.reduce((q,et)=>q.then(()=>$(et)),Promise.resolve())}return J}var Vs=Object.defineProperty,Km=Object.getOwnPropertyDescriptor,Gm=Object.getOwnPropertyNames,Qm=Object.prototype.hasOwnProperty,ne=(t,e)=>()=>(t&&(e=t(t=0)),e),mt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),fn=(t,e)=>{for(var r in e)Vs(t,r,{get:e[r],enumerable:!0})},Dt=t=>((e,r,n,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Gm(r))!Qm.call(e,o)&&o!==n&&Vs(e,o,{get:()=>r[o],enumerable:!(l=Km(r,o))||l.enumerable});return e})(Vs({},"__esModule",{value:!0}),t),ht=ne(()=>{}),Nt={};function Ol(t){throw new Error("Node.js process "+t+" is not supported by JSPM core outside of Node.js")}function Ym(){!sn||!en||(sn=!1,en.length?He=en.concat(He):si=-1,He.length&&Rf())}function Rf(){if(!sn){var t=setTimeout(Ym,0);sn=!0;for(var e=He.length;e;){for(en=He,He=[];++si1)for(var r=1;rEa,_debugProcess:()=>_a,_events:()=>Vf,_eventsCount:()=>qf,_exiting:()=>aa,_fatalExceptions:()=>ba,_getActiveHandles:()=>Uf,_getActiveRequests:()=>jf,_kill:()=>ca,_linkedBinding:()=>Mf,_maxListeners:()=>$f,_preload_modules:()=>Ma,_rawDebug:()=>ia,_startProfilerIdleNotifier:()=>Sa,_stopProfilerIdleNotifier:()=>Aa,_tickCallback:()=>wa,abort:()=>Oa,addListener:()=>Hf,allowedNodeEnvironmentFlags:()=>ma,arch:()=>Hs,argv:()=>Gs,argv0:()=>Ba,assert:()=>Nf,binding:()=>Zs,chdir:()=>ra,config:()=>la,cpuUsage:()=>Ki,cwd:()=>ea,debugPort:()=>Pa,default:()=>xl,dlopen:()=>Lf,domain:()=>sa,emit:()=>Yf,emitWarning:()=>Xs,env:()=>Ks,execArgv:()=>Qs,execPath:()=>Ra,exit:()=>da,features:()=>ya,hasUncaughtExceptionCaptureCallback:()=>Df,hrtime:()=>zi,kill:()=>pa,listeners:()=>Wf,memoryUsage:()=>fa,moduleLoadList:()=>oa,nextTick:()=>Pf,off:()=>Kf,on:()=>rr,once:()=>zf,openStdin:()=>ga,pid:()=>xa,platform:()=>zs,ppid:()=>Ca,prependListener:()=>Jf,prependOnceListener:()=>Xf,reallyExit:()=>ua,release:()=>na,removeAllListeners:()=>Qf,removeListener:()=>Gf,resourceUsage:()=>ha,setSourceMapsEnabled:()=>La,setUncaughtExceptionCaptureCallback:()=>va,stderr:()=>Ia,stdin:()=>Ta,stdout:()=>ka,title:()=>qs,umask:()=>ta,uptime:()=>Ff,version:()=>Ys,versions:()=>Js});var He,sn,en,si,qs,Hs,zs,Ks,Gs,Qs,Ys,Js,Xs,Zs,ta,ea,ra,na,ia,oa,sa,aa,la,ua,ca,Ki,ha,fa,pa,da,ga,ma,ya,ba,va,wa,_a,Ea,Sa,Aa,ka,Ia,Ta,Oa,xa,Ca,Ra,Pa,Ba,Ma,La,Rr,us,Gi,$f,Vf,qf,Hf,zf,Kf,Gf,Qf,Yf,Jf,Xf,xl,Jm=ne(()=>{ht(),pt(),ft(),He=[],sn=!1,si=-1,Bf.prototype.run=function(){this.fun.apply(null,this.array)},qs="browser",Hs="x64",zs="browser",Ks={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},Gs=["/usr/bin/node"],Qs=[],Ys="v16.8.0",Js={},Xs=function(t,e){},Zs=function(t){Ol("binding")},ta=function(t){return 0},ea=function(){return"/"},ra=function(t){},na={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},ia=ae,oa=[],sa={},aa=!1,la={},ua=ae,ca=ae,ha=Ki=function(){return{}},fa=Ki,pa=ae,da=ae,ga=ae,ma={},ya={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},ba=ae,va=ae,wa=ae,_a=ae,Ea=ae,Sa=ae,Aa=ae,ka=void 0,Ia=void 0,Ta=void 0,Oa=ae,xa=2,Ca=1,Ra="/bin/usr/node",Pa=9229,Ba="node",Ma=[],La=ae,(Rr={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0}).now===void 0&&(us=Date.now(),Rr.timing&&Rr.timing.navigationStart&&(us=Rr.timing.navigationStart),Rr.now=()=>Date.now()-us),Gi=1e9,zi.bigint=function(t){var e=zi(t);return typeof BigInt>"u"?e[0]*Gi+e[1]:BigInt(e[0]*Gi)+BigInt(e[1])},xl={version:Ys,versions:Js,arch:Hs,platform:zs,release:na,_rawDebug:ia,moduleLoadList:oa,binding:Zs,_linkedBinding:Mf,_events:Vf={},_eventsCount:qf=0,_maxListeners:$f=10,on:rr,addListener:Hf=rr,once:zf=rr,off:Kf=rr,removeListener:Gf=rr,removeAllListeners:Qf=rr,emit:Yf=ae,prependListener:Jf=rr,prependOnceListener:Xf=rr,listeners:Wf,domain:sa,_exiting:aa,config:la,dlopen:Lf,uptime:Ff,_getActiveRequests:jf,_getActiveHandles:Uf,reallyExit:ua,_kill:ca,cpuUsage:Ki,resourceUsage:ha,memoryUsage:fa,kill:pa,exit:da,openStdin:ga,allowedNodeEnvironmentFlags:ma,assert:Nf,features:ya,_fatalExceptions:ba,setUncaughtExceptionCaptureCallback:va,hasUncaughtExceptionCaptureCallback:Df,emitWarning:Xs,nextTick:Pf,_tickCallback:wa,_debugProcess:_a,_debugEnd:Ea,_startProfilerIdleNotifier:Sa,_stopProfilerIdleNotifier:Aa,stdout:ka,stdin:Ta,stderr:Ia,abort:Oa,umask:ta,chdir:ra,cwd:ea,env:Ks,title:qs,argv:Gs,execArgv:Qs,pid:xa,ppid:Ca,execPath:Ra,debugPort:Pa,hrtime:zi,argv0:Ba,_preload_modules:Ma,setSourceMapsEnabled:La}}),ft=ne(()=>{Jm()}),ie={};function Xm(){if(Na)return Sr;Na=!0;let t=function(){if(ja)return En;ja=!0,En.byteLength=function(T){var L=I(T),z=L[0],V=L[1];return 3*(z+V)/4-V},En.toByteArray=function(T){var L,z,V=I(T),lt=V[0],ct=V[1],yt=new v(function(Ot,xt,_t){return 3*(xt+_t)/4-_t}(0,lt,ct)),bt=0,wt=ct>0?lt-4:lt;for(z=0;z>16&255,yt[bt++]=L>>8&255,yt[bt++]=255&L;return ct===2&&(L=p[T.charCodeAt(z)]<<2|p[T.charCodeAt(z+1)]>>4,yt[bt++]=255&L),ct===1&&(L=p[T.charCodeAt(z)]<<10|p[T.charCodeAt(z+1)]<<4|p[T.charCodeAt(z+2)]>>2,yt[bt++]=L>>8&255,yt[bt++]=255&L),yt},En.fromByteArray=function(T){for(var L,z=T.length,V=z%3,lt=[],ct=16383,yt=0,bt=z-V;ytbt?bt:yt+ct));return V===1?(L=T[z-1],lt.push(h[L>>2]+h[L<<4&63]+"==")):V===2&&(L=(T[z-2]<<8)+T[z-1],lt.push(h[L>>10]+h[L>>4&63]+h[L<<2&63]+"=")),lt.join("")};for(var h=[],p=[],v=typeof Uint8Array<"u"?Uint8Array:Array,O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",x=0;x<64;++x)h[x]=O[x],p[O.charCodeAt(x)]=x;function I(T){var L=T.length;if(L%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var z=T.indexOf("=");return z===-1&&(z=L),[z,z===L?0:4-z%4]}function m(T){return h[T>>18&63]+h[T>>12&63]+h[T>>6&63]+h[63&T]}function y(T,L,z){for(var V,lt=[],ct=L;ct>1,z=-7,V=v?x-1:0,lt=v?-1:1,ct=h[p+V];for(V+=lt,I=ct&(1<<-z)-1,ct>>=-z,z+=y;z>0;I=256*I+h[p+V],V+=lt,z-=8);for(m=I&(1<<-z)-1,I>>=-z,z+=O;z>0;m=256*m+h[p+V],V+=lt,z-=8);if(I===0)I=1-L;else{if(I===T)return m?NaN:1/0*(ct?-1:1);m+=Math.pow(2,O),I-=L}return(ct?-1:1)*m*Math.pow(2,I-O)},Qi.write=function(h,p,v,O,x,I){var m,y,T,L=8*I-x-1,z=(1<>1,lt=x===23?Math.pow(2,-24)-Math.pow(2,-77):0,ct=O?0:I-1,yt=O?1:-1,bt=p<0||p===0&&1/p<0?1:0;for(p=Math.abs(p),isNaN(p)||p===1/0?(y=isNaN(p)?1:0,m=z):(m=Math.floor(Math.log(p)/Math.LN2),p*(T=Math.pow(2,-m))<1&&(m--,T*=2),(p+=m+V>=1?lt/T:lt*Math.pow(2,1-V))*T>=2&&(m++,T/=2),m+V>=z?(y=0,m=z):m+V>=1?(y=(p*T-1)*Math.pow(2,x),m+=V):(y=p*Math.pow(2,V-1)*Math.pow(2,x),m=0));x>=8;h[v+ct]=255&y,ct+=yt,y/=256,x-=8);for(m=m<0;h[v+ct]=255&m,ct+=yt,m/=256,L-=8);h[v+ct-yt]|=128*bt}),Qi),r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Sr.Buffer=o,Sr.SlowBuffer=function(h){return+h!=h&&(h=0),o.alloc(+h)},Sr.INSPECT_MAX_BYTES=50;let n=2147483647;function l(h){if(h>n)throw new RangeError('The value "'+h+'" is invalid for option "size"');let p=new Uint8Array(h);return Object.setPrototypeOf(p,o.prototype),p}function o(h,p,v){if(typeof h=="number"){if(typeof p=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return a(h)}return s(h,p,v)}function s(h,p,v){if(typeof h=="string")return function(I,m){if((typeof m!="string"||m==="")&&(m="utf8"),!o.isEncoding(m))throw new TypeError("Unknown encoding: "+m);let y=0|f(I,m),T=l(y),L=T.write(I,m);return L!==y&&(T=T.slice(0,L)),T}(h,p);if(ArrayBuffer.isView(h))return function(I){if(tt(I,Uint8Array)){let m=new Uint8Array(I);return c(m.buffer,m.byteOffset,m.byteLength)}return u(I)}(h);if(h==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h);if(tt(h,ArrayBuffer)||h&&tt(h.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(tt(h,SharedArrayBuffer)||h&&tt(h.buffer,SharedArrayBuffer)))return c(h,p,v);if(typeof h=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let O=h.valueOf&&h.valueOf();if(O!=null&&O!==h)return o.from(O,p,v);let x=function(I){if(o.isBuffer(I)){let m=0|d(I.length),y=l(m);return y.length===0||I.copy(y,0,0,m),y}if(I.length!==void 0)return typeof I.length!="number"||P(I.length)?l(0):u(I);if(I.type==="Buffer"&&Array.isArray(I.data))return u(I.data)}(h);if(x)return x;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof h[Symbol.toPrimitive]=="function")return o.from(h[Symbol.toPrimitive]("string"),p,v);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h)}function i(h){if(typeof h!="number")throw new TypeError('"size" argument must be of type number');if(h<0)throw new RangeError('The value "'+h+'" is invalid for option "size"')}function a(h){return i(h),l(h<0?0:0|d(h))}function u(h){let p=h.length<0?0:0|d(h.length),v=l(p);for(let O=0;O=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return 0|h}function f(h,p){if(o.isBuffer(h))return h.length;if(ArrayBuffer.isView(h)||tt(h,ArrayBuffer))return h.byteLength;if(typeof h!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof h);let v=h.length,O=arguments.length>2&&arguments[2]===!0;if(!O&&v===0)return 0;let x=!1;for(;;)switch(p){case"ascii":case"latin1":case"binary":return v;case"utf8":case"utf-8":return dt(h).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*v;case"hex":return v>>>1;case"base64":return H(h).length;default:if(x)return O?-1:dt(h).length;p=(""+p).toLowerCase(),x=!0}}function g(h,p,v){let O=!1;if((p===void 0||p<0)&&(p=0),p>this.length||((v===void 0||v>this.length)&&(v=this.length),v<=0)||(v>>>=0)<=(p>>>=0))return"";for(h||(h="utf8");;)switch(h){case"hex":return R(this,p,v);case"utf8":case"utf-8":return A(this,p,v);case"ascii":return w(this,p,v);case"latin1":case"binary":return M(this,p,v);case"base64":return B(this,p,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return nt(this,p,v);default:if(O)throw new TypeError("Unknown encoding: "+h);h=(h+"").toLowerCase(),O=!0}}function b(h,p,v){let O=h[p];h[p]=h[v],h[v]=O}function _(h,p,v,O,x){if(h.length===0)return-1;if(typeof v=="string"?(O=v,v=0):v>2147483647?v=2147483647:v<-2147483648&&(v=-2147483648),P(v=+v)&&(v=x?0:h.length-1),v<0&&(v=h.length+v),v>=h.length){if(x)return-1;v=h.length-1}else if(v<0){if(!x)return-1;v=0}if(typeof p=="string"&&(p=o.from(p,O)),o.isBuffer(p))return p.length===0?-1:S(h,p,v,O,x);if(typeof p=="number")return p&=255,typeof Uint8Array.prototype.indexOf=="function"?x?Uint8Array.prototype.indexOf.call(h,p,v):Uint8Array.prototype.lastIndexOf.call(h,p,v):S(h,[p],v,O,x);throw new TypeError("val must be string, number or Buffer")}function S(h,p,v,O,x){let I,m=1,y=h.length,T=p.length;if(O!==void 0&&((O=String(O).toLowerCase())==="ucs2"||O==="ucs-2"||O==="utf16le"||O==="utf-16le")){if(h.length<2||p.length<2)return-1;m=2,y/=2,T/=2,v/=2}function L(z,V){return m===1?z[V]:z.readUInt16BE(V*m)}if(x){let z=-1;for(I=v;Iy&&(v=y-T),I=v;I>=0;I--){let z=!0;for(let V=0;Vx&&(O=x):O=x;let I,m=p.length;for(O>m/2&&(O=m/2),I=0;I>8,T=m%256,L.push(T),L.push(y);return L}(p,h.length-v),h,v,O)}function B(h,p,v){return p===0&&v===h.length?t.fromByteArray(h):t.fromByteArray(h.slice(p,v))}function A(h,p,v){v=Math.min(h.length,v);let O=[],x=p;for(;x239?4:I>223?3:I>191?2:1;if(x+y<=v){let T,L,z,V;switch(y){case 1:I<128&&(m=I);break;case 2:T=h[x+1],(192&T)==128&&(V=(31&I)<<6|63&T,V>127&&(m=V));break;case 3:T=h[x+1],L=h[x+2],(192&T)==128&&(192&L)==128&&(V=(15&I)<<12|(63&T)<<6|63&L,V>2047&&(V<55296||V>57343)&&(m=V));break;case 4:T=h[x+1],L=h[x+2],z=h[x+3],(192&T)==128&&(192&L)==128&&(192&z)==128&&(V=(15&I)<<18|(63&T)<<12|(63&L)<<6|63&z,V>65535&&V<1114112&&(m=V))}}m===null?(m=65533,y=1):m>65535&&(m-=65536,O.push(m>>>10&1023|55296),m=56320|1023&m),O.push(m),x+=y}return function(I){let m=I.length;if(m<=E)return String.fromCharCode.apply(String,I);let y="",T=0;for(;TO.length?(o.isBuffer(I)||(I=o.from(I)),I.copy(O,x)):Uint8Array.prototype.set.call(O,I,x);else{if(!o.isBuffer(I))throw new TypeError('"list" argument must be an Array of Buffers');I.copy(O,x)}x+=I.length}return O},o.byteLength=f,o.prototype._isBuffer=!0,o.prototype.swap16=function(){let h=this.length;if(h%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let p=0;pp&&(h+=" ... "),""},r&&(o.prototype[r]=o.prototype.inspect),o.prototype.compare=function(h,p,v,O,x){if(tt(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(p===void 0&&(p=0),v===void 0&&(v=h?h.length:0),O===void 0&&(O=0),x===void 0&&(x=this.length),p<0||v>h.length||O<0||x>this.length)throw new RangeError("out of range index");if(O>=x&&p>=v)return 0;if(O>=x)return-1;if(p>=v)return 1;if(this===h)return 0;let I=(x>>>=0)-(O>>>=0),m=(v>>>=0)-(p>>>=0),y=Math.min(I,m),T=this.slice(O,x),L=h.slice(p,v);for(let z=0;z>>=0,isFinite(v)?(v>>>=0,O===void 0&&(O="utf8")):(O=v,v=void 0)}let x=this.length-p;if((v===void 0||v>x)&&(v=x),h.length>0&&(v<0||p<0)||p>this.length)throw new RangeError("Attempt to write outside buffer bounds");O||(O="utf8");let I=!1;for(;;)switch(O){case"hex":return U(this,h,p,v);case"utf8":case"utf-8":return D(this,h,p,v);case"ascii":case"latin1":case"binary":return G(this,h,p,v);case"base64":return $(this,h,p,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X(this,h,p,v);default:if(I)throw new TypeError("Unknown encoding: "+O);O=(""+O).toLowerCase(),I=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};let E=4096;function w(h,p,v){let O="";v=Math.min(h.length,v);for(let x=p;xO)&&(v=O);let x="";for(let I=p;Iv)throw new RangeError("Trying to access beyond buffer length")}function Z(h,p,v,O,x,I){if(!o.isBuffer(h))throw new TypeError('"buffer" argument must be a Buffer instance');if(p>x||ph.length)throw new RangeError("Index out of range")}function j(h,p,v,O,x){et(p,O,x,h,v,7);let I=Number(p&BigInt(4294967295));h[v++]=I,I>>=8,h[v++]=I,I>>=8,h[v++]=I,I>>=8,h[v++]=I;let m=Number(p>>BigInt(32)&BigInt(4294967295));return h[v++]=m,m>>=8,h[v++]=m,m>>=8,h[v++]=m,m>>=8,h[v++]=m,v}function N(h,p,v,O,x){et(p,O,x,h,v,7);let I=Number(p&BigInt(4294967295));h[v+7]=I,I>>=8,h[v+6]=I,I>>=8,h[v+5]=I,I>>=8,h[v+4]=I;let m=Number(p>>BigInt(32)&BigInt(4294967295));return h[v+3]=m,m>>=8,h[v+2]=m,m>>=8,h[v+1]=m,m>>=8,h[v]=m,v+8}function F(h,p,v,O,x,I){if(v+O>h.length)throw new RangeError("Index out of range");if(v<0)throw new RangeError("Index out of range")}function it(h,p,v,O,x){return p=+p,v>>>=0,x||F(h,0,v,4),e.write(h,p,v,O,23,4),v+4}function J(h,p,v,O,x){return p=+p,v>>>=0,x||F(h,0,v,8),e.write(h,p,v,O,52,8),v+8}o.prototype.slice=function(h,p){let v=this.length;(h=~~h)<0?(h+=v)<0&&(h=0):h>v&&(h=v),(p=p===void 0?v:~~p)<0?(p+=v)<0&&(p=0):p>v&&(p=v),p>>=0,p>>>=0,v||st(h,p,this.length);let O=this[h],x=1,I=0;for(;++I>>=0,p>>>=0,v||st(h,p,this.length);let O=this[h+--p],x=1;for(;p>0&&(x*=256);)O+=this[h+--p]*x;return O},o.prototype.readUint8=o.prototype.readUInt8=function(h,p){return h>>>=0,p||st(h,1,this.length),this[h]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(h,p){return h>>>=0,p||st(h,2,this.length),this[h]|this[h+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(h,p){return h>>>=0,p||st(h,2,this.length),this[h]<<8|this[h+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(h,p){return h>>>=0,p||st(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+16777216*this[h+3]},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(h,p){return h>>>=0,p||st(h,4,this.length),16777216*this[h]+(this[h+1]<<16|this[h+2]<<8|this[h+3])},o.prototype.readBigUInt64LE=C(function(h){ot(h>>>=0,"offset");let p=this[h],v=this[h+7];(p===void 0||v===void 0)&&at(h,this.length-8);let O=p+256*this[++h]+65536*this[++h]+this[++h]*2**24,x=this[++h]+256*this[++h]+65536*this[++h]+v*2**24;return BigInt(O)+(BigInt(x)<>>=0,"offset");let p=this[h],v=this[h+7];(p===void 0||v===void 0)&&at(h,this.length-8);let O=p*2**24+65536*this[++h]+256*this[++h]+this[++h],x=this[++h]*2**24+65536*this[++h]+256*this[++h]+v;return(BigInt(O)<>>=0,p>>>=0,v||st(h,p,this.length);let O=this[h],x=1,I=0;for(;++I=x&&(O-=Math.pow(2,8*p)),O},o.prototype.readIntBE=function(h,p,v){h>>>=0,p>>>=0,v||st(h,p,this.length);let O=p,x=1,I=this[h+--O];for(;O>0&&(x*=256);)I+=this[h+--O]*x;return x*=128,I>=x&&(I-=Math.pow(2,8*p)),I},o.prototype.readInt8=function(h,p){return h>>>=0,p||st(h,1,this.length),128&this[h]?-1*(255-this[h]+1):this[h]},o.prototype.readInt16LE=function(h,p){h>>>=0,p||st(h,2,this.length);let v=this[h]|this[h+1]<<8;return 32768&v?4294901760|v:v},o.prototype.readInt16BE=function(h,p){h>>>=0,p||st(h,2,this.length);let v=this[h+1]|this[h]<<8;return 32768&v?4294901760|v:v},o.prototype.readInt32LE=function(h,p){return h>>>=0,p||st(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},o.prototype.readInt32BE=function(h,p){return h>>>=0,p||st(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},o.prototype.readBigInt64LE=C(function(h){ot(h>>>=0,"offset");let p=this[h],v=this[h+7];(p===void 0||v===void 0)&&at(h,this.length-8);let O=this[h+4]+256*this[h+5]+65536*this[h+6]+(v<<24);return(BigInt(O)<>>=0,"offset");let p=this[h],v=this[h+7];(p===void 0||v===void 0)&&at(h,this.length-8);let O=(p<<24)+65536*this[++h]+256*this[++h]+this[++h];return(BigInt(O)<>>=0,p||st(h,4,this.length),e.read(this,h,!0,23,4)},o.prototype.readFloatBE=function(h,p){return h>>>=0,p||st(h,4,this.length),e.read(this,h,!1,23,4)},o.prototype.readDoubleLE=function(h,p){return h>>>=0,p||st(h,8,this.length),e.read(this,h,!0,52,8)},o.prototype.readDoubleBE=function(h,p){return h>>>=0,p||st(h,8,this.length),e.read(this,h,!1,52,8)},o.prototype.writeUintLE=o.prototype.writeUIntLE=function(h,p,v,O){h=+h,p>>>=0,v>>>=0,!O&&Z(this,h,p,v,Math.pow(2,8*v)-1,0);let x=1,I=0;for(this[p]=255&h;++I>>=0,v>>>=0,!O&&Z(this,h,p,v,Math.pow(2,8*v)-1,0);let x=v-1,I=1;for(this[p+x]=255&h;--x>=0&&(I*=256);)this[p+x]=h/I&255;return p+v},o.prototype.writeUint8=o.prototype.writeUInt8=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,1,255,0),this[p]=255&h,p+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,2,65535,0),this[p]=255&h,this[p+1]=h>>>8,p+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,2,65535,0),this[p]=h>>>8,this[p+1]=255&h,p+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,4,4294967295,0),this[p+3]=h>>>24,this[p+2]=h>>>16,this[p+1]=h>>>8,this[p]=255&h,p+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,4,4294967295,0),this[p]=h>>>24,this[p+1]=h>>>16,this[p+2]=h>>>8,this[p+3]=255&h,p+4},o.prototype.writeBigUInt64LE=C(function(h,p=0){return j(this,h,p,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=C(function(h,p=0){return N(this,h,p,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(h,p,v,O){if(h=+h,p>>>=0,!O){let y=Math.pow(2,8*v-1);Z(this,h,p,v,y-1,-y)}let x=0,I=1,m=0;for(this[p]=255&h;++x>>=0,!O){let y=Math.pow(2,8*v-1);Z(this,h,p,v,y-1,-y)}let x=v-1,I=1,m=0;for(this[p+x]=255&h;--x>=0&&(I*=256);)h<0&&m===0&&this[p+x+1]!==0&&(m=1),this[p+x]=(h/I|0)-m&255;return p+v},o.prototype.writeInt8=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,1,127,-128),h<0&&(h=255+h+1),this[p]=255&h,p+1},o.prototype.writeInt16LE=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,2,32767,-32768),this[p]=255&h,this[p+1]=h>>>8,p+2},o.prototype.writeInt16BE=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,2,32767,-32768),this[p]=h>>>8,this[p+1]=255&h,p+2},o.prototype.writeInt32LE=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,4,2147483647,-2147483648),this[p]=255&h,this[p+1]=h>>>8,this[p+2]=h>>>16,this[p+3]=h>>>24,p+4},o.prototype.writeInt32BE=function(h,p,v){return h=+h,p>>>=0,v||Z(this,h,p,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[p]=h>>>24,this[p+1]=h>>>16,this[p+2]=h>>>8,this[p+3]=255&h,p+4},o.prototype.writeBigInt64LE=C(function(h,p=0){return j(this,h,p,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=C(function(h,p=0){return N(this,h,p,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeFloatLE=function(h,p,v){return it(this,h,p,!0,v)},o.prototype.writeFloatBE=function(h,p,v){return it(this,h,p,!1,v)},o.prototype.writeDoubleLE=function(h,p,v){return J(this,h,p,!0,v)},o.prototype.writeDoubleBE=function(h,p,v){return J(this,h,p,!1,v)},o.prototype.copy=function(h,p,v,O){if(!o.isBuffer(h))throw new TypeError("argument should be a Buffer");if(v||(v=0),!O&&O!==0&&(O=this.length),p>=h.length&&(p=h.length),p||(p=0),O>0&&O=this.length)throw new RangeError("Index out of range");if(O<0)throw new RangeError("sourceEnd out of bounds");O>this.length&&(O=this.length),h.length-p>>=0,v=v===void 0?this.length:v>>>0,h||(h=0),typeof h=="number")for(x=p;x=O+4;v-=3)p=`_${h.slice(v-3,v)}${p}`;return`${h.slice(0,v)}${p}`}function et(h,p,v,O,x,I){if(h>v||h= 0${y} and < 2${y} ** ${8*(I+1)}${y}`:`>= -(2${y} ** ${8*(I+1)-1}${y}) and < 2 ** ${8*(I+1)-1}${y}`,new Y.ERR_OUT_OF_RANGE("value",m,h)}(function(m,y,T){ot(y,"offset"),(m[y]===void 0||m[y+T]===void 0)&&at(y,m.length-(T+1))})(O,x,I)}function ot(h,p){if(typeof h!="number")throw new Y.ERR_INVALID_ARG_TYPE(p,"number",h)}function at(h,p,v){throw Math.floor(h)!==h?(ot(h,v),new Y.ERR_OUT_OF_RANGE("offset","an integer",h)):p<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${p}`,h)}k("ERR_BUFFER_OUT_OF_BOUNDS",function(h){return h?`${h} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),k("ERR_INVALID_ARG_TYPE",function(h,p){return`The "${h}" argument must be of type number. Received type ${typeof p}`},TypeError),k("ERR_OUT_OF_RANGE",function(h,p,v){let O=`The value of "${h}" is out of range.`,x=v;return Number.isInteger(v)&&Math.abs(v)>2**32?x=q(String(v)):typeof v=="bigint"&&(x=String(v),(v>BigInt(2)**BigInt(32)||v<-(BigInt(2)**BigInt(32)))&&(x=q(x)),x+="n"),O+=` It must be ${p}. Received ${x}`,O},RangeError);let ut=/[^+/0-9A-Za-z-_]/g;function dt(h,p){p=p||1/0;let v,O=h.length,x=null,I=[];for(let m=0;m55295&&v<57344){if(!x){if(v>56319){(p-=3)>-1&&I.push(239,191,189);continue}if(m+1===O){(p-=3)>-1&&I.push(239,191,189);continue}x=v;continue}if(v<56320){(p-=3)>-1&&I.push(239,191,189),x=v;continue}v=65536+(x-55296<<10|v-56320)}else x&&(p-=3)>-1&&I.push(239,191,189);if(x=null,v<128){if((p-=1)<0)break;I.push(v)}else if(v<2048){if((p-=2)<0)break;I.push(v>>6|192,63&v|128)}else if(v<65536){if((p-=3)<0)break;I.push(v>>12|224,v>>6&63|128,63&v|128)}else{if(!(v<1114112))throw new Error("Invalid code point");if((p-=4)<0)break;I.push(v>>18|240,v>>12&63|128,v>>6&63|128,63&v|128)}}return I}function H(h){return t.toByteArray(function(p){if((p=(p=p.split("=")[0]).trim().replace(ut,"")).length<2)return"";for(;p.length%4!=0;)p+="=";return p}(h))}function rt(h,p,v,O){let x;for(x=0;x=p.length||x>=h.length);++x)p[x+v]=h[x];return x}function tt(h,p){return h instanceof p||h!=null&&h.constructor!=null&&h.constructor.name!=null&&h.constructor.name===p.name}function P(h){return h!=h}let W=function(){let h="0123456789abcdef",p=new Array(256);for(let v=0;v<16;++v){let O=16*v;for(let x=0;x<16;++x)p[O+x]=h[v]+h[x]}return p}();function C(h){return typeof BigInt>"u"?Q:h}function Q(){throw new Error("BigInt not supported")}return Sr}fn(ie,{Buffer:()=>ho,INSPECT_MAX_BYTES:()=>Zf,default:()=>Ar,kMaxLength:()=>tp});var En,ja,Qi,Ua,Sr,Na,Ar,ho,Zf,tp,oe=ne(()=>{ht(),pt(),ft(),En={},ja=!1,Qi={},Ua=!1,Sr={},Na=!1,(Ar=Xm()).Buffer,Ar.SlowBuffer,Ar.INSPECT_MAX_BYTES,Ar.kMaxLength,ho=Ar.Buffer,Zf=Ar.INSPECT_MAX_BYTES,tp=Ar.kMaxLength}),pt=ne(()=>{oe()}),Zm=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e){this.aliasToTopic={},this.max=e}put(e,r){return!(r===0||r>this.max)&&(this.aliasToTopic[r]=e,this.length=Object.keys(this.aliasToTopic).length,!0)}getTopicByAlias(e){return this.aliasToTopic[e]}clear(){this.aliasToTopic={}}}}),Xt=mt((t,e)=>{ht(),pt(),ft(),e.exports={ArrayIsArray:r=>Array.isArray(r),ArrayPrototypeIncludes:(r,n)=>r.includes(n),ArrayPrototypeIndexOf:(r,n)=>r.indexOf(n),ArrayPrototypeJoin:(r,n)=>r.join(n),ArrayPrototypeMap:(r,n)=>r.map(n),ArrayPrototypePop:(r,n)=>r.pop(n),ArrayPrototypePush:(r,n)=>r.push(n),ArrayPrototypeSlice:(r,n,l)=>r.slice(n,l),Error,FunctionPrototypeCall:(r,n,...l)=>r.call(n,...l),FunctionPrototypeSymbolHasInstance:(r,n)=>Function.prototype[Symbol.hasInstance].call(r,n),MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties:(r,n)=>Object.defineProperties(r,n),ObjectDefineProperty:(r,n,l)=>Object.defineProperty(r,n,l),ObjectGetOwnPropertyDescriptor:(r,n)=>Object.getOwnPropertyDescriptor(r,n),ObjectKeys:r=>Object.keys(r),ObjectSetPrototypeOf:(r,n)=>Object.setPrototypeOf(r,n),Promise,PromisePrototypeCatch:(r,n)=>r.catch(n),PromisePrototypeThen:(r,n,l)=>r.then(n,l),PromiseReject:r=>Promise.reject(r),ReflectApply:Reflect.apply,RegExpPrototypeTest:(r,n)=>r.test(n),SafeSet:Set,String,StringPrototypeSlice:(r,n,l)=>r.slice(n,l),StringPrototypeToLowerCase:r=>r.toLowerCase(),StringPrototypeToUpperCase:r=>r.toUpperCase(),StringPrototypeTrim:r=>r.trim(),Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet:(r,n,l)=>r.set(n,l),Uint8Array}}),fr=mt((t,e)=>{ht(),pt(),ft();var r=(oe(),Dt(ie)),n=Object.getPrototypeOf(async function(){}).constructor,l=globalThis.Blob||r.Blob,o=typeof l<"u"?function(i){return i instanceof l}:function(i){return!1},s=class extends Error{constructor(i){if(!Array.isArray(i))throw new TypeError("Expected input to be an Array, got "+typeof i);let a="";for(let u=0;u{i=u,a=c}),resolve:i,reject:a}},promisify:i=>new Promise((a,u)=>{i((c,...d)=>c?u(c):a(...d))}),debuglog:()=>function(){},format:(i,...a)=>i.replace(/%([sdifj])/g,function(...[u,c]){let d=a.shift();return c==="f"?d.toFixed(6):c==="j"?JSON.stringify(d):c==="s"&&typeof d=="object"?`${d.constructor!==Object?d.constructor.name:""} {}`.trim():d.toString()}),inspect(i){switch(typeof i){case"string":if(i.includes("'")){if(!i.includes('"'))return`"${i}"`;if(!i.includes("`")&&!i.includes("${"))return`\`${i}\``}return`'${i}'`;case"number":return isNaN(i)?"NaN":Object.is(i,-0)?String(i):i;case"bigint":return`${String(i)}n`;case"boolean":case"undefined":return String(i);case"object":return"{}"}},types:{isAsyncFunction:i=>i instanceof n,isArrayBufferView:i=>ArrayBuffer.isView(i)},isBlob:o},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}),Cl=mt((t,e)=>{ht(),pt(),ft();var{AbortController:r,AbortSignal:n}=typeof self<"u"?self:typeof window<"u"?window:void 0;e.exports=r,e.exports.AbortSignal=n,e.exports.default=r}),we=mt((t,e)=>{ht(),pt(),ft();var{format:r,inspect:n,AggregateError:l}=fr(),o=globalThis.AggregateError||l,s=Symbol("kIsNodeError"),i=["string","function","number","object","Function","Object","boolean","bigint","symbol"],a=/^([A-Z][a-z0-9]*)+$/,u={};function c(_,S){if(!_)throw new u.ERR_INTERNAL_ASSERTION(S)}function d(_){let S="",U=_.length,D=_[0]==="-"?1:0;for(;U>=D+4;U-=3)S=`_${_.slice(U-3,U)}${S}`;return`${_.slice(0,U)}${S}`}function f(_,S,U){U||(U=Error);class D extends U{constructor(...$){super(function(X,B,A){if(typeof B=="function")return c(B.length<=A.length,`Code: ${X}; The provided arguments length (${A.length}) does not match the required ones (${B.length}).`),B(...A);let E=(B.match(/%[dfijoOs]/g)||[]).length;return c(E===A.length,`Code: ${X}; The provided arguments length (${A.length}) does not match the required ones (${E}).`),A.length===0?B:r(B,...A)}(_,S,$))}toString(){return`${this.name} [${_}]: ${this.message}`}}Object.defineProperties(D.prototype,{name:{value:U.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${_}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),D.prototype.code=_,D.prototype[s]=!0,u[_]=D}function g(_){let S="__node_internal_"+_.name;return Object.defineProperty(_,"name",{value:S}),_}var b=class extends Error{constructor(_="The operation was aborted",S=void 0){if(S!==void 0&&typeof S!="object")throw new u.ERR_INVALID_ARG_TYPE("options","Object",S);super(_,S),this.code="ABORT_ERR",this.name="AbortError"}};f("ERR_ASSERTION","%s",Error),f("ERR_INVALID_ARG_TYPE",(_,S,U)=>{c(typeof _=="string","'name' must be a string"),Array.isArray(S)||(S=[S]);let D="The ";_.endsWith(" argument")?D+=`${_} `:D+=`"${_}" ${_.includes(".")?"property":"argument"} `,D+="must be ";let G=[],$=[],X=[];for(let A of S)c(typeof A=="string","All expected entries have to be of type string"),i.includes(A)?G.push(A.toLowerCase()):a.test(A)?$.push(A):(c(A!=="object",'The value "object" should be written as "Object"'),X.push(A));if($.length>0){let A=G.indexOf("object");A!==-1&&(G.splice(G,A,1),$.push("Object"))}if(G.length>0){switch(G.length){case 1:D+=`of type ${G[0]}`;break;case 2:D+=`one of type ${G[0]} or ${G[1]}`;break;default:{let A=G.pop();D+=`one of type ${G.join(", ")}, or ${A}`}}($.length>0||X.length>0)&&(D+=" or ")}if($.length>0){switch($.length){case 1:D+=`an instance of ${$[0]}`;break;case 2:D+=`an instance of ${$[0]} or ${$[1]}`;break;default:{let A=$.pop();D+=`an instance of ${$.join(", ")}, or ${A}`}}X.length>0&&(D+=" or ")}switch(X.length){case 0:break;case 1:X[0].toLowerCase()!==X[0]&&(D+="an "),D+=`${X[0]}`;break;case 2:D+=`one of ${X[0]} or ${X[1]}`;break;default:{let A=X.pop();D+=`one of ${X.join(", ")}, or ${A}`}}if(U==null)D+=`. Received ${U}`;else if(typeof U=="function"&&U.name)D+=`. Received function ${U.name}`;else if(typeof U=="object"){var B;(B=U.constructor)!==null&&B!==void 0&&B.name?D+=`. Received an instance of ${U.constructor.name}`:D+=`. Received ${n(U,{depth:-1})}`}else{let A=n(U,{colors:!1});A.length>25&&(A=`${A.slice(0,25)}...`),D+=`. Received type ${typeof U} (${A})`}return D},TypeError),f("ERR_INVALID_ARG_VALUE",(_,S,U="is invalid")=>{let D=n(S);return D.length>128&&(D=D.slice(0,128)+"..."),`The ${_.includes(".")?"property":"argument"} '${_}' ${U}. Received ${D}`},TypeError),f("ERR_INVALID_RETURN_VALUE",(_,S,U)=>{var D;return`Expected ${_} to be returned from the "${S}" function but got ${U!=null&&(D=U.constructor)!==null&&D!==void 0&&D.name?`instance of ${U.constructor.name}`:"type "+typeof U}.`},TypeError),f("ERR_MISSING_ARGS",(..._)=>{c(_.length>0,"At least one arg needs to be specified");let S,U=_.length;switch(_=(Array.isArray(_)?_:[_]).map(D=>`"${D}"`).join(" or "),U){case 1:S+=`The ${_[0]} argument`;break;case 2:S+=`The ${_[0]} and ${_[1]} arguments`;break;default:{let D=_.pop();S+=`The ${_.join(", ")}, and ${D} arguments`}}return`${S} must be specified`},TypeError),f("ERR_OUT_OF_RANGE",(_,S,U)=>{let D;return c(S,'Missing "range" argument'),Number.isInteger(U)&&Math.abs(U)>2**32?D=d(String(U)):typeof U=="bigint"?(D=String(U),(U>2n**32n||U<-(2n**32n))&&(D=d(D)),D+="n"):D=n(U),`The value of "${_}" is out of range. It must be ${S}. Received ${D}`},RangeError),f("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),f("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),f("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),f("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),f("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),f("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),f("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),f("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),f("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),f("ERR_STREAM_WRITE_AFTER_END","write after end",Error),f("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:b,aggregateTwoErrors:g(function(_,S){if(_&&S&&_!==S){if(Array.isArray(S.errors))return S.errors.push(_),S;let U=new o([S,_],S.message);return U.code=S.code,U}return _||S}),hideStackFrames:g,codes:u}}),Po=mt((t,e)=>{ht(),pt(),ft();var{ArrayIsArray:r,ArrayPrototypeIncludes:n,ArrayPrototypeJoin:l,ArrayPrototypeMap:o,NumberIsInteger:s,NumberIsNaN:i,NumberMAX_SAFE_INTEGER:a,NumberMIN_SAFE_INTEGER:u,NumberParseInt:c,ObjectPrototypeHasOwnProperty:d,RegExpPrototypeExec:f,String:g,StringPrototypeToUpperCase:b,StringPrototypeTrim:_}=Xt(),{hideStackFrames:S,codes:{ERR_SOCKET_BAD_PORT:U,ERR_INVALID_ARG_TYPE:D,ERR_INVALID_ARG_VALUE:G,ERR_OUT_OF_RANGE:$,ERR_UNKNOWN_SIGNAL:X}}=we(),{normalizeEncoding:B}=fr(),{isAsyncFunction:A,isArrayBufferView:E}=fr().types,w={},M=/^[0-7]+$/,R=S((H,rt,tt=u,P=a)=>{if(typeof H!="number")throw new D(rt,"number",H);if(!s(H))throw new $(rt,"an integer",H);if(HP)throw new $(rt,`>= ${tt} && <= ${P}`,H)}),nt=S((H,rt,tt=-2147483648,P=2147483647)=>{if(typeof H!="number")throw new D(rt,"number",H);if(!s(H))throw new $(rt,"an integer",H);if(HP)throw new $(rt,`>= ${tt} && <= ${P}`,H)}),st=S((H,rt,tt=!1)=>{if(typeof H!="number")throw new D(rt,"number",H);if(!s(H))throw new $(rt,"an integer",H);let P=tt?1:0,W=4294967295;if(HW)throw new $(rt,`>= ${P} && <= ${W}`,H)});function Z(H,rt){if(typeof H!="string")throw new D(rt,"string",H)}var j=S((H,rt,tt)=>{if(!n(tt,H)){let P="must be one of: "+l(o(tt,W=>typeof W=="string"?`'${W}'`:g(W)),", ");throw new G(rt,H,P)}});function N(H,rt){if(typeof H!="boolean")throw new D(rt,"boolean",H)}function F(H,rt,tt){return H!=null&&d(H,rt)?H[rt]:tt}var it=S((H,rt,tt=null)=>{let P=F(tt,"allowArray",!1),W=F(tt,"allowFunction",!1);if(!F(tt,"nullable",!1)&&H===null||!P&&r(H)||typeof H!="object"&&(!W||typeof H!="function"))throw new D(rt,"Object",H)}),J=S((H,rt)=>{if(H!=null&&typeof H!="object"&&typeof H!="function")throw new D(rt,"a dictionary",H)}),Y=S((H,rt,tt=0)=>{if(!r(H))throw new D(rt,"Array",H);if(H.length{if(!E(H))throw new D(rt,["Buffer","TypedArray","DataView"],H)}),q=S((H,rt)=>{if(H!==void 0&&(H===null||typeof H!="object"||!("aborted"in H)))throw new D(rt,"AbortSignal",H)}),et=S((H,rt)=>{if(typeof H!="function")throw new D(rt,"Function",H)}),ot=S((H,rt)=>{if(typeof H!="function"||A(H))throw new D(rt,"Function",H)}),at=S((H,rt)=>{if(H!==void 0)throw new D(rt,"undefined",H)}),ut=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function dt(H,rt){if(typeof H>"u"||!f(ut,H))throw new G(rt,H,'must be an array or string of format "; rel=preload; as=style"')}e.exports={isInt32:function(H){return H===(0|H)},isUint32:function(H){return H===H>>>0},parseFileMode:function(H,rt,tt){if(typeof H>"u"&&(H=tt),typeof H=="string"){if(f(M,H)===null)throw new G(rt,H,"must be a 32-bit unsigned integer or an octal string");H=c(H,8)}return st(H,rt),H},validateArray:Y,validateStringArray:function(H,rt){Y(H,rt);for(let tt=0;ttP||(tt!=null||P!=null)&&i(H))throw new $(rt,`${tt!=null?`>= ${tt}`:""}${tt!=null&&P!=null?" && ":""}${P!=null?`<= ${P}`:""}`,H)},validateObject:it,validateOneOf:j,validatePlainFunction:ot,validatePort:function(H,rt="Port",tt=!0){if(typeof H!="number"&&typeof H!="string"||typeof H=="string"&&_(H).length===0||+H!=+H>>>0||H>65535||H===0&&!tt)throw new U(rt,H,tt);return 0|H},validateSignalName:function(H,rt="signal"){if(Z(H,rt),w[H]===void 0)throw w[b(H)]!==void 0?new X(H+" (signals must use all capital letters)"):new X(H)},validateString:Z,validateUint32:st,validateUndefined:at,validateUnion:function(H,rt,tt){if(!n(tt,H))throw new D(rt,`('${l(tt,"|")}')`,H)},validateAbortSignal:q,validateLinkHeaderValue:function(H){if(typeof H=="string")return dt(H,"hints"),H;if(r(H)){let rt=H.length,tt="";if(rt===0)return tt;for(let P=0;P; rel=preload; as=style"')}}}),pn=mt((t,e)=>{ht(),pt(),ft();var r,n,l=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function i(S){if(r===setTimeout)return setTimeout(S,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(S,0);try{return r(S,0)}catch{try{return r.call(null,S,0)}catch{return r.call(this,S,0)}}}(function(){try{r=typeof setTimeout=="function"?setTimeout:o}catch{r=o}try{n=typeof clearTimeout=="function"?clearTimeout:s}catch{n=s}})();var a,u=[],c=!1,d=-1;function f(){!c||!a||(c=!1,a.length?u=a.concat(u):d=-1,u.length&&g())}function g(){if(!c){var S=i(f);c=!0;for(var U=u.length;U;){for(a=u,u=[];++d1)for(var D=1;D{ht(),pt(),ft();var{Symbol:r,SymbolAsyncIterator:n,SymbolIterator:l,SymbolFor:o}=Xt(),s=r("kDestroyed"),i=r("kIsErrored"),a=r("kIsReadable"),u=r("kIsDisturbed"),c=o("nodejs.webstream.isClosedPromise"),d=o("nodejs.webstream.controllerErrorFunction");function f(w,M=!1){var R;return!(!w||typeof w.pipe!="function"||typeof w.on!="function"||M&&(typeof w.pause!="function"||typeof w.resume!="function")||w._writableState&&((R=w._readableState)===null||R===void 0?void 0:R.readable)===!1||w._writableState&&!w._readableState)}function g(w){var M;return!(!w||typeof w.write!="function"||typeof w.on!="function"||w._readableState&&((M=w._writableState)===null||M===void 0?void 0:M.writable)===!1)}function b(w){return w&&(w._readableState||w._writableState||typeof w.write=="function"&&typeof w.on=="function"||typeof w.pipe=="function"&&typeof w.on=="function")}function _(w){return!(!w||b(w)||typeof w.pipeThrough!="function"||typeof w.getReader!="function"||typeof w.cancel!="function")}function S(w){return!(!w||b(w)||typeof w.getWriter!="function"||typeof w.abort!="function")}function U(w){return!(!w||b(w)||typeof w.readable!="object"||typeof w.writable!="object")}function D(w){if(!b(w))return null;let M=w._writableState,R=w._readableState,nt=M||R;return!!(w.destroyed||w[s]||nt!=null&&nt.destroyed)}function G(w){if(!g(w))return null;if(w.writableEnded===!0)return!0;let M=w._writableState;return(M==null||!M.errored)&&(typeof(M==null?void 0:M.ended)!="boolean"?null:M.ended)}function $(w,M){if(!f(w))return null;let R=w._readableState;return(R==null||!R.errored)&&(typeof(R==null?void 0:R.endEmitted)!="boolean"?null:!!(R.endEmitted||M===!1&&R.ended===!0&&R.length===0))}function X(w){return w&&w[a]!=null?w[a]:typeof(w==null?void 0:w.readable)!="boolean"?null:!D(w)&&f(w)&&w.readable&&!$(w)}function B(w){return typeof(w==null?void 0:w.writable)!="boolean"?null:!D(w)&&g(w)&&w.writable&&!G(w)}function A(w){return typeof w._closed=="boolean"&&typeof w._defaultKeepAlive=="boolean"&&typeof w._removedConnection=="boolean"&&typeof w._removedContLen=="boolean"}function E(w){return typeof w._sent100=="boolean"&&A(w)}e.exports={kDestroyed:s,isDisturbed:function(w){var M;return!(!w||!((M=w[u])!==null&&M!==void 0?M:w.readableDidRead||w.readableAborted))},kIsDisturbed:u,isErrored:function(w){var M,R,nt,st,Z,j,N,F,it,J;return!(!w||!((M=(R=(nt=(st=(Z=(j=w[i])!==null&&j!==void 0?j:w.readableErrored)!==null&&Z!==void 0?Z:w.writableErrored)!==null&&st!==void 0?st:(N=w._readableState)===null||N===void 0?void 0:N.errorEmitted)!==null&&nt!==void 0?nt:(F=w._writableState)===null||F===void 0?void 0:F.errorEmitted)!==null&&R!==void 0?R:(it=w._readableState)===null||it===void 0?void 0:it.errored)!==null&&M!==void 0?M:(J=w._writableState)!==null&&J!==void 0&&J.errored))},kIsErrored:i,isReadable:X,kIsReadable:a,kIsClosedPromise:c,kControllerErrorFunction:d,isClosed:function(w){if(!b(w))return null;if(typeof w.closed=="boolean")return w.closed;let M=w._writableState,R=w._readableState;return typeof(M==null?void 0:M.closed)=="boolean"||typeof(R==null?void 0:R.closed)=="boolean"?(M==null?void 0:M.closed)||(R==null?void 0:R.closed):typeof w._closed=="boolean"&&A(w)?w._closed:null},isDestroyed:D,isDuplexNodeStream:function(w){return!(!w||typeof w.pipe!="function"||!w._readableState||typeof w.on!="function"||typeof w.write!="function")},isFinished:function(w,M){return b(w)?!!D(w)||!((M==null?void 0:M.readable)!==!1&&X(w)||(M==null?void 0:M.writable)!==!1&&B(w)):null},isIterable:function(w,M){return w!=null&&(M===!0?typeof w[n]=="function":M===!1?typeof w[l]=="function":typeof w[n]=="function"||typeof w[l]=="function")},isReadableNodeStream:f,isReadableStream:_,isReadableEnded:function(w){if(!f(w))return null;if(w.readableEnded===!0)return!0;let M=w._readableState;return!(!M||M.errored)&&(typeof(M==null?void 0:M.ended)!="boolean"?null:M.ended)},isReadableFinished:$,isReadableErrored:function(w){var M,R;return b(w)?w.readableErrored?w.readableErrored:(M=(R=w._readableState)===null||R===void 0?void 0:R.errored)!==null&&M!==void 0?M:null:null},isNodeStream:b,isWebStream:function(w){return _(w)||S(w)||U(w)},isWritable:B,isWritableNodeStream:g,isWritableStream:S,isWritableEnded:G,isWritableFinished:function(w,M){if(!g(w))return null;if(w.writableFinished===!0)return!0;let R=w._writableState;return(R==null||!R.errored)&&(typeof(R==null?void 0:R.finished)!="boolean"?null:!!(R.finished||M===!1&&R.ended===!0&&R.length===0))},isWritableErrored:function(w){var M,R;return b(w)?w.writableErrored?w.writableErrored:(M=(R=w._writableState)===null||R===void 0?void 0:R.errored)!==null&&M!==void 0?M:null:null},isServerRequest:function(w){var M;return typeof w._consuming=="boolean"&&typeof w._dumped=="boolean"&&((M=w.req)===null||M===void 0?void 0:M.upgradeOrConnect)===void 0},isServerResponse:E,willEmitClose:function(w){if(!b(w))return null;let M=w._writableState,R=w._readableState,nt=M||R;return!nt&&E(w)||!!(nt&&nt.autoDestroy&&nt.emitClose&&nt.closed===!1)},isTransformStream:U}}),Dr=mt((t,e)=>{ht(),pt(),ft();var r=pn(),{AbortError:n,codes:l}=we(),{ERR_INVALID_ARG_TYPE:o,ERR_STREAM_PREMATURE_CLOSE:s}=l,{kEmptyObject:i,once:a}=fr(),{validateAbortSignal:u,validateFunction:c,validateObject:d,validateBoolean:f}=Po(),{Promise:g,PromisePrototypeThen:b}=Xt(),{isClosed:_,isReadable:S,isReadableNodeStream:U,isReadableStream:D,isReadableFinished:G,isReadableErrored:$,isWritable:X,isWritableNodeStream:B,isWritableStream:A,isWritableFinished:E,isWritableErrored:w,isNodeStream:M,willEmitClose:R,kIsClosedPromise:nt}=yr(),st=()=>{};function Z(j,N,F){var it,J;if(arguments.length===2?(F=N,N=i):N==null?N=i:d(N,"options"),c(F,"callback"),u(N.signal,"options.signal"),F=a(F),D(j)||A(j))return function(p,v,O){let x=!1,I=st;if(v.signal)if(I=()=>{x=!0,O.call(p,new n(void 0,{cause:v.signal.reason}))},v.signal.aborted)r.nextTick(I);else{let y=O;O=a((...T)=>{v.signal.removeEventListener("abort",I),y.apply(p,T)}),v.signal.addEventListener("abort",I)}let m=(...y)=>{x||r.nextTick(()=>O.apply(p,y))};return b(p[nt].promise,m,m),st}(j,N,F);if(!M(j))throw new o("stream",["ReadableStream","WritableStream","Stream"],j);let Y=(it=N.readable)!==null&&it!==void 0?it:U(j),k=(J=N.writable)!==null&&J!==void 0?J:B(j),q=j._writableState,et=j._readableState,ot=()=>{j.writable||dt()},at=R(j)&&U(j)===Y&&B(j)===k,ut=E(j,!1),dt=()=>{ut=!0,j.destroyed&&(at=!1),(!at||j.readable&&!Y)&&(!Y||H)&&F.call(j)},H=G(j,!1),rt=()=>{H=!0,j.destroyed&&(at=!1),(!at||j.writable&&!k)&&(!k||ut)&&F.call(j)},tt=p=>{F.call(j,p)},P=_(j),W=()=>{P=!0;let p=w(j)||$(j);return p&&typeof p!="boolean"?F.call(j,p):Y&&!H&&U(j,!0)&&!G(j,!1)?F.call(j,new s):!k||ut||E(j,!1)?void F.call(j):F.call(j,new s)},C=()=>{P=!0;let p=w(j)||$(j);if(p&&typeof p!="boolean")return F.call(j,p);F.call(j)},Q=()=>{j.req.on("finish",dt)};(function(p){return p.setHeader&&typeof p.abort=="function"})(j)?(j.on("complete",dt),at||j.on("abort",W),j.req?Q():j.on("request",Q)):k&&!q&&(j.on("end",ot),j.on("close",ot)),!at&&typeof j.aborted=="boolean"&&j.on("aborted",W),j.on("end",rt),j.on("finish",dt),N.error!==!1&&j.on("error",tt),j.on("close",W),P?r.nextTick(W):q!=null&&q.errorEmitted||et!=null&&et.errorEmitted?at||r.nextTick(C):(!Y&&(!at||S(j))&&(ut||X(j)===!1)||!k&&(!at||X(j))&&(H||S(j)===!1)||et&&j.req&&j.aborted)&&r.nextTick(C);let h=()=>{F=st,j.removeListener("aborted",W),j.removeListener("complete",dt),j.removeListener("abort",W),j.removeListener("request",Q),j.req&&j.req.removeListener("finish",dt),j.removeListener("end",ot),j.removeListener("close",ot),j.removeListener("finish",dt),j.removeListener("end",rt),j.removeListener("error",tt),j.removeListener("close",W)};if(N.signal&&!P){let p=()=>{let v=F;h(),v.call(j,new n(void 0,{cause:N.signal.reason}))};if(N.signal.aborted)r.nextTick(p);else{let v=F;F=a((...O)=>{N.signal.removeEventListener("abort",p),v.apply(j,O)}),N.signal.addEventListener("abort",p)}}return h}e.exports=Z,e.exports.finished=function(j,N){var F;let it=!1;return N===null&&(N=i),(F=N)!==null&&F!==void 0&&F.cleanup&&(f(N.cleanup,"cleanup"),it=N.cleanup),new g((J,Y)=>{let k=Z(j,N,q=>{it&&k(),q?Y(q):J()})})}}),jn=mt((t,e)=>{ht(),pt(),ft();var r=pn(),{aggregateTwoErrors:n,codes:{ERR_MULTIPLE_CALLBACK:l},AbortError:o}=we(),{Symbol:s}=Xt(),{kDestroyed:i,isDestroyed:a,isFinished:u,isServerRequest:c}=yr(),d=s("kDestroy"),f=s("kConstruct");function g(E,w,M){E&&(E.stack,w&&!w.errored&&(w.errored=E),M&&!M.errored&&(M.errored=E))}function b(E,w,M){let R=!1;function nt(st){if(R)return;R=!0;let Z=E._readableState,j=E._writableState;g(st,j,Z),j&&(j.closed=!0),Z&&(Z.closed=!0),typeof M=="function"&&M(st),st?r.nextTick(_,E,st):r.nextTick(S,E)}try{E._destroy(w||null,nt)}catch(st){nt(st)}}function _(E,w){U(E,w),S(E)}function S(E){let w=E._readableState,M=E._writableState;M&&(M.closeEmitted=!0),w&&(w.closeEmitted=!0),(M!=null&&M.emitClose||w!=null&&w.emitClose)&&E.emit("close")}function U(E,w){let M=E._readableState,R=E._writableState;R!=null&&R.errorEmitted||M!=null&&M.errorEmitted||(R&&(R.errorEmitted=!0),M&&(M.errorEmitted=!0),E.emit("error",w))}function D(E,w,M){let R=E._readableState,nt=E._writableState;if(nt!=null&&nt.destroyed||R!=null&&R.destroyed)return this;R!=null&&R.autoDestroy||nt!=null&&nt.autoDestroy?E.destroy(w):w&&(w.stack,nt&&!nt.errored&&(nt.errored=w),R&&!R.errored&&(R.errored=w),M?r.nextTick(U,E,w):U(E,w))}function G(E){let w=!1;function M(R){if(w)return void D(E,R??new l);w=!0;let nt=E._readableState,st=E._writableState,Z=st||nt;nt&&(nt.constructed=!0),st&&(st.constructed=!0),Z.destroyed?E.emit(d,R):R?D(E,R,!0):r.nextTick($,E)}try{E._construct(R=>{r.nextTick(M,R)})}catch(R){r.nextTick(M,R)}}function $(E){E.emit(f)}function X(E){return(E==null?void 0:E.setHeader)&&typeof E.abort=="function"}function B(E){E.emit("close")}function A(E,w){E.emit("error",w),r.nextTick(B,E)}e.exports={construct:function(E,w){if(typeof E._construct!="function")return;let M=E._readableState,R=E._writableState;M&&(M.constructed=!1),R&&(R.constructed=!1),E.once(f,w),!(E.listenerCount(f)>1)&&r.nextTick(G,E)},destroyer:function(E,w){!E||a(E)||(!w&&!u(E)&&(w=new o),c(E)?(E.socket=null,E.destroy(w)):X(E)?E.abort():X(E.req)?E.req.abort():typeof E.destroy=="function"?E.destroy(w):typeof E.close=="function"?E.close():w?r.nextTick(A,E,w):r.nextTick(B,E),E.destroyed||(E[i]=!0))},destroy:function(E,w){let M=this._readableState,R=this._writableState,nt=R||M;return R!=null&&R.destroyed||M!=null&&M.destroyed?(typeof w=="function"&&w(),this):(g(E,R,M),R&&(R.destroyed=!0),M&&(M.destroyed=!0),nt.constructed?b(this,E,w):this.once(d,function(st){b(this,n(st,E),w)}),this)},undestroy:function(){let E=this._readableState,w=this._writableState;E&&(E.constructed=!0,E.closed=!1,E.closeEmitted=!1,E.destroyed=!1,E.errored=null,E.errorEmitted=!1,E.reading=!1,E.ended=E.readable===!1,E.endEmitted=E.readable===!1),w&&(w.constructed=!0,w.destroyed=!1,w.closed=!1,w.closeEmitted=!1,w.errored=null,w.errorEmitted=!1,w.finalCalled=!1,w.prefinished=!1,w.ended=w.writable===!1,w.ending=w.writable===!1,w.finished=w.writable===!1)},errorOrDestroy:D}});function Lt(){Lt.init.call(this)}function Yi(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function ep(t){return t._maxListeners===void 0?Lt.defaultMaxListeners:t._maxListeners}function ic(t,e,r,n){var l,o,s;if(Yi(r),(o=t._events)===void 0?(o=t._events=Object.create(null),t._eventsCount=0):(o.newListener!==void 0&&(t.emit("newListener",e,r.listener?r.listener:r),o=t._events),s=o[e]),s===void 0)s=o[e]=r,++t._eventsCount;else if(typeof s=="function"?s=o[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),(l=ep(t))>0&&s.length>l&&!s.warned){s.warned=!0;var i=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");i.name="MaxListenersExceededWarning",i.emitter=t,i.type=e,i.count=s.length}return t}function t0(){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 oc(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},l=t0.bind(n);return l.listener=r,n.wrapFn=l,l}function sc(t,e,r){var n=t._events;if(n===void 0)return[];var l=n[e];return l===void 0?[]:typeof l=="function"?r?[l.listener||l]:[l]:r?function(o){for(var s=new Array(o.length),i=0;i{ht(),pt(),ft(),Hr=typeof Reflect=="object"?Reflect:null,cs=Hr&&typeof Hr.apply=="function"?Hr.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)},uc=Hr&&typeof Hr.ownKeys=="function"?Hr.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)},hs=Number.isNaN||function(t){return t!=t},lc=Lt,Lt.EventEmitter=Lt,Lt.prototype._events=void 0,Lt.prototype._eventsCount=0,Lt.prototype._maxListeners=void 0,fs=10,Object.defineProperty(Lt,"defaultMaxListeners",{enumerable:!0,get:function(){return fs},set:function(t){if(typeof t!="number"||t<0||hs(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");fs=t}}),Lt.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},Lt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||hs(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},Lt.prototype.getMaxListeners=function(){return ep(this)},Lt.prototype.emit=function(t){for(var e=[],r=1;r0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var i=l[t];if(i===void 0)return!1;if(typeof i=="function")cs(i,this,e);else{var a=i.length,u=rp(i,a);for(r=0;r=0;o--)if(r[o]===e||r[o].listener===e){s=r[o].listener,l=o;break}if(l<0)return this;l===0?r.shift():function(i,a){for(;a+1=0;n--)this.removeListener(t,e[n]);return this},Lt.prototype.listeners=function(t){return sc(this,t,!0)},Lt.prototype.rawListeners=function(t){return sc(this,t,!1)},Lt.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):ac.call(t,e)},Lt.prototype.listenerCount=ac,Lt.prototype.eventNames=function(){return this._eventsCount>0?uc(this._events):[]},(Ie=lc).EventEmitter,Ie.defaultMaxListeners,Ie.init,Ie.listenerCount,Ie.EventEmitter,Ie.defaultMaxListeners,Ie.init,Ie.listenerCount}),dn={};fn(dn,{EventEmitter:()=>np,default:()=>Ie,defaultMaxListeners:()=>ip,init:()=>op,listenerCount:()=>sp,on:()=>ap,once:()=>lp});var np,ip,op,sp,ap,lp,Un=ne(()=>{ht(),pt(),ft(),cc(),cc(),Ie.once=function(t,e){return new Promise((r,n)=>{function l(...s){o!==void 0&&t.removeListener("error",o),r(s)}let o;e!=="error"&&(o=s=>{t.removeListener(name,l),n(s)},t.once("error",o)),t.once(e,l)})},Ie.on=function(t,e){let r=[],n=[],l=null,o=!1,s={async next(){let u=r.shift();if(u)return createIterResult(u,!1);if(l){let c=Promise.reject(l);return l=null,c}return o?createIterResult(void 0,!0):new Promise((c,d)=>n.push({resolve:c,reject:d}))},async return(){t.removeListener(e,i),t.removeListener("error",a),o=!0;for(let u of n)u.resolve(createIterResult(void 0,!0));return createIterResult(void 0,!0)},throw(u){l=u,t.removeListener(e,i),t.removeListener("error",a)},[Symbol.asyncIterator](){return this}};return t.on(e,i),t.on("error",a),s;function i(...u){let c=n.shift();c?c.resolve(createIterResult(u,!1)):r.push(u)}function a(u){o=!0;let c=n.shift();c?c.reject(u):l=u,s.return()}},{EventEmitter:np,defaultMaxListeners:ip,init:op,listenerCount:sp,on:ap,once:lp}=Ie}),Rl=mt((t,e)=>{ht(),pt(),ft();var{ArrayIsArray:r,ObjectSetPrototypeOf:n}=Xt(),{EventEmitter:l}=(Un(),Dt(dn));function o(i){l.call(this,i)}function s(i,a,u){if(typeof i.prependListener=="function")return i.prependListener(a,u);i._events&&i._events[a]?r(i._events[a])?i._events[a].unshift(u):i._events[a]=[u,i._events[a]]:i.on(a,u)}n(o.prototype,l.prototype),n(o,l),o.prototype.pipe=function(i,a){let u=this;function c(U){i.writable&&i.write(U)===!1&&u.pause&&u.pause()}function d(){u.readable&&u.resume&&u.resume()}u.on("data",c),i.on("drain",d),!i._isStdio&&(!a||a.end!==!1)&&(u.on("end",g),u.on("close",b));let f=!1;function g(){f||(f=!0,i.end())}function b(){f||(f=!0,typeof i.destroy=="function"&&i.destroy())}function _(U){S(),l.listenerCount(this,"error")===0&&this.emit("error",U)}function S(){u.removeListener("data",c),i.removeListener("drain",d),u.removeListener("end",g),u.removeListener("close",b),u.removeListener("error",_),i.removeListener("error",_),u.removeListener("end",S),u.removeListener("close",S),i.removeListener("close",S)}return s(u,"error",_),s(i,"error",_),u.on("end",S),u.on("close",S),i.on("close",S),i.emit("pipe",u),i},e.exports={Stream:o,prependListener:s}}),Bo=mt((t,e)=>{ht(),pt(),ft();var{AbortError:r,codes:n}=we(),{isNodeStream:l,isWebStream:o,kControllerErrorFunction:s}=yr(),i=Dr(),{ERR_INVALID_ARG_TYPE:a}=n;e.exports.addAbortSignal=function(u,c){if(((d,f)=>{if(typeof d!="object"||!("aborted"in d))throw new a(f,"AbortSignal",d)})(u,"signal"),!l(c)&&!o(c))throw new a("stream",["ReadableStream","WritableStream","Stream"],c);return e.exports.addAbortSignalNoValidate(u,c)},e.exports.addAbortSignalNoValidate=function(u,c){if(typeof u!="object"||!("aborted"in u))return c;let d=l(c)?()=>{c.destroy(new r(void 0,{cause:u.reason}))}:()=>{c[s](new r(void 0,{cause:u.reason}))};return u.aborted?d():(u.addEventListener("abort",d),i(c,()=>u.removeEventListener("abort",d))),c}}),e0=mt((t,e)=>{ht(),pt(),ft();var{StringPrototypeSlice:r,SymbolIterator:n,TypedArrayPrototypeSet:l,Uint8Array:o}=Xt(),{Buffer:s}=(oe(),Dt(ie)),{inspect:i}=fr();e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(a){let u={data:a,next:null};this.length>0?this.tail.next=u:this.head=u,this.tail=u,++this.length}unshift(a){let u={data:a,next:this.head};this.length===0&&(this.tail=u),this.head=u,++this.length}shift(){if(this.length===0)return;let a=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,a}clear(){this.head=this.tail=null,this.length=0}join(a){if(this.length===0)return"";let u=this.head,c=""+u.data;for(;(u=u.next)!==null;)c+=a+u.data;return c}concat(a){if(this.length===0)return s.alloc(0);let u=s.allocUnsafe(a>>>0),c=this.head,d=0;for(;c;)l(u,c.data,d),d+=c.data.length,c=c.next;return u}consume(a,u){let c=this.head.data;if(af.length)){a===f.length?(u+=f,++d,c.next?this.head=c.next:this.head=this.tail=null):(u+=r(f,0,a),this.head=c,c.data=r(f,a));break}u+=f,a-=f.length,++d}while((c=c.next)!==null);return this.length-=d,u}_getBuffer(a){let u=s.allocUnsafe(a),c=a,d=this.head,f=0;do{let g=d.data;if(!(a>g.length)){a===g.length?(l(u,g,c-a),++f,d.next?this.head=d.next:this.head=this.tail=null):(l(u,new o(g.buffer,g.byteOffset,a),c-a),this.head=d,d.data=g.slice(a));break}l(u,g,c-a),a-=g.length,++f}while((d=d.next)!==null);return this.length-=f,u}[Symbol.for("nodejs.util.inspect.custom")](a,u){return i(this,{...u,depth:0,customInspect:!1})}}}),Pl=mt((t,e)=>{ht(),pt(),ft();var{MathFloor:r,NumberIsInteger:n}=Xt(),{ERR_INVALID_ARG_VALUE:l}=we().codes;function o(s){return s?16:16384}e.exports={getHighWaterMark:function(s,i,a,u){let c=function(d,f,g){return d.highWaterMark!=null?d.highWaterMark:f?d[g]:null}(i,u,a);if(c!=null){if(!n(c)||c<0)throw new l(u?`options.${a}`:"options.highWaterMark",c);return r(c)}return o(s.objectMode)},getDefaultHighWaterMark:o}});function hc(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return r===-1&&(r=e),[r,r===e?0:4-r%4]}function r0(t,e,r){for(var n,l,o=[],s=e;s>18&63]+je[l>>12&63]+je[l>>6&63]+je[63&l]);return o.join("")}function ur(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,gt.prototype),e}function gt(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return Da(t)}return up(t,e,r)}function up(t,e,r){if(typeof t=="string")return function(o,s){if(typeof s=="string"&&s!==""||(s="utf8"),!gt.isEncoding(s))throw new TypeError("Unknown encoding: "+s);var i=0|hp(o,s),a=ur(i),u=a.write(o,s);return u!==i&&(a=a.slice(0,u)),a}(t,e);if(ArrayBuffer.isView(t))return ps(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(cr(t,ArrayBuffer)||t&&cr(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(cr(t,SharedArrayBuffer)||t&&cr(t.buffer,SharedArrayBuffer)))return function(o,s,i){if(s<0||o.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|t}function hp(t,e){if(gt.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||cr(t,ArrayBuffer))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;for(var l=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Fa(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return gp(t).length;default:if(l)return n?-1:Fa(t).length;e=(""+e).toLowerCase(),l=!0}}function n0(t,e,r){var n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return f0(this,e,r);case"utf8":case"utf-8":return pp(this,e,r);case"ascii":return c0(this,e,r);case"latin1":case"binary":return h0(this,e,r);case"base64":return u0(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return p0(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function zr(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function fc(t,e,r,n,l){if(t.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Ml(r=+r)&&(r=l?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(l)return-1;r=t.length-1}else if(r<0){if(!l)return-1;r=0}if(typeof e=="string"&&(e=gt.from(e,n)),gt.isBuffer(e))return e.length===0?-1:pc(t,e,r,n,l);if(typeof e=="number")return e&=255,typeof Uint8Array.prototype.indexOf=="function"?l?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):pc(t,[e],r,n,l);throw new TypeError("val must be string, number or Buffer")}function pc(t,e,r,n,l){var o,s=1,i=t.length,a=e.length;if(n!==void 0&&((n=String(n).toLowerCase())==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(t.length<2||e.length<2)return-1;s=2,i/=2,a/=2,r/=2}function u(g,b){return s===1?g[b]:g.readUInt16BE(b*s)}if(l){var c=-1;for(o=r;oi&&(r=i-a),o=r;o>=0;o--){for(var d=!0,f=0;fl&&(n=l):n=l;var o=e.length;n>o/2&&(n=o/2);for(var s=0;s>8,a=s%256,u.push(a),u.push(i);return u}(e,t.length-r),t,r,n)}function u0(t,e,r){return e===0&&r===t.length?fo.fromByteArray(t):fo.fromByteArray(t.slice(e,r))}function pp(t,e,r){r=Math.min(t.length,r);for(var n=[],l=e;l239?4:u>223?3:u>191?2:1;if(l+d<=r)switch(d){case 1:u<128&&(c=u);break;case 2:(192&(o=t[l+1]))==128&&(a=(31&u)<<6|63&o)>127&&(c=a);break;case 3:o=t[l+1],s=t[l+2],(192&o)==128&&(192&s)==128&&(a=(15&u)<<12|(63&o)<<6|63&s)>2047&&(a<55296||a>57343)&&(c=a);break;case 4:o=t[l+1],s=t[l+2],i=t[l+3],(192&o)==128&&(192&s)==128&&(192&i)==128&&(a=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&i)>65535&&a<1114112&&(c=a)}c===null?(c=65533,d=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),l+=d}return function(f){var g=f.length;if(g<=4096)return String.fromCharCode.apply(String,f);for(var b="",_=0;_n)&&(r=n);for(var l="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function ge(t,e,r,n,l,o){if(!gt.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>l||et.length)throw new RangeError("Index out of range")}function dp(t,e,r,n,l,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function dc(t,e,r,n,l){return e=+e,r>>>=0,l||dp(t,0,r,4),tn.write(t,e,r,n,23,4),r+4}function gc(t,e,r,n,l){return e=+e,r>>>=0,l||dp(t,0,r,8),tn.write(t,e,r,n,52,8),r+8}function Fa(t,e){var r;e=e||1/0;for(var n=t.length,l=null,o=[],s=0;s55295&&r<57344){if(!l){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}l=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),l=r;continue}r=65536+(l-55296<<10|r-56320)}else l&&(e-=3)>-1&&o.push(239,191,189);if(l=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function gp(t){return fo.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(mp,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(t))}function Mo(t,e,r,n){for(var l=0;l=e.length||l>=t.length);++l)e[l+r]=t[l];return l}function cr(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function Ml(t){return t!=t}function mc(t,e){for(var r in t)e[r]=t[r]}function Kr(t,e,r){return $e(t,e,r)}function qn(t){var e;switch(this.encoding=function(r){var n=function(l){if(!l)return"utf8";for(var o;;)switch(l){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 l;default:if(o)return;l=(""+l).toLowerCase(),o=!0}}(r);if(typeof n!="string"&&(po.isEncoding===Wa||!Wa(r)))throw new Error("Unknown encoding: "+r);return n||r}(t),this.encoding){case"utf16le":this.text=g0,this.end=m0,e=4;break;case"utf8":this.fillLast=d0,e=4;break;case"base64":this.text=y0,this.end=b0,e=3;break;default:return this.write=v0,void(this.end=w0)}this.lastNeed=0,this.lastTotal=0,this.lastChar=po.allocUnsafe(e)}function ds(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function d0(t){var e=this.lastTotal-this.lastNeed,r=function(n,l){if((192&l[0])!=128)return n.lastNeed=0,"�";if(n.lastNeed>1&&l.length>1){if((192&l[1])!=128)return n.lastNeed=1,"�";if(n.lastNeed>2&&l.length>2&&(192&l[2])!=128)return n.lastNeed=2,"�"}}(this,t);return r!==void 0?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function g0(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function m0(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function y0(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function b0(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function v0(t){return t.toString(this.encoding)}function w0(t){return t&&t.length?this.write(t):""}var yc,je,Ee,bc,gs,Gr,vc,We,fo,tn,ms,mp,yp,Hn,Mi,$e,An,po,Wa,wc=ne(()=>{for(ht(),pt(),ft(),yc={byteLength:function(t){var e=hc(t),r=e[0],n=e[1];return 3*(r+n)/4-n},toByteArray:function(t){var e,r,n=hc(t),l=n[0],o=n[1],s=new bc(function(u,c,d){return 3*(c+d)/4-d}(0,l,o)),i=0,a=o>0?l-4:l;for(r=0;r>16&255,s[i++]=e>>8&255,s[i++]=255&e;return o===2&&(e=Ee[t.charCodeAt(r)]<<2|Ee[t.charCodeAt(r+1)]>>4,s[i++]=255&e),o===1&&(e=Ee[t.charCodeAt(r)]<<10|Ee[t.charCodeAt(r+1)]<<4|Ee[t.charCodeAt(r+2)]>>2,s[i++]=e>>8&255,s[i++]=255&e),s},fromByteArray:function(t){for(var e,r=t.length,n=r%3,l=[],o=0,s=r-n;os?s:o+16383));return n===1?(e=t[r-1],l.push(je[e>>2]+je[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],l.push(je[e>>10]+je[e>>4&63]+je[e<<2&63]+"=")),l.join("")}},je=[],Ee=[],bc=typeof Uint8Array<"u"?Uint8Array:Array,gs="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Gr=0,64;Gr<64;++Gr)je[Gr]=gs[Gr],Ee[gs.charCodeAt(Gr)]=Gr;Ee[45]=62,Ee[95]=63,vc={read:function(t,e,r,n,l){var o,s,i=8*l-n-1,a=(1<>1,c=-7,d=r?l-1:0,f=r?-1:1,g=t[e+d];for(d+=f,o=g&(1<<-c)-1,g>>=-c,c+=i;c>0;o=256*o+t[e+d],d+=f,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=n;c>0;s=256*s+t[e+d],d+=f,c-=8);if(o===0)o=1-u;else{if(o===a)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=u}return(g?-1:1)*s*Math.pow(2,o-n)},write:function(t,e,r,n,l,o){var s,i,a,u=8*o-l-1,c=(1<>1,f=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,b=n?1:-1,_=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(i=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(a=Math.pow(2,-s))<1&&(s--,a*=2),(e+=s+d>=1?f/a:f*Math.pow(2,1-d))*a>=2&&(s++,a/=2),s+d>=c?(i=0,s=c):s+d>=1?(i=(e*a-1)*Math.pow(2,l),s+=d):(i=e*Math.pow(2,d-1)*Math.pow(2,l),s=0));l>=8;t[r+g]=255&i,g+=b,i/=256,l-=8);for(s=s<0;t[r+g]=255&s,g+=b,s/=256,u-=8);t[r+g-b]|=128*_}},We={},fo=yc,tn=vc,ms=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null,We.Buffer=gt,We.SlowBuffer=function(t){return+t!=t&&(t=0),gt.alloc(+t)},We.INSPECT_MAX_BYTES=50,We.kMaxLength=2147483647,gt.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}(),gt.TYPED_ARRAY_SUPPORT||typeof console>"u",Object.defineProperty(gt.prototype,"parent",{enumerable:!0,get:function(){if(gt.isBuffer(this))return this.buffer}}),Object.defineProperty(gt.prototype,"offset",{enumerable:!0,get:function(){if(gt.isBuffer(this))return this.byteOffset}}),gt.poolSize=8192,gt.from=function(t,e,r){return up(t,e,r)},Object.setPrototypeOf(gt.prototype,Uint8Array.prototype),Object.setPrototypeOf(gt,Uint8Array),gt.alloc=function(t,e,r){return l=e,o=r,cp(n=t),n<=0?ur(n):l!==void 0?typeof o=="string"?ur(n).fill(l,o):ur(n).fill(l):ur(n);var n,l,o},gt.allocUnsafe=function(t){return Da(t)},gt.allocUnsafeSlow=function(t){return Da(t)},gt.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==gt.prototype},gt.compare=function(t,e){if(cr(t,Uint8Array)&&(t=gt.from(t,t.offset,t.byteLength)),cr(e,Uint8Array)&&(e=gt.from(e,e.offset,e.byteLength)),!gt.isBuffer(t)||!gt.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,n=e.length,l=0,o=Math.min(r,n);le&&(t+=" ... "),""},ms&&(gt.prototype[ms]=gt.prototype.inspect),gt.prototype.compare=function(t,e,r,n,l){if(cr(t,Uint8Array)&&(t=gt.from(t,t.offset,t.byteLength)),!gt.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(e===void 0&&(e=0),r===void 0&&(r=t?t.length:0),n===void 0&&(n=0),l===void 0&&(l=this.length),e<0||r>t.length||n<0||l>this.length)throw new RangeError("out of range index");if(n>=l&&e>=r)return 0;if(n>=l)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(l>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),i=Math.min(o,s),a=this.slice(n,l),u=t.slice(e,r),c=0;c>>=0,isFinite(r)?(r>>>=0,n===void 0&&(n="utf8")):(n=r,r=void 0)}var l=this.length-e;if((r===void 0||r>l)&&(r=l),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return i0(this,t,e,r);case"utf8":case"utf-8":return o0(this,t,e,r);case"ascii":return fp(this,t,e,r);case"latin1":case"binary":return s0(this,t,e,r);case"base64":return a0(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return l0(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},gt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},gt.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=e===void 0?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||Zt(t,e,this.length);for(var n=this[t],l=1,o=0;++o>>=0,e>>>=0,r||Zt(t,e,this.length);for(var n=this[t+--e],l=1;e>0&&(l*=256);)n+=this[t+--e]*l;return n},gt.prototype.readUInt8=function(t,e){return t>>>=0,e||Zt(t,1,this.length),this[t]},gt.prototype.readUInt16LE=function(t,e){return t>>>=0,e||Zt(t,2,this.length),this[t]|this[t+1]<<8},gt.prototype.readUInt16BE=function(t,e){return t>>>=0,e||Zt(t,2,this.length),this[t]<<8|this[t+1]},gt.prototype.readUInt32LE=function(t,e){return t>>>=0,e||Zt(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},gt.prototype.readUInt32BE=function(t,e){return t>>>=0,e||Zt(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},gt.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||Zt(t,e,this.length);for(var n=this[t],l=1,o=0;++o=(l*=128)&&(n-=Math.pow(2,8*e)),n},gt.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||Zt(t,e,this.length);for(var n=e,l=1,o=this[t+--n];n>0&&(l*=256);)o+=this[t+--n]*l;return o>=(l*=128)&&(o-=Math.pow(2,8*e)),o},gt.prototype.readInt8=function(t,e){return t>>>=0,e||Zt(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},gt.prototype.readInt16LE=function(t,e){t>>>=0,e||Zt(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},gt.prototype.readInt16BE=function(t,e){t>>>=0,e||Zt(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},gt.prototype.readInt32LE=function(t,e){return t>>>=0,e||Zt(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},gt.prototype.readInt32BE=function(t,e){return t>>>=0,e||Zt(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},gt.prototype.readFloatLE=function(t,e){return t>>>=0,e||Zt(t,4,this.length),tn.read(this,t,!0,23,4)},gt.prototype.readFloatBE=function(t,e){return t>>>=0,e||Zt(t,4,this.length),tn.read(this,t,!1,23,4)},gt.prototype.readDoubleLE=function(t,e){return t>>>=0,e||Zt(t,8,this.length),tn.read(this,t,!0,52,8)},gt.prototype.readDoubleBE=function(t,e){return t>>>=0,e||Zt(t,8,this.length),tn.read(this,t,!1,52,8)},gt.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||ge(this,t,e,r,Math.pow(2,8*r)-1,0);var l=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,n||ge(this,t,e,r,Math.pow(2,8*r)-1,0);var l=r-1,o=1;for(this[e+l]=255&t;--l>=0&&(o*=256);)this[e+l]=t/o&255;return e+r},gt.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,1,255,0),this[e]=255&t,e+1},gt.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},gt.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},gt.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},gt.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},gt.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var l=Math.pow(2,8*r-1);ge(this,t,e,r,l-1,-l)}var o=0,s=1,i=0;for(this[e]=255&t;++o>>=0,!n){var l=Math.pow(2,8*r-1);ge(this,t,e,r,l-1,-l)}var o=r-1,s=1,i=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&i===0&&this[e+o+1]!==0&&(i=1),this[e+o]=(t/s|0)-i&255;return e+r},gt.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},gt.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},gt.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},gt.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},gt.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||ge(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},gt.prototype.writeFloatLE=function(t,e,r){return dc(this,t,e,!0,r)},gt.prototype.writeFloatBE=function(t,e,r){return dc(this,t,e,!1,r)},gt.prototype.writeDoubleLE=function(t,e,r){return gc(this,t,e,!0,r)},gt.prototype.writeDoubleBE=function(t,e,r){return gc(this,t,e,!1,r)},gt.prototype.copy=function(t,e,r,n){if(!gt.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||n===0||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--o)t[o+e]=this[o+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return l},gt.prototype.fill=function(t,e,r,n){if(typeof t=="string"){if(typeof e=="string"?(n=e,e=0,r=this.length):typeof r=="string"&&(n=r,r=this.length),n!==void 0&&typeof n!="string")throw new TypeError("encoding must be a string");if(typeof n=="string"&&!gt.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(t.length===1){var l=t.charCodeAt(0);(n==="utf8"&&l<128||n==="latin1")&&(t=l)}}else typeof t=="number"?t&=255:typeof t=="boolean"&&(t=Number(t));if(e<0||this.length>>=0,r=r===void 0?this.length:r>>>0,t||(t=0),typeof t=="number")for(o=e;o=0?(a>0&&(l.lastNeed=a-1),a):--i=0?(a>0&&(l.lastNeed=a-2),a):--i=0?(a>0&&(a===2?a=0:l.lastNeed=a-3),a):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},qn.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length},An.StringDecoder,An.StringDecoder}),bp={};fn(bp,{StringDecoder:()=>vp,default:()=>An});var vp,_0=ne(()=>{ht(),pt(),ft(),wc(),wc(),vp=An.StringDecoder}),wp=mt((t,e)=>{ht(),pt(),ft();var r=pn(),{PromisePrototypeThen:n,SymbolAsyncIterator:l,SymbolIterator:o}=Xt(),{Buffer:s}=(oe(),Dt(ie)),{ERR_INVALID_ARG_TYPE:i,ERR_STREAM_NULL_VALUES:a}=we().codes;e.exports=function(u,c,d){let f,g;if(typeof c=="string"||c instanceof s)return new u({objectMode:!0,...d,read(){this.push(c),this.push(null)}});if(c&&c[l])g=!0,f=c[l]();else{if(!c||!c[o])throw new i("iterable",["Iterable"],c);g=!1,f=c[o]()}let b=new u({objectMode:!0,highWaterMark:1,...d}),_=!1;return b._read=function(){_||(_=!0,async function(){for(;;){try{let{value:S,done:U}=g?await f.next():f.next();if(U)b.push(null);else{let D=S&&typeof S.then=="function"?await S:S;if(D===null)throw _=!1,new a;if(b.push(D))continue;_=!1}}catch(S){b.destroy(S)}break}}())},b._destroy=function(S,U){n(async function(D){let G=D!=null,$=typeof f.throw=="function";if(G&&$){let{value:X,done:B}=await f.throw(D);if(await X,B)return}if(typeof f.return=="function"){let{value:X}=await f.return();await X}}(S),()=>r.nextTick(U,S),D=>r.nextTick(U,D||S))},b}}),Lo=mt((t,e)=>{ht(),pt(),ft();var r=pn(),{ArrayPrototypeIndexOf:n,NumberIsInteger:l,NumberIsNaN:o,NumberParseInt:s,ObjectDefineProperties:i,ObjectKeys:a,ObjectSetPrototypeOf:u,Promise:c,SafeSet:d,SymbolAsyncIterator:f,Symbol:g}=Xt();e.exports=q,q.ReadableState=k;var{EventEmitter:b}=(Un(),Dt(dn)),{Stream:_,prependListener:S}=Rl(),{Buffer:U}=(oe(),Dt(ie)),{addAbortSignal:D}=Bo(),G=Dr(),$=fr().debuglog("stream",m=>{$=m}),X=e0(),B=jn(),{getHighWaterMark:A,getDefaultHighWaterMark:E}=Pl(),{aggregateTwoErrors:w,codes:{ERR_INVALID_ARG_TYPE:M,ERR_METHOD_NOT_IMPLEMENTED:R,ERR_OUT_OF_RANGE:nt,ERR_STREAM_PUSH_AFTER_EOF:st,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:Z}}=we(),{validateObject:j}=Po(),N=g("kPaused"),{StringDecoder:F}=(_0(),Dt(bp)),it=wp();u(q.prototype,_.prototype),u(q,_);var J=()=>{},{errorOrDestroy:Y}=B;function k(m,y,T){typeof T!="boolean"&&(T=y instanceof pr()),this.objectMode=!(!m||!m.objectMode),T&&(this.objectMode=this.objectMode||!(!m||!m.readableObjectMode)),this.highWaterMark=m?A(this,m,"readableHighWaterMark",T):E(!1),this.buffer=new X,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[N]=null,this.errorEmitted=!1,this.emitClose=!m||m.emitClose!==!1,this.autoDestroy=!m||m.autoDestroy!==!1,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=m&&m.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,m&&m.encoding&&(this.decoder=new F(m.encoding),this.encoding=m.encoding)}function q(m){if(!(this instanceof q))return new q(m);let y=this instanceof pr();this._readableState=new k(m,this,y),m&&(typeof m.read=="function"&&(this._read=m.read),typeof m.destroy=="function"&&(this._destroy=m.destroy),typeof m.construct=="function"&&(this._construct=m.construct),m.signal&&!y&&D(m.signal,this)),_.call(this,m),B.construct(this,()=>{this._readableState.needReadable&&rt(this,this._readableState)})}function et(m,y,T,L){$("readableAddChunk",y);let z,V=m._readableState;if(V.objectMode||(typeof y=="string"?(T=T||V.defaultEncoding,V.encoding!==T&&(L&&V.encoding?y=U.from(y,T).toString(V.encoding):(y=U.from(y,T),T=""))):y instanceof U?T="":_._isUint8Array(y)?(y=_._uint8ArrayToBuffer(y),T=""):y!=null&&(z=new M("chunk",["string","Buffer","Uint8Array"],y))),z)Y(m,z);else if(y===null)V.reading=!1,function(lt,ct){if($("onEofChunk"),!ct.ended){if(ct.decoder){let yt=ct.decoder.end();yt&&yt.length&&(ct.buffer.push(yt),ct.length+=ct.objectMode?1:yt.length)}ct.ended=!0,ct.sync?dt(lt):(ct.needReadable=!1,ct.emittedReadable=!0,H(lt))}}(m,V);else if(V.objectMode||y&&y.length>0)if(L)if(V.endEmitted)Y(m,new Z);else{if(V.destroyed||V.errored)return!1;ot(m,V,y,!0)}else if(V.ended)Y(m,new st);else{if(V.destroyed||V.errored)return!1;V.reading=!1,V.decoder&&!T?(y=V.decoder.write(y),V.objectMode||y.length!==0?ot(m,V,y,!1):rt(m,V)):ot(m,V,y,!1)}else L||(V.reading=!1,rt(m,V));return!V.ended&&(V.length0?(y.multiAwaitDrain?y.awaitDrainWriters.clear():y.awaitDrainWriters=null,y.dataEmitted=!0,m.emit("data",T)):(y.length+=y.objectMode?1:T.length,L?y.buffer.unshift(T):y.buffer.push(T),y.needReadable&&dt(m)),rt(m,y)}q.prototype.destroy=B.destroy,q.prototype._undestroy=B.undestroy,q.prototype._destroy=function(m,y){y(m)},q.prototype[b.captureRejectionSymbol]=function(m){this.destroy(m)},q.prototype.push=function(m,y){return et(this,m,y,!1)},q.prototype.unshift=function(m,y){return et(this,m,y,!0)},q.prototype.isPaused=function(){let m=this._readableState;return m[N]===!0||m.flowing===!1},q.prototype.setEncoding=function(m){let y=new F(m);this._readableState.decoder=y,this._readableState.encoding=this._readableState.decoder.encoding;let T=this._readableState.buffer,L="";for(let z of T)L+=y.write(z);return T.clear(),L!==""&&T.push(L),this._readableState.length=L.length,this};var at;function ut(m,y){return m<=0||y.length===0&&y.ended?0:y.objectMode?1:o(m)?y.flowing&&y.length?y.buffer.first().length:y.length:m<=y.length?m:y.ended?y.length:0}function dt(m){let y=m._readableState;$("emitReadable",y.needReadable,y.emittedReadable),y.needReadable=!1,y.emittedReadable||($("emitReadable",y.flowing),y.emittedReadable=!0,r.nextTick(H,m))}function H(m){let y=m._readableState;$("emitReadable_",y.destroyed,y.length,y.ended),!y.destroyed&&!y.errored&&(y.length||y.ended)&&(m.emit("readable"),y.emittedReadable=!1),y.needReadable=!y.flowing&&!y.ended&&y.length<=y.highWaterMark,Q(m)}function rt(m,y){!y.readingMore&&y.constructed&&(y.readingMore=!0,r.nextTick(tt,m,y))}function tt(m,y){for(;!y.reading&&!y.ended&&(y.length0,y.resumeScheduled&&y[N]===!1?y.flowing=!0:m.listenerCount("data")>0?m.resume():y.readableListening||(y.flowing=null)}function W(m){$("readable nexttick read 0"),m.read(0)}function C(m,y){$("resume",y.reading),y.reading||m.read(0),y.resumeScheduled=!1,m.emit("resume"),Q(m),y.flowing&&!y.reading&&m.read(0)}function Q(m){let y=m._readableState;for($("flow",y.flowing);y.flowing&&m.read()!==null;);}function h(m,y){typeof m.read!="function"&&(m=q.wrap(m,{objectMode:!0}));let T=async function*(L,z){let V=J;function lt(bt){this===L?(V(),V=J):V=bt}L.on("readable",lt);let ct,yt=G(L,{writable:!1},bt=>{ct=bt?w(ct,bt):null,V(),V=J});try{for(;;){let bt=L.destroyed?null:L.read();if(bt!==null)yield bt;else{if(ct)throw ct;if(ct===null)return;await new c(lt)}}}catch(bt){throw ct=w(ct,bt),ct}finally{!ct&&(z==null?void 0:z.destroyOnReturn)===!1||ct!==void 0&&!L._readableState.autoDestroy?(L.off("readable",lt),yt()):B.destroyer(L,null)}}(m,y);return T.stream=m,T}function p(m,y){if(y.length===0)return null;let T;return y.objectMode?T=y.buffer.shift():!m||m>=y.length?(T=y.decoder?y.buffer.join(""):y.buffer.length===1?y.buffer.first():y.buffer.concat(y.length),y.buffer.clear()):T=y.buffer.consume(m,y.decoder),T}function v(m){let y=m._readableState;$("endReadable",y.endEmitted),y.endEmitted||(y.ended=!0,r.nextTick(O,y,m))}function O(m,y){if($("endReadableNT",m.endEmitted,m.length),!m.errored&&!m.closeEmitted&&!m.endEmitted&&m.length===0){if(m.endEmitted=!0,y.emit("end"),y.writable&&y.allowHalfOpen===!1)r.nextTick(x,y);else if(m.autoDestroy){let T=y._writableState;(!T||T.autoDestroy&&(T.finished||T.writable===!1))&&y.destroy()}}}function x(m){m.writable&&!m.writableEnded&&!m.destroyed&&m.end()}function I(){return at===void 0&&(at={}),at}q.prototype.read=function(m){$("read",m),m===void 0?m=NaN:l(m)||(m=s(m,10));let y=this._readableState,T=m;if(m>y.highWaterMark&&(y.highWaterMark=function(V){if(V>1073741824)throw new nt("size","<= 1GiB",V);return V--,V|=V>>>1,V|=V>>>2,V|=V>>>4,V|=V>>>8,V|=V>>>16,++V}(m)),m!==0&&(y.emittedReadable=!1),m===0&&y.needReadable&&((y.highWaterMark!==0?y.length>=y.highWaterMark:y.length>0)||y.ended))return $("read: emitReadable",y.length,y.ended),y.length===0&&y.ended?v(this):dt(this),null;if((m=ut(m,y))===0&&y.ended)return y.length===0&&v(this),null;let L,z=y.needReadable;if($("need readable",z),(y.length===0||y.length-m0?p(m,y):null,L===null?(y.needReadable=y.length<=y.highWaterMark,m=0):(y.length-=m,y.multiAwaitDrain?y.awaitDrainWriters.clear():y.awaitDrainWriters=null),y.length===0&&(y.ended||(y.needReadable=!0),T!==m&&y.ended&&v(this)),L!==null&&!y.errorEmitted&&!y.closeEmitted&&(y.dataEmitted=!0,this.emit("data",L)),L},q.prototype._read=function(m){throw new R("_read()")},q.prototype.pipe=function(m,y){let T=this,L=this._readableState;L.pipes.length===1&&(L.multiAwaitDrain||(L.multiAwaitDrain=!0,L.awaitDrainWriters=new d(L.awaitDrainWriters?[L.awaitDrainWriters]:[]))),L.pipes.push(m),$("pipe count=%d opts=%j",L.pipes.length,y);let z=y&&y.end===!1||m===r.stdout||m===r.stderr?Tt:lt;function V(kt,vt){$("onunpipe"),kt===T&&vt&&vt.hasUnpiped===!1&&(vt.hasUnpiped=!0,$("cleanup"),m.removeListener("close",xt),m.removeListener("finish",_t),ct&&m.removeListener("drain",ct),m.removeListener("error",Ot),m.removeListener("unpipe",V),T.removeListener("end",lt),T.removeListener("end",Tt),T.removeListener("data",wt),yt=!0,ct&&L.awaitDrainWriters&&(!m._writableState||m._writableState.needDrain)&&ct())}function lt(){$("onend"),m.end()}L.endEmitted?r.nextTick(z):T.once("end",z),m.on("unpipe",V);let ct,yt=!1;function bt(){yt||(L.pipes.length===1&&L.pipes[0]===m?($("false write response, pause",0),L.awaitDrainWriters=m,L.multiAwaitDrain=!1):L.pipes.length>1&&L.pipes.includes(m)&&($("false write response, pause",L.awaitDrainWriters.size),L.awaitDrainWriters.add(m)),T.pause()),ct||(ct=function(kt,vt){return function(){let Ct=kt._readableState;Ct.awaitDrainWriters===vt?($("pipeOnDrain",1),Ct.awaitDrainWriters=null):Ct.multiAwaitDrain&&($("pipeOnDrain",Ct.awaitDrainWriters.size),Ct.awaitDrainWriters.delete(vt)),(!Ct.awaitDrainWriters||Ct.awaitDrainWriters.size===0)&&kt.listenerCount("data")&&kt.resume()}}(T,m),m.on("drain",ct))}function wt(kt){$("ondata");let vt=m.write(kt);$("dest.write",vt),vt===!1&&bt()}function Ot(kt){if($("onerror",kt),Tt(),m.removeListener("error",Ot),m.listenerCount("error")===0){let vt=m._writableState||m._readableState;vt&&!vt.errorEmitted?Y(m,kt):m.emit("error",kt)}}function xt(){m.removeListener("finish",_t),Tt()}function _t(){$("onfinish"),m.removeListener("close",xt),Tt()}function Tt(){$("unpipe"),T.unpipe(m)}return T.on("data",wt),S(m,"error",Ot),m.once("close",xt),m.once("finish",_t),m.emit("pipe",T),m.writableNeedDrain===!0?L.flowing&&bt():L.flowing||($("pipe resume"),T.resume()),m},q.prototype.unpipe=function(m){let y=this._readableState;if(y.pipes.length===0)return this;if(!m){let L=y.pipes;y.pipes=[],this.pause();for(let z=0;z0,L.flowing!==!1&&this.resume()):m==="readable"&&!L.endEmitted&&!L.readableListening&&(L.readableListening=L.needReadable=!0,L.flowing=!1,L.emittedReadable=!1,$("on readable",L.length,L.reading),L.length?dt(this):L.reading||r.nextTick(W,this)),T},q.prototype.addListener=q.prototype.on,q.prototype.removeListener=function(m,y){let T=_.prototype.removeListener.call(this,m,y);return m==="readable"&&r.nextTick(P,this),T},q.prototype.off=q.prototype.removeListener,q.prototype.removeAllListeners=function(m){let y=_.prototype.removeAllListeners.apply(this,arguments);return(m==="readable"||m===void 0)&&r.nextTick(P,this),y},q.prototype.resume=function(){let m=this._readableState;return m.flowing||($("resume"),m.flowing=!m.readableListening,function(y,T){T.resumeScheduled||(T.resumeScheduled=!0,r.nextTick(C,y,T))}(this,m)),m[N]=!1,this},q.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[N]=!0,this},q.prototype.wrap=function(m){let y=!1;m.on("data",L=>{!this.push(L)&&m.pause&&(y=!0,m.pause())}),m.on("end",()=>{this.push(null)}),m.on("error",L=>{Y(this,L)}),m.on("close",()=>{this.destroy()}),m.on("destroy",()=>{this.destroy()}),this._read=()=>{y&&m.resume&&(y=!1,m.resume())};let T=a(m);for(let L=1;L{ht(),pt(),ft();var r=pn(),{ArrayPrototypeSlice:n,Error:l,FunctionPrototypeSymbolHasInstance:o,ObjectDefineProperty:s,ObjectDefineProperties:i,ObjectSetPrototypeOf:a,StringPrototypeToLowerCase:u,Symbol:c,SymbolHasInstance:d}=Xt();e.exports=F,F.WritableState=j;var{EventEmitter:f}=(Un(),Dt(dn)),g=Rl().Stream,{Buffer:b}=(oe(),Dt(ie)),_=jn(),{addAbortSignal:S}=Bo(),{getHighWaterMark:U,getDefaultHighWaterMark:D}=Pl(),{ERR_INVALID_ARG_TYPE:G,ERR_METHOD_NOT_IMPLEMENTED:$,ERR_MULTIPLE_CALLBACK:X,ERR_STREAM_CANNOT_PIPE:B,ERR_STREAM_DESTROYED:A,ERR_STREAM_ALREADY_FINISHED:E,ERR_STREAM_NULL_VALUES:w,ERR_STREAM_WRITE_AFTER_END:M,ERR_UNKNOWN_ENCODING:R}=we().codes,{errorOrDestroy:nt}=_;function st(){}a(F.prototype,g.prototype),a(F,g);var Z=c("kOnFinished");function j(C,Q,h){typeof h!="boolean"&&(h=Q instanceof pr()),this.objectMode=!(!C||!C.objectMode),h&&(this.objectMode=this.objectMode||!(!C||!C.writableObjectMode)),this.highWaterMark=C?U(this,C,"writableHighWaterMark",h):D(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let p=!(!C||C.decodeStrings!==!1);this.decodeStrings=!p,this.defaultEncoding=C&&C.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=k.bind(void 0,Q),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,N(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!C||C.emitClose!==!1,this.autoDestroy=!C||C.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[Z]=[]}function N(C){C.buffered=[],C.bufferedIndex=0,C.allBuffers=!0,C.allNoop=!0}function F(C){let Q=this instanceof pr();if(!Q&&!o(F,this))return new F(C);this._writableState=new j(C,this,Q),C&&(typeof C.write=="function"&&(this._write=C.write),typeof C.writev=="function"&&(this._writev=C.writev),typeof C.destroy=="function"&&(this._destroy=C.destroy),typeof C.final=="function"&&(this._final=C.final),typeof C.construct=="function"&&(this._construct=C.construct),C.signal&&S(C.signal,this)),g.call(this,C),_.construct(this,()=>{let h=this._writableState;h.writing||at(this,h),H(this,h)})}function it(C,Q,h,p){let v,O=C._writableState;if(typeof h=="function")p=h,h=O.defaultEncoding;else{if(h){if(h!=="buffer"&&!b.isEncoding(h))throw new R(h)}else h=O.defaultEncoding;typeof p!="function"&&(p=st)}if(Q===null)throw new w;if(!O.objectMode)if(typeof Q=="string")O.decodeStrings!==!1&&(Q=b.from(Q,h),h="buffer");else if(Q instanceof b)h="buffer";else{if(!g._isUint8Array(Q))throw new G("chunk",["string","Buffer","Uint8Array"],Q);Q=g._uint8ArrayToBuffer(Q),h="buffer"}return O.ending?v=new M:O.destroyed&&(v=new A("write")),v?(r.nextTick(p,v),nt(C,v,!0),v):(O.pendingcb++,function(x,I,m,y,T){let L=I.objectMode?1:m.length;I.length+=L;let z=I.lengthh.bufferedIndex&&at(C,h),p?h.afterWriteTickInfo!==null&&h.afterWriteTickInfo.cb===v?h.afterWriteTickInfo.count++:(h.afterWriteTickInfo={count:1,cb:v,stream:C,state:h},r.nextTick(q,h.afterWriteTickInfo)):et(C,h,1,v))):nt(C,new X)}function q({stream:C,state:Q,count:h,cb:p}){return Q.afterWriteTickInfo=null,et(C,Q,h,p)}function et(C,Q,h,p){for(!Q.ending&&!C.destroyed&&Q.length===0&&Q.needDrain&&(Q.needDrain=!1,C.emit("drain"));h-- >0;)Q.pendingcb--,p();Q.destroyed&&ot(Q),H(C,Q)}function ot(C){if(C.writing)return;for(let v=C.bufferedIndex;v1&&C._writev){Q.pendingcb-=O-1;let I=Q.allNoop?st:y=>{for(let T=x;T256?(h.splice(0,x),Q.bufferedIndex=0):Q.bufferedIndex=x}Q.bufferProcessing=!1}function ut(C){return C.ending&&!C.destroyed&&C.constructed&&C.length===0&&!C.errored&&C.buffered.length===0&&!C.finished&&!C.writing&&!C.errorEmitted&&!C.closeEmitted}function dt(C,Q){!Q.prefinished&&!Q.finalCalled&&(typeof C._final!="function"||Q.destroyed?(Q.prefinished=!0,C.emit("prefinish")):(Q.finalCalled=!0,function(h,p){let v=!1;function O(x){if(v)nt(h,x??X());else if(v=!0,p.pendingcb--,x){let I=p[Z].splice(0);for(let m=0;m{ut(v)?rt(p,v):v.pendingcb--},C,Q)):ut(Q)&&(Q.pendingcb++,rt(C,Q))))}function rt(C,Q){Q.pendingcb--,Q.finished=!0;let h=Q[Z].splice(0);for(let p=0;p{ht(),pt(),ft();var r=pn(),n=(oe(),Dt(ie)),{isReadable:l,isWritable:o,isIterable:s,isNodeStream:i,isReadableNodeStream:a,isWritableNodeStream:u,isDuplexNodeStream:c}=yr(),d=Dr(),{AbortError:f,codes:{ERR_INVALID_ARG_TYPE:g,ERR_INVALID_RETURN_VALUE:b}}=we(),{destroyer:_}=jn(),S=pr(),U=Lo(),{createDeferredPromise:D}=fr(),G=wp(),$=globalThis.Blob||n.Blob,X=typeof $<"u"?function(M){return M instanceof $}:function(M){return!1},B=globalThis.AbortController||Cl().AbortController,{FunctionPrototypeCall:A}=Xt(),E=class extends S{constructor(M){super(M),(M==null?void 0:M.readable)===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),(M==null?void 0:M.writable)===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)}};function w(M){let R,nt,st,Z,j,N=M.readable&&typeof M.readable.read!="function"?U.wrap(M.readable):M.readable,F=M.writable,it=!!l(N),J=!!o(F);function Y(k){let q=Z;Z=null,q?q(k):k&&j.destroy(k)}return j=new E({readableObjectMode:!(N==null||!N.readableObjectMode),writableObjectMode:!(F==null||!F.writableObjectMode),readable:it,writable:J}),J&&(d(F,k=>{J=!1,k&&_(N,k),Y(k)}),j._write=function(k,q,et){F.write(k,q)?et():R=et},j._final=function(k){F.end(),nt=k},F.on("drain",function(){if(R){let k=R;R=null,k()}}),F.on("finish",function(){if(nt){let k=nt;nt=null,k()}})),it&&(d(N,k=>{it=!1,k&&_(N,k),Y(k)}),N.on("readable",function(){if(st){let k=st;st=null,k()}}),N.on("end",function(){j.push(null)}),j._read=function(){for(;;){let k=N.read();if(k===null)return void(st=j._read);if(!j.push(k))return}}),j._destroy=function(k,q){!k&&Z!==null&&(k=new f),st=null,R=null,nt=null,Z===null?q(k):(Z=q,_(F,k),_(N,k))},j}e.exports=function M(R,nt){if(c(R))return R;if(a(R))return w({readable:R});if(u(R))return w({writable:R});if(i(R))return w({writable:!1,readable:!1});if(typeof R=="function"){let{value:Z,write:j,final:N,destroy:F}=function(J){let{promise:Y,resolve:k}=D(),q=new B,et=q.signal;return{value:J(async function*(){for(;;){let ot=Y;Y=null;let{chunk:at,done:ut,cb:dt}=await ot;if(r.nextTick(dt),ut)return;if(et.aborted)throw new f(void 0,{cause:et.reason});({promise:Y,resolve:k}=D()),yield at}}(),{signal:et}),write(ot,at,ut){let dt=k;k=null,dt({chunk:ot,done:!1,cb:ut})},final(ot){let at=k;k=null,at({done:!0,cb:ot})},destroy(ot,at){q.abort(),at(ot)}}}(R);if(s(Z))return G(E,Z,{objectMode:!0,write:j,final:N,destroy:F});let it=Z==null?void 0:Z.then;if(typeof it=="function"){let J,Y=A(it,Z,k=>{if(k!=null)throw new b("nully","body",k)},k=>{_(J,k)});return J=new E({objectMode:!0,readable:!1,write:j,final(k){N(async()=>{try{await Y,r.nextTick(k,null)}catch(q){r.nextTick(k,q)}})},destroy:F})}throw new b("Iterable, AsyncIterable or AsyncFunction",nt,Z)}if(X(R))return M(R.arrayBuffer());if(s(R))return G(E,R,{objectMode:!0,writable:!1});if(typeof(R==null?void 0:R.writable)=="object"||typeof(R==null?void 0:R.readable)=="object")return w({readable:R!=null&&R.readable?a(R==null?void 0:R.readable)?R==null?void 0:R.readable:M(R.readable):void 0,writable:R!=null&&R.writable?u(R==null?void 0:R.writable)?R==null?void 0:R.writable:M(R.writable):void 0});let st=R==null?void 0:R.then;if(typeof st=="function"){let Z;return A(st,R,j=>{j!=null&&Z.push(j),Z.push(null)},j=>{_(Z,j)}),Z=new E({objectMode:!0,writable:!1,read(){}})}throw new g(nt,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],R)}}),pr=mt((t,e)=>{ht(),pt(),ft();var{ObjectDefineProperties:r,ObjectGetOwnPropertyDescriptor:n,ObjectKeys:l,ObjectSetPrototypeOf:o}=Xt();e.exports=c;var s,i,a=Lo(),u=_p();o(c.prototype,a.prototype),o(c,a);{let f=l(u.prototype);for(let g=0;g{ht(),pt(),ft();var{ObjectSetPrototypeOf:r,Symbol:n}=Xt();e.exports=a;var{ERR_METHOD_NOT_IMPLEMENTED:l}=we().codes,o=pr(),{getHighWaterMark:s}=Pl();r(a.prototype,o.prototype),r(a,o);var i=n("kCallback");function a(d){if(!(this instanceof a))return new a(d);let f=d?s(this,d,"readableHighWaterMark",!0):null;f===0&&(d={...d,highWaterMark:null,readableHighWaterMark:f,writableHighWaterMark:d.writableHighWaterMark||0}),o.call(this,d),this._readableState.sync=!1,this[i]=null,d&&(typeof d.transform=="function"&&(this._transform=d.transform),typeof d.flush=="function"&&(this._flush=d.flush)),this.on("prefinish",c)}function u(d){typeof this._flush!="function"||this.destroyed?(this.push(null),d&&d()):this._flush((f,g)=>{f?d?d(f):this.destroy(f):(g!=null&&this.push(g),this.push(null),d&&d())})}function c(){this._final!==u&&u.call(this)}a.prototype._final=u,a.prototype._transform=function(d,f,g){throw new l("_transform()")},a.prototype._write=function(d,f,g){let b=this._readableState,_=this._writableState,S=b.length;this._transform(d,f,(U,D)=>{U?g(U):(D!=null&&this.push(D),_.ended||S===b.length||b.length{ht(),pt(),ft();var{ObjectSetPrototypeOf:r}=Xt();e.exports=l;var n=Ep();function l(o){if(!(this instanceof l))return new l(o);n.call(this,o)}r(l.prototype,n.prototype),r(l,n),l.prototype._transform=function(o,s,i){i(null,o)}}),Ll=mt((t,e)=>{ht(),pt(),ft();var r,n,l=pn(),{ArrayIsArray:o,Promise:s,SymbolAsyncIterator:i}=Xt(),a=Dr(),{once:u}=fr(),c=jn(),d=pr(),{aggregateTwoErrors:f,codes:{ERR_INVALID_ARG_TYPE:g,ERR_INVALID_RETURN_VALUE:b,ERR_MISSING_ARGS:_,ERR_STREAM_DESTROYED:S,ERR_STREAM_PREMATURE_CLOSE:U},AbortError:D}=we(),{validateFunction:G,validateAbortSignal:$}=Po(),{isIterable:X,isReadable:B,isReadableNodeStream:A,isNodeStream:E,isTransformStream:w,isWebStream:M,isReadableStream:R,isReadableEnded:nt}=yr(),st=globalThis.AbortController||Cl().AbortController;function Z(Y,k,q){let et=!1;return Y.on("close",()=>{et=!0}),{destroy:ot=>{et||(et=!0,c.destroyer(Y,ot||new S("pipe")))},cleanup:a(Y,{readable:k,writable:q},ot=>{et=!ot})}}function j(Y){if(X(Y))return Y;if(A(Y))return async function*(k){n||(n=Lo()),yield*n.prototype[i].call(k)}(Y);throw new g("val",["Readable","Iterable","AsyncIterable"],Y)}async function N(Y,k,q,{end:et}){let ot,at=null,ut=rt=>{if(rt&&(ot=rt),at){let tt=at;at=null,tt()}},dt=()=>new s((rt,tt)=>{ot?tt(ot):at=()=>{ot?tt(ot):rt()}});k.on("drain",ut);let H=a(k,{readable:!1},ut);try{k.writableNeedDrain&&await dt();for await(let rt of Y)k.write(rt)||await dt();et&&k.end(),await dt(),q()}catch(rt){q(ot!==rt?f(ot,rt):rt)}finally{H(),k.off("drain",ut)}}async function F(Y,k,q,{end:et}){w(k)&&(k=k.writable);let ot=k.getWriter();try{for await(let at of Y)await ot.ready,ot.write(at).catch(()=>{});await ot.ready,et&&await ot.close(),q()}catch(at){try{await ot.abort(at),q(at)}catch(ut){q(ut)}}}function it(Y,k,q){if(Y.length===1&&o(Y[0])&&(Y=Y[0]),Y.length<2)throw new _("streams");let et=new st,ot=et.signal,at=q==null?void 0:q.signal,ut=[];function dt(){Q(new D)}$(at,"options.signal"),at==null||at.addEventListener("abort",dt);let H,rt,tt,P=[],W=0;function C(v){Q(v,--W==0)}function Q(v,O){if(v&&(!H||H.code==="ERR_STREAM_PREMATURE_CLOSE")&&(H=v),H||O){for(;P.length;)P.shift()(H);at==null||at.removeEventListener("abort",dt),et.abort(),O&&(H||ut.forEach(x=>x()),l.nextTick(k,H,rt))}}for(let v=0;v0,m=x||(q==null?void 0:q.end)!==!1,y=v===Y.length-1;if(E(O)){let T=function(L){L&&L.name!=="AbortError"&&L.code!=="ERR_STREAM_PREMATURE_CLOSE"&&C(L)};if(m){let{destroy:L,cleanup:z}=Z(O,x,I);P.push(L),B(O)&&y&&ut.push(z)}O.on("error",T),B(O)&&y&&ut.push(()=>{O.removeListener("error",T)})}if(v===0)if(typeof O=="function"){if(tt=O({signal:ot}),!X(tt))throw new b("Iterable, AsyncIterable or Stream","source",tt)}else tt=X(O)||A(O)||w(O)?O:d.from(O);else if(typeof O=="function"){var h;if(w(tt)?tt=j((h=tt)===null||h===void 0?void 0:h.readable):tt=j(tt),tt=O(tt,{signal:ot}),x){if(!X(tt,!0))throw new b("AsyncIterable",`transform[${v-1}]`,tt)}else{var p;r||(r=Sp());let T=new r({objectMode:!0}),L=(p=tt)===null||p===void 0?void 0:p.then;if(typeof L=="function")W++,L.call(tt,lt=>{rt=lt,lt!=null&&T.write(lt),m&&T.end(),l.nextTick(C)},lt=>{T.destroy(lt),l.nextTick(C,lt)});else if(X(tt,!0))W++,N(tt,T,C,{end:m});else{if(!R(tt)&&!w(tt))throw new b("AsyncIterable or Promise","destination",tt);{let lt=tt.readable||tt;W++,N(lt,T,C,{end:m})}}tt=T;let{destroy:z,cleanup:V}=Z(tt,!1,!0);P.push(z),y&&ut.push(V)}}else if(E(O)){if(A(tt)){W+=2;let T=J(tt,O,C,{end:m});B(O)&&y&&ut.push(T)}else if(w(tt)||R(tt)){let T=tt.readable||tt;W++,N(T,O,C,{end:m})}else{if(!X(tt))throw new g("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],tt);W++,N(tt,O,C,{end:m})}tt=O}else if(M(O)){if(A(tt))W++,F(j(tt),O,C,{end:m});else if(R(tt)||X(tt))W++,F(tt,O,C,{end:m});else{if(!w(tt))throw new g("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],tt);W++,F(tt.readable,O,C,{end:m})}tt=O}else tt=d.from(O)}return(ot!=null&&ot.aborted||at!=null&&at.aborted)&&l.nextTick(dt),tt}function J(Y,k,q,{end:et}){let ot=!1;if(k.on("close",()=>{ot||q(new U)}),Y.pipe(k,{end:!1}),et){let at=function(){ot=!0,k.end()};nt(Y)?l.nextTick(at):Y.once("end",at)}else q();return a(Y,{readable:!0,writable:!1},at=>{let ut=Y._readableState;at&&at.code==="ERR_STREAM_PREMATURE_CLOSE"&&ut&&ut.ended&&!ut.errored&&!ut.errorEmitted?Y.once("end",q).once("error",q):q(at)}),a(k,{readable:!1,writable:!0},q)}e.exports={pipelineImpl:it,pipeline:function(...Y){return it(Y,u(function(k){return G(k[k.length-1],"streams[stream.length - 1]"),k.pop()}(Y)))}}}),Ap=mt((t,e)=>{ht(),pt(),ft();var{pipeline:r}=Ll(),n=pr(),{destroyer:l}=jn(),{isNodeStream:o,isReadable:s,isWritable:i,isWebStream:a,isTransformStream:u,isWritableStream:c,isReadableStream:d}=yr(),{AbortError:f,codes:{ERR_INVALID_ARG_VALUE:g,ERR_MISSING_ARGS:b}}=we(),_=Dr();e.exports=function(...S){if(S.length===0)throw new b("streams");if(S.length===1)return n.from(S[0]);let U,D,G,$,X,B=[...S];if(typeof S[0]=="function"&&(S[0]=n.from(S[0])),typeof S[S.length-1]=="function"){let R=S.length-1;S[R]=n.from(S[R])}for(let R=0;R0&&!(i(S[R])||c(S[R])||u(S[R])))throw new g(`streams[${R}]`,B[R],"must be writable")}let A=S[0],E=r(S,function(R){let nt=$;$=null,nt?nt(R):R?X.destroy(R):!M&&!w&&X.destroy()}),w=!!(i(A)||c(A)||u(A)),M=!!(s(E)||d(E)||u(E));if(X=new n({writableObjectMode:!(A==null||!A.writableObjectMode),readableObjectMode:!(E==null||!E.writableObjectMode),writable:w,readable:M}),w){if(o(A))X._write=function(nt,st,Z){A.write(nt,st)?Z():U=Z},X._final=function(nt){A.end(),D=nt},A.on("drain",function(){if(U){let nt=U;U=null,nt()}});else if(a(A)){let nt=(u(A)?A.writable:A).getWriter();X._write=async function(st,Z,j){try{await nt.ready,nt.write(st).catch(()=>{}),j()}catch(N){j(N)}},X._final=async function(st){try{await nt.ready,nt.close().catch(()=>{}),D=st}catch(Z){st(Z)}}}let R=u(E)?E.readable:E;_(R,()=>{if(D){let nt=D;D=null,nt()}})}if(M){if(o(E))E.on("readable",function(){if(G){let R=G;G=null,R()}}),E.on("end",function(){X.push(null)}),X._read=function(){for(;;){let R=E.read();if(R===null)return void(G=X._read);if(!X.push(R))return}};else if(a(E)){let R=(u(E)?E.readable:E).getReader();X._read=async function(){for(;;)try{let{value:nt,done:st}=await R.read();if(!X.push(nt))return;if(st)return void X.push(null)}catch{return}}}}return X._destroy=function(R,nt){!R&&$!==null&&(R=new f),G=null,U=null,D=null,$===null?nt(R):($=nt,o(E)&&l(E,R))},X}}),S0=mt((t,e)=>{ht(),pt(),ft();var r=globalThis.AbortController||Cl().AbortController,{codes:{ERR_INVALID_ARG_VALUE:n,ERR_INVALID_ARG_TYPE:l,ERR_MISSING_ARGS:o,ERR_OUT_OF_RANGE:s},AbortError:i}=we(),{validateAbortSignal:a,validateInteger:u,validateObject:c}=Po(),d=Xt().Symbol("kWeak"),{finished:f}=Dr(),g=Ap(),{addAbortSignalNoValidate:b}=Bo(),{isWritable:_,isNodeStream:S}=yr(),{ArrayPrototypePush:U,MathFloor:D,Number:G,NumberIsNaN:$,Promise:X,PromiseReject:B,PromisePrototypeThen:A,Symbol:E}=Xt(),w=E("kEmpty"),M=E("kEof");function R(N,F){if(typeof N!="function")throw new l("fn",["Function","AsyncFunction"],N);F!=null&&c(F,"options"),(F==null?void 0:F.signal)!=null&&a(F.signal,"options.signal");let it=1;return(F==null?void 0:F.concurrency)!=null&&(it=D(F.concurrency)),u(it,"concurrency",1),(async function*(){var J,Y;let k=new r,q=this,et=[],ot=k.signal,at={signal:ot},ut=()=>k.abort();F!=null&&(J=F.signal)!==null&&J!==void 0&&J.aborted&&ut(),F==null||(Y=F.signal)===null||Y===void 0||Y.addEventListener("abort",ut);let dt,H,rt=!1;function tt(){rt=!0}(async function(){try{for await(let C of q){var P;if(rt)return;if(ot.aborted)throw new i;try{C=N(C,at)}catch(Q){C=B(Q)}C!==w&&(typeof((P=C)===null||P===void 0?void 0:P.catch)=="function"&&C.catch(tt),et.push(C),dt&&(dt(),dt=null),!rt&&et.length&&et.length>=it&&await new X(Q=>{H=Q}))}et.push(M)}catch(C){let Q=B(C);A(Q,void 0,tt),et.push(Q)}finally{var W;rt=!0,dt&&(dt(),dt=null),F==null||(W=F.signal)===null||W===void 0||W.removeEventListener("abort",ut)}})();try{for(;;){for(;et.length>0;){let P=await et[0];if(P===M)return;if(ot.aborted)throw new i;P!==w&&(yield P),et.shift(),H&&(H(),H=null)}await new X(P=>{dt=P})}}finally{k.abort(),rt=!0,H&&(H(),H=null)}}).call(this)}async function nt(N,F=void 0){for await(let it of st.call(this,N,F))return!0;return!1}function st(N,F){if(typeof N!="function")throw new l("fn",["Function","AsyncFunction"],N);return R.call(this,async function(it,J){return await N(it,J)?it:w},F)}var Z=class extends o{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}};function j(N){if(N=G(N),$(N))return 0;if(N<0)throw new s("number",">= 0",N);return N}e.exports.streamReturningOperators={asIndexedPairs:function(N=void 0){return N!=null&&c(N,"options"),(N==null?void 0:N.signal)!=null&&a(N.signal,"options.signal"),(async function*(){let F=0;for await(let J of this){var it;if(N!=null&&(it=N.signal)!==null&&it!==void 0&&it.aborted)throw new i({cause:N.signal.reason});yield[F++,J]}}).call(this)},drop:function(N,F=void 0){return F!=null&&c(F,"options"),(F==null?void 0:F.signal)!=null&&a(F.signal,"options.signal"),N=j(N),(async function*(){var it;if(F!=null&&(it=F.signal)!==null&&it!==void 0&&it.aborted)throw new i;for await(let Y of this){var J;if(F!=null&&(J=F.signal)!==null&&J!==void 0&&J.aborted)throw new i;N--<=0&&(yield Y)}}).call(this)},filter:st,flatMap:function(N,F){let it=R.call(this,N,F);return(async function*(){for await(let J of it)yield*J}).call(this)},map:R,take:function(N,F=void 0){return F!=null&&c(F,"options"),(F==null?void 0:F.signal)!=null&&a(F.signal,"options.signal"),N=j(N),(async function*(){var it;if(F!=null&&(it=F.signal)!==null&&it!==void 0&&it.aborted)throw new i;for await(let Y of this){var J;if(F!=null&&(J=F.signal)!==null&&J!==void 0&&J.aborted)throw new i;if(!(N-- >0))return;yield Y}}).call(this)},compose:function(N,F){if(F!=null&&c(F,"options"),(F==null?void 0:F.signal)!=null&&a(F.signal,"options.signal"),S(N)&&!_(N))throw new n("stream",N,"must be writable");let it=g(this,N);return F!=null&&F.signal&&b(F.signal,it),it}},e.exports.promiseReturningOperators={every:async function(N,F=void 0){if(typeof N!="function")throw new l("fn",["Function","AsyncFunction"],N);return!await nt.call(this,async(...it)=>!await N(...it),F)},forEach:async function(N,F){if(typeof N!="function")throw new l("fn",["Function","AsyncFunction"],N);for await(let it of R.call(this,async function(J,Y){return await N(J,Y),w},F));},reduce:async function(N,F,it){var J;if(typeof N!="function")throw new l("reducer",["Function","AsyncFunction"],N);it!=null&&c(it,"options"),(it==null?void 0:it.signal)!=null&&a(it.signal,"options.signal");let Y=arguments.length>1;if(it!=null&&(J=it.signal)!==null&&J!==void 0&&J.aborted){let at=new i(void 0,{cause:it.signal.reason});throw this.once("error",()=>{}),await f(this.destroy(at)),at}let k=new r,q=k.signal;if(it!=null&&it.signal){let at={once:!0,[d]:this};it.signal.addEventListener("abort",()=>k.abort(),at)}let et=!1;try{for await(let at of this){var ot;if(et=!0,it!=null&&(ot=it.signal)!==null&&ot!==void 0&&ot.aborted)throw new i;Y?F=await N(F,at,{signal:q}):(F=at,Y=!0)}if(!et&&!Y)throw new Z}finally{k.abort()}return F},toArray:async function(N){N!=null&&c(N,"options"),(N==null?void 0:N.signal)!=null&&a(N.signal,"options.signal");let F=[];for await(let J of this){var it;if(N!=null&&(it=N.signal)!==null&&it!==void 0&&it.aborted)throw new i(void 0,{cause:N.signal.reason});U(F,J)}return F},some:nt,find:async function(N,F){for await(let it of st.call(this,N,F))return it}}}),kp=mt((t,e)=>{ht(),pt(),ft();var{ArrayPrototypePop:r,Promise:n}=Xt(),{isIterable:l,isNodeStream:o,isWebStream:s}=yr(),{pipelineImpl:i}=Ll(),{finished:a}=Dr();Ip(),e.exports={finished:a,pipeline:function(...u){return new n((c,d)=>{let f,g,b=u[u.length-1];if(b&&typeof b=="object"&&!o(b)&&!l(b)&&!s(b)){let _=r(u);f=_.signal,g=_.end}i(u,(_,S)=>{_?d(_):c(S)},{signal:f,end:g})})}}}),Ip=mt((t,e)=>{ht(),pt(),ft();var{Buffer:r}=(oe(),Dt(ie)),{ObjectDefineProperty:n,ObjectKeys:l,ReflectApply:o}=Xt(),{promisify:{custom:s}}=fr(),{streamReturningOperators:i,promiseReturningOperators:a}=S0(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=we(),c=Ap(),{pipeline:d}=Ll(),{destroyer:f}=jn(),g=Dr(),b=kp(),_=yr(),S=e.exports=Rl().Stream;S.isDisturbed=_.isDisturbed,S.isErrored=_.isErrored,S.isReadable=_.isReadable,S.Readable=Lo();for(let D of l(i)){let G=function(...X){if(new.target)throw u();return S.Readable.from(o($,this,X))},$=i[D];n(G,"name",{__proto__:null,value:$.name}),n(G,"length",{__proto__:null,value:$.length}),n(S.Readable.prototype,D,{__proto__:null,value:G,enumerable:!1,configurable:!0,writable:!0})}for(let D of l(a)){let G=function(...X){if(new.target)throw u();return o($,this,X)},$=a[D];n(G,"name",{__proto__:null,value:$.name}),n(G,"length",{__proto__:null,value:$.length}),n(S.Readable.prototype,D,{__proto__:null,value:G,enumerable:!1,configurable:!0,writable:!0})}S.Writable=_p(),S.Duplex=pr(),S.Transform=Ep(),S.PassThrough=Sp(),S.pipeline=d;var{addAbortSignal:U}=Bo();S.addAbortSignal=U,S.finished=g,S.destroy=f,S.compose=c,n(S,"promises",{__proto__:null,configurable:!0,enumerable:!0,get:()=>b}),n(d,s,{__proto__:null,enumerable:!0,get:()=>b.pipeline}),n(g,s,{__proto__:null,enumerable:!0,get:()=>b.finished}),S.Stream=S,S._isUint8Array=function(D){return D instanceof Uint8Array},S._uint8ArrayToBuffer=function(D){return r.from(D.buffer,D.byteOffset,D.byteLength)}}),gn=mt((t,e)=>{ht(),pt(),ft();var r=Ip(),n=kp(),l=r.Readable.destroy;e.exports=r.Readable,e.exports._uint8ArrayToBuffer=r._uint8ArrayToBuffer,e.exports._isUint8Array=r._isUint8Array,e.exports.isDisturbed=r.isDisturbed,e.exports.isErrored=r.isErrored,e.exports.isReadable=r.isReadable,e.exports.Readable=r.Readable,e.exports.Writable=r.Writable,e.exports.Duplex=r.Duplex,e.exports.Transform=r.Transform,e.exports.PassThrough=r.PassThrough,e.exports.addAbortSignal=r.addAbortSignal,e.exports.finished=r.finished,e.exports.destroy=r.destroy,e.exports.destroy=l,e.exports.pipeline=r.pipeline,e.exports.compose=r.compose,Object.defineProperty(r,"promises",{configurable:!0,enumerable:!0,get:()=>n}),e.exports.Stream=r.Stream,e.exports.default=e.exports}),A0=mt((t,e)=>{ht(),pt(),ft(),typeof Object.create=="function"?e.exports=function(r,n){n&&(r.super_=n,r.prototype=Object.create(n.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(r,n){if(n){r.super_=n;var l=function(){};l.prototype=n.prototype,r.prototype=new l,r.prototype.constructor=r}}}),k0=mt((t,e)=>{ht(),pt(),ft();var{Buffer:r}=(oe(),Dt(ie)),n=Symbol.for("BufferList");function l(o){if(!(this instanceof l))return new l(o);l._init.call(this,o)}l._init=function(o){Object.defineProperty(this,n,{value:!0}),this._bufs=[],this.length=0,o&&this.append(o)},l.prototype._new=function(o){return new l(o)},l.prototype._offset=function(o){if(o===0)return[0,0];let s=0;for(let i=0;ithis.length||o<0)return;let s=this._offset(o);return this._bufs[s[0]][s[1]]},l.prototype.slice=function(o,s){return typeof o=="number"&&o<0&&(o+=this.length),typeof s=="number"&&s<0&&(s+=this.length),this.copy(null,0,o,s)},l.prototype.copy=function(o,s,i,a){if((typeof i!="number"||i<0)&&(i=0),(typeof a!="number"||a>this.length)&&(a=this.length),i>=this.length||a<=0)return o||r.alloc(0);let u=!!o,c=this._offset(i),d=a-i,f=d,g=u&&s||0,b=c[1];if(i===0&&a===this.length){if(!u)return this._bufs.length===1?this._bufs[0]:r.concat(this._bufs,this.length);for(let _=0;_S)){this._bufs[_].copy(o,g,b,b+f),g+=S;break}this._bufs[_].copy(o,g,b),g+=S,f-=S,b&&(b=0)}return o.length>g?o.slice(0,g):o},l.prototype.shallowSlice=function(o,s){if(o=o||0,s=typeof s!="number"?this.length:s,o<0&&(o+=this.length),s<0&&(s+=this.length),o===s)return this._new();let i=this._offset(o),a=this._offset(s),u=this._bufs.slice(i[0],a[0]+1);return a[1]===0?u.pop():u[u.length-1]=u[u.length-1].slice(0,a[1]),i[1]!==0&&(u[0]=u[0].slice(i[1])),this._new(u)},l.prototype.toString=function(o,s,i){return this.slice(s,i).toString(o)},l.prototype.consume=function(o){if(o=Math.trunc(o),Number.isNaN(o)||o<=0)return this;for(;this._bufs.length;){if(!(o>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(o),this.length-=o;break}o-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},l.prototype.duplicate=function(){let o=this._new();for(let s=0;sthis.length?this.length:s;let a=this._offset(s),u=a[0],c=a[1];for(;u=o.length){let f=d.indexOf(o,c);if(f!==-1)return this._reverseOffset([u,f]);c=d.length-o.length+1}else{let f=this._reverseOffset([u,c]);if(this._match(f,o))return f;c++}c=0}return-1},l.prototype._match=function(o,s){if(this.length-o{ht(),pt(),ft();var r=gn().Duplex,n=A0(),l=k0();function o(s){if(!(this instanceof o))return new o(s);if(typeof s=="function"){this._callback=s;let i=(function(a){this._callback&&(this._callback(a),this._callback=null)}).bind(this);this.on("pipe",function(a){a.on("error",i)}),this.on("unpipe",function(a){a.removeListener("error",i)}),s=null}l._init.call(this,s),r.call(this)}n(o,r),Object.assign(o.prototype,l.prototype),o.prototype._new=function(s){return new o(s)},o.prototype._write=function(s,i,a){this._appendBuffer(s),typeof a=="function"&&a()},o.prototype._read=function(s){if(!this.length)return this.push(null);s=Math.min(s,this.length),this.push(this.slice(0,s)),this.consume(s)},o.prototype.end=function(s){r.prototype.end.call(this,s),this._callback&&(this._callback(null,this.slice()),this._callback=null)},o.prototype._destroy=function(s,i){this._bufs.length=0,this.length=0,i(s)},o.prototype._isBufferList=function(s){return s instanceof o||s instanceof l||o.isBufferList(s)},o.isBufferList=l.isBufferList,e.exports=o,e.exports.BufferListStream=o,e.exports.BufferList=l}),T0=mt((t,e)=>{ht(),pt(),ft(),e.exports=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}}}),Tp=mt((t,e)=>{ht(),pt(),ft();var r=e.exports,{Buffer:n}=(oe(),Dt(ie));r.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},r.requiredHeaderFlags={1:0,2:0,4:0,5:0,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:0,14:0,15:0},r.requiredHeaderFlagsErrors={};for(let o in r.requiredHeaderFlags){let s=r.requiredHeaderFlags[o];r.requiredHeaderFlagsErrors[o]="Invalid header flag bits, must be 0x"+s.toString(16)+" for "+r.types[o]+" packet"}r.codes={};for(let o in r.types){let s=r.types[o];r.codes[s]=o}r.CMD_SHIFT=4,r.CMD_MASK=240,r.DUP_MASK=8,r.QOS_MASK=3,r.QOS_SHIFT=1,r.RETAIN_MASK=1,r.VARBYTEINT_MASK=127,r.VARBYTEINT_FIN_MASK=128,r.VARBYTEINT_MAX=268435455,r.SESSIONPRESENT_MASK=1,r.SESSIONPRESENT_HEADER=n.from([r.SESSIONPRESENT_MASK]),r.CONNACK_HEADER=n.from([r.codes.connack<[0,1].map(i=>[0,1].map(a=>{let u=n.alloc(1);return u.writeUInt8(r.codes[o]<n.from([o])),r.EMPTY={pingreq:n.from([r.codes.pingreq<<4,0]),pingresp:n.from([r.codes.pingresp<<4,0]),disconnect:n.from([r.codes.disconnect<<4,0])},r.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},r.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},r.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},r.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},r.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},r.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}),O0=mt((t,e)=>{ht(),pt(),ft();var r=1e3,n=6e4,l=60*n,o=24*l,s=7*o,i=365.25*o;function a(u,c,d,f){var g=c>=1.5*d;return Math.round(u/d)+" "+f+(g?"s":"")}e.exports=function(u,c){c=c||{};var d=typeof u;if(d==="string"&&u.length>0)return function(f){if(f=String(f),!(f.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(f);if(g){var b=parseFloat(g[1]);switch((g[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return b*i;case"weeks":case"week":case"w":return b*s;case"days":case"day":case"d":return b*o;case"hours":case"hour":case"hrs":case"hr":case"h":return b*l;case"minutes":case"minute":case"mins":case"min":case"m":return b*n;case"seconds":case"second":case"secs":case"sec":case"s":return b*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return b;default:return}}}}(u);if(d==="number"&&isFinite(u))return c.long?function(f){var g=Math.abs(f);return g>=o?a(f,g,o,"day"):g>=l?a(f,g,l,"hour"):g>=n?a(f,g,n,"minute"):g>=r?a(f,g,r,"second"):f+" ms"}(u):function(f){var g=Math.abs(f);return g>=o?Math.round(f/o)+"d":g>=l?Math.round(f/l)+"h":g>=n?Math.round(f/n)+"m":g>=r?Math.round(f/r)+"s":f+"ms"}(u);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(u))}}),x0=mt((t,e)=>{ht(),pt(),ft(),e.exports=function(r){function n(s){let i,a,u,c=null;function d(...f){if(!d.enabled)return;let g=d,b=Number(new Date),_=b-(i||b);g.diff=_,g.prev=i,g.curr=b,i=b,f[0]=n.coerce(f[0]),typeof f[0]!="string"&&f.unshift("%O");let S=0;f[0]=f[0].replace(/%([a-zA-Z%])/g,(U,D)=>{if(U==="%%")return"%";S++;let G=n.formatters[D];if(typeof G=="function"){let $=f[S];U=G.call(g,$),f.splice(S,1),S--}return U}),n.formatArgs.call(g,f),(g.log||n.log).apply(g,f)}return d.namespace=s,d.useColors=n.useColors(),d.color=n.selectColor(s),d.extend=l,d.destroy=n.destroy,Object.defineProperty(d,"enabled",{enumerable:!0,configurable:!1,get:()=>c!==null?c:(a!==n.namespaces&&(a=n.namespaces,u=n.enabled(s)),u),set:f=>{c=f}}),typeof n.init=="function"&&n.init(d),d}function l(s,i){let a=n(this.namespace+(typeof i>"u"?":":i)+s);return a.log=this.log,a}function o(s){return s.toString().substring(2,s.toString().length-2).replace(/\.\*\?$/,"*")}return n.debug=n,n.default=n,n.coerce=function(s){return s instanceof Error?s.stack||s.message:s},n.disable=function(){let s=[...n.names.map(o),...n.skips.map(o).map(i=>"-"+i)].join(",");return n.enable(""),s},n.enable=function(s){n.save(s),n.namespaces=s,n.names=[],n.skips=[];let i,a=(typeof s=="string"?s:"").split(/[\s,]+/),u=a.length;for(i=0;i{n[s]=r[s]}),n.names=[],n.skips=[],n.formatters={},n.selectColor=function(s){let i=0;for(let a=0;a{ht(),pt(),ft(),t.formatArgs=function(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;let l="color: "+this.color;n.splice(1,0,l,"color: inherit");let o=0,s=0;n[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(o++,i==="%c"&&(s=o))}),n.splice(s,0,l)},t.save=function(n){try{n?t.storage.setItem("debug",n):t.storage.removeItem("debug")}catch{}},t.load=function(){let n;try{n=t.storage.getItem("debug")}catch{}return!n&&typeof Nt<"u"&&"env"in Nt&&(n=Nt.env.DEBUG),n},t.useColors=function(){return!(!(typeof window<"u"&&window.process)||window.process.type!=="renderer"&&!window.process.__nwjs)||!(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&(typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch{}}(),t.destroy=(()=>{let n=!1;return()=>{n||(n=!0)}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=x0()(t);var{formatters:r}=e.exports;r.j=function(n){try{return JSON.stringify(n)}catch(l){return"[UnexpectedJSONParseError]: "+l.message}}}),C0=mt((t,e)=>{ht(),pt(),ft();var r=I0(),{EventEmitter:n}=(Un(),Dt(dn)),l=T0(),o=Tp(),s=dr()("mqtt-packet:parser");e.exports=class $a extends n{constructor(){super(),this.parser=this.constructor.parser}static parser(a){return this instanceof $a?(this.settings=a||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new $a().parser(a)}_resetState(){s("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new l,this.error=null,this._list=r(),this._stateCounter=0}parse(a){for(this.error&&this._resetState(),this._list.append(a),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(){let a=this._list.readUInt8(0),u=a>>o.CMD_SHIFT;this.packet.cmd=o.types[u];let c=15&a,d=o.requiredHeaderFlags[u];return d!=null&&c!==d?this._emitError(new Error(o.requiredHeaderFlagsErrors[u])):(this.packet.retain=!!(a&o.RETAIN_MASK),this.packet.qos=a>>o.QOS_SHIFT&o.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=!!(a&o.DUP_MASK),s("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){let a=this._parseVarByteNum(!0);return a&&(this.packet.length=a.value,this._list.consume(a.bytes)),s("_parseLength %d",a.value),!!a}_parsePayload(){s("_parsePayload: payload %O",this._list);let a=!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"))}a=!0}return s("_parsePayload complete result: %s",a),a}_parseConnect(){s("_parseConnect");let a,u,c,d,f={},g=this.packet,b=this._parseString();if(b===null)return this._emitError(new Error("Cannot parse protocolId"));if(b!=="MQTT"&&b!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(g.protocolId=b,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(g.protocolVersion=this._list.readUInt8(this._pos),g.protocolVersion>=128&&(g.bridgeMode=!0,g.protocolVersion=g.protocolVersion-128),g.protocolVersion!==3&&g.protocolVersion!==4&&g.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(1&this._list.readUInt8(this._pos))return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));f.username=this._list.readUInt8(this._pos)&o.USERNAME_MASK,f.password=this._list.readUInt8(this._pos)&o.PASSWORD_MASK,f.will=this._list.readUInt8(this._pos)&o.WILL_FLAG_MASK;let _=!!(this._list.readUInt8(this._pos)&o.WILL_RETAIN_MASK),S=(this._list.readUInt8(this._pos)&o.WILL_QOS_MASK)>>o.WILL_QOS_SHIFT;if(f.will)g.will={},g.will.retain=_,g.will.qos=S;else{if(_)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(S)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(g.clean=!!(this._list.readUInt8(this._pos)&o.CLEAN_SESSION_MASK),this._pos++,g.keepalive=this._parseNum(),g.keepalive===-1)return this._emitError(new Error("Packet too short"));if(g.protocolVersion===5){let D=this._parseProperties();Object.getOwnPropertyNames(D).length&&(g.properties=D)}let U=this._parseString();if(U===null)return this._emitError(new Error("Packet too short"));if(g.clientId=U,s("_parseConnect: packet.clientId: %s",g.clientId),f.will){if(g.protocolVersion===5){let D=this._parseProperties();Object.getOwnPropertyNames(D).length&&(g.will.properties=D)}if(a=this._parseString(),a===null)return this._emitError(new Error("Cannot parse will topic"));if(g.will.topic=a,s("_parseConnect: packet.will.topic: %s",g.will.topic),u=this._parseBuffer(),u===null)return this._emitError(new Error("Cannot parse will payload"));g.will.payload=u,s("_parseConnect: packet.will.paylaod: %s",g.will.payload)}if(f.username){if(d=this._parseString(),d===null)return this._emitError(new Error("Cannot parse username"));g.username=d,s("_parseConnect: packet.username: %s",g.username)}if(f.password){if(c=this._parseBuffer(),c===null)return this._emitError(new Error("Cannot parse password"));g.password=c}return this.settings=g,s("_parseConnect: complete"),g}_parseConnack(){s("_parseConnack");let a=this.packet;if(this._list.length<1)return null;let u=this._list.readUInt8(this._pos++);if(u>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(a.sessionPresent=!!(u&o.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?a.reasonCode=this._list.readUInt8(this._pos++):a.reasonCode=0;else{if(this._list.length<2)return null;a.returnCode=this._list.readUInt8(this._pos++)}if(a.returnCode===-1||a.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(a.properties=c)}s("_parseConnack: complete")}_parsePublish(){s("_parsePublish");let a=this.packet;if(a.topic=this._parseString(),a.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(a.qos>0)||this._parseMessageId()){if(this.settings.protocolVersion===5){let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}a.payload=this._list.slice(this._pos,a.length),s("_parsePublish: payload from buffer list: %o",a.payload)}}_parseSubscribe(){s("_parseSubscribe");let a,u,c,d,f,g,b,_=this.packet;if(_.subscriptions=[],this._parseMessageId()){if(this.settings.protocolVersion===5){let S=this._parseProperties();Object.getOwnPropertyNames(S).length&&(_.properties=S)}if(_.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos<_.length;){if(a=this._parseString(),a===null)return this._emitError(new Error("Cannot parse topic"));if(this._pos>=_.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(u=this._parseByte(),this.settings.protocolVersion===5){if(192&u)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(252&u)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(c=u&o.SUBSCRIBE_OPTIONS_QOS_MASK,c>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(g=!!(u>>o.SUBSCRIBE_OPTIONS_NL_SHIFT&o.SUBSCRIBE_OPTIONS_NL_MASK),f=!!(u>>o.SUBSCRIBE_OPTIONS_RAP_SHIFT&o.SUBSCRIBE_OPTIONS_RAP_MASK),d=u>>o.SUBSCRIBE_OPTIONS_RH_SHIFT&o.SUBSCRIBE_OPTIONS_RH_MASK,d>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));b={topic:a,qos:c},this.settings.protocolVersion===5?(b.nl=g,b.rap=f,b.rh=d):this.settings.bridgeMode&&(b.rh=0,b.rap=!0,b.nl=!0),s("_parseSubscribe: push subscription `%s` to subscription",b),_.subscriptions.push(b)}}}_parseSuback(){s("_parseSuback");let a=this.packet;if(this.packet.granted=[],this._parseMessageId()){if(this.settings.protocolVersion===5){let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}if(a.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&u!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(u)}}}_parseUnsubscribe(){s("_parseUnsubscribe");let a=this.packet;if(a.unsubscriptions=[],this._parseMessageId()){if(this.settings.protocolVersion===5){let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}if(a.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(a.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!o.MQTT5_PUBACK_PUBREC_CODES[a.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!o.MQTT5_PUBREL_PUBCOMP_CODES[a.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"))}s("_parseConfirmation: packet.reasonCode `%d`",a.reasonCode)}else a.reasonCode=0;if(a.length>3){let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}}return!0}_parseDisconnect(){let a=this.packet;if(s("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(a.reasonCode=this._parseByte(),o.MQTT5_DISCONNECT_CODES[a.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):a.reasonCode=0;let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}return s("_parseDisconnect result: true"),!0}_parseAuth(){s("_parseAuth");let a=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(a.reasonCode=this._parseByte(),!o.MQTT5_AUTH_CODES[a.reasonCode])return this._emitError(new Error("Invalid auth reason code"));let u=this._parseProperties();return Object.getOwnPropertyNames(u).length&&(a.properties=u),s("_parseAuth: result: true"),!0}_parseMessageId(){let a=this.packet;return a.messageId=this._parseNum(),a.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(s("_parseMessageId: packet.messageId %d",a.messageId),!0)}_parseString(a){let u=this._parseNum(),c=u+this._pos;if(u===-1||c>this._list.length||c>this.packet.length)return null;let d=this._list.toString("utf8",this._pos,c);return this._pos+=u,s("_parseString: result: %s",d),d}_parseStringPair(){return s("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){let a=this._parseNum(),u=a+this._pos;if(a===-1||u>this._list.length||u>this.packet.length)return null;let c=this._list.slice(this._pos,u);return this._pos+=a,s("_parseBuffer: result: %o",c),c}_parseNum(){if(this._list.length-this._pos<2)return-1;let a=this._list.readUInt16BE(this._pos);return this._pos+=2,s("_parseNum: result: %s",a),a}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;let a=this._list.readUInt32BE(this._pos);return this._pos+=4,s("_parse4ByteNum: result: %s",a),a}_parseVarByteNum(a){s("_parseVarByteNum");let u,c=0,d=1,f=0,g=!1,b=this._pos?this._pos:0;for(;c<4&&b+c=c&&this._emitError(new Error("Invalid variable byte integer")),b&&(this._pos+=c),g=!!g&&(a?{bytes:c,value:f}:f),s("_parseVarByteNum: result: %o",g),g}_parseByte(){let a;return this._pos{ht(),pt(),ft();var{Buffer:r}=(oe(),Dt(ie)),n={},l=r.isBuffer(r.from([1,2]).subarray(0,1));function o(s){let i=r.allocUnsafe(2);return i.writeUInt8(s>>8,0),i.writeUInt8(255&s,1),i}e.exports={cache:n,generateCache:function(){for(let s=0;s<65536;s++)n[s]=o(s)},generateNumber:o,genBufVariableByteInt:function(s){let i=0,a=0,u=r.allocUnsafe(4);do i=s%128|0,(s=s/128|0)>0&&(i|=128),u.writeUInt8(i,a++);while(s>0&&a<4);return s>0&&(a=0),l?u.subarray(0,a):u.slice(0,a)},generate4ByteBuffer:function(s){let i=r.allocUnsafe(4);return i.writeUInt32BE(s,0),i}}}),P0=mt((t,e)=>{ht(),pt(),ft(),typeof Nt>"u"||!Nt.version||Nt.version.indexOf("v0.")===0||Nt.version.indexOf("v1.")===0&&Nt.version.indexOf("v1.8.")!==0?e.exports={nextTick:function(r,n,l,o){if(typeof r!="function")throw new TypeError('"callback" argument must be a function');var s,i,a=arguments.length;switch(a){case 0:case 1:return Nt.nextTick(r);case 2:return Nt.nextTick(function(){r.call(null,n)});case 3:return Nt.nextTick(function(){r.call(null,n,l)});case 4:return Nt.nextTick(function(){r.call(null,n,l,o)});default:for(s=new Array(a-1),i=0;i{ht(),pt(),ft();var r=Tp(),{Buffer:n}=(oe(),Dt(ie)),l=n.allocUnsafe(0),o=n.from([0]),s=R0(),i=P0().nextTick,a=dr()("mqtt-packet:writeToStream"),u=s.cache,c=s.generateNumber,d=s.generateCache,f=s.genBufVariableByteInt,g=s.generate4ByteBuffer,b=B,_=!0;function S(j,N,F){switch(a("generate called"),N.cork&&(N.cork(),i(U,N)),_&&(_=!1,d()),a("generate: packet.cmd: %s",j.cmd),j.cmd){case"connect":return function(it,J){let Y=it||{},k=Y.protocolId||"MQTT",q=Y.protocolVersion||4,et=Y.will,ot=Y.clean,at=Y.keepalive||0,ut=Y.clientId||"",dt=Y.username,H=Y.password,rt=Y.properties;ot===void 0&&(ot=!0);let tt,P,W=0;if(typeof k!="string"&&!n.isBuffer(k))return J.destroy(new Error("Invalid protocolId")),!1;if(W+=k.length+2,q!==3&&q!==4&&q!==5)return J.destroy(new Error("Invalid protocol version")),!1;if(W+=1,(typeof ut=="string"||n.isBuffer(ut))&&(ut||q>=4)&&(ut||ot))W+=n.byteLength(ut)+2;else{if(q<4)return J.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(1*ot==0)return J.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof at!="number"||at<0||at>65535||at%1!=0)return J.destroy(new Error("Invalid keepalive")),!1;if(W+=2,W+=1,q===5){if(tt=w(J,rt),!tt)return!1;W+=tt.length}if(et){if(typeof et!="object")return J.destroy(new Error("Invalid will")),!1;if(!et.topic||typeof et.topic!="string")return J.destroy(new Error("Invalid will topic")),!1;if(W+=n.byteLength(et.topic)+2,W+=2,et.payload){if(!(et.payload.length>=0))return J.destroy(new Error("Invalid will payload")),!1;typeof et.payload=="string"?W+=n.byteLength(et.payload):W+=et.payload.length}if(P={},q===5){if(P=w(J,et.properties),!P)return!1;W+=P.length}}let C=!1;if(dt!=null){if(!Z(dt))return J.destroy(new Error("Invalid username")),!1;C=!0,W+=n.byteLength(dt)+2}if(H!=null){if(!C)return J.destroy(new Error("Username is required to use password")),!1;if(!Z(H))return J.destroy(new Error("Invalid password")),!1;W+=st(H)+2}J.write(r.CONNECT_HEADER),G(J,W),E(J,k),Y.bridgeMode&&(q+=128),J.write(q===131?r.VERSION131:q===132?r.VERSION132:q===4?r.VERSION4:q===5?r.VERSION5:r.VERSION3);let Q=0;return Q|=dt!=null?r.USERNAME_MASK:0,Q|=H!=null?r.PASSWORD_MASK:0,Q|=et&&et.retain?r.WILL_RETAIN_MASK:0,Q|=et&&et.qos?et.qos<0&&b(J,dt),tt==null||tt.write(),a("publish: payload: %o",ut),J.write(ut)}(j,N,F);case"puback":case"pubrec":case"pubrel":case"pubcomp":return function(it,J,Y){let k=Y?Y.protocolVersion:4,q=it||{},et=q.cmd||"puback",ot=q.messageId,at=q.dup&&et==="pubrel"?r.DUP_MASK:0,ut=0,dt=q.reasonCode,H=q.properties,rt=k===5?3:2;if(et==="pubrel"&&(ut=1),typeof ot!="number")return J.destroy(new Error("Invalid messageId")),!1;let tt=null;if(k===5&&typeof H=="object"){if(tt=M(J,H,Y,rt),!tt)return!1;rt+=tt.length}return J.write(r.ACKS[et][ut][at][0]),rt===3&&(rt+=dt!==0?1:-1),G(J,rt),b(J,ot),k===5&&rt!==2&&J.write(n.from([dt])),tt!==null?tt.write():rt===4&&J.write(n.from([0])),!0}(j,N,F);case"subscribe":return function(it,J,Y){a("subscribe: packet: ");let k=Y?Y.protocolVersion:4,q=it||{},et=q.dup?r.DUP_MASK:0,ot=q.messageId,at=q.subscriptions,ut=q.properties,dt=0;if(typeof ot!="number")return J.destroy(new Error("Invalid messageId")),!1;dt+=2;let H=null;if(k===5){if(H=w(J,ut),!H)return!1;dt+=H.length}if(typeof at!="object"||!at.length)return J.destroy(new Error("Invalid subscriptions")),!1;for(let tt=0;tt2)return J.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}dt+=n.byteLength(P)+2+1}a("subscribe: writing to stream: %o",r.SUBSCRIBE_HEADER),J.write(r.SUBSCRIBE_HEADER[1][et?1:0][0]),G(J,dt),b(J,ot),H!==null&&H.write();let rt=!0;for(let tt of at){let P,W=tt.topic,C=tt.qos,Q=+tt.nl,h=+tt.rap,p=tt.rh;$(J,W),P=r.SUBSCRIBE_OPTIONS_QOS[C],k===5&&(P|=Q?r.SUBSCRIBE_OPTIONS_NL:0,P|=h?r.SUBSCRIBE_OPTIONS_RAP:0,P|=p?r.SUBSCRIBE_OPTIONS_RH[p]:0),rt=J.write(n.from([P]))}return rt}(j,N,F);case"suback":return function(it,J,Y){let k=Y?Y.protocolVersion:4,q=it||{},et=q.messageId,ot=q.granted,at=q.properties,ut=0;if(typeof et!="number")return J.destroy(new Error("Invalid messageId")),!1;if(ut+=2,typeof ot!="object"||!ot.length)return J.destroy(new Error("Invalid qos vector")),!1;for(let H=0;Hb===B,set(j){j?((!u||Object.keys(u).length===0)&&(_=!0),b=B):(_=!1,b=A)}});var D={};function G(j,N){if(N>r.VARBYTEINT_MAX)return j.destroy(new Error(`Invalid variable byte integer: ${N}`)),!1;let F=D[N];return F||(F=f(N),N<16384&&(D[N]=F)),a("writeVarByteInt: writing to stream: %o",F),j.write(F)}function $(j,N){let F=n.byteLength(N);return b(j,F),a("writeString: %s",N),j.write(N,"utf8")}function X(j,N,F){$(j,N),$(j,F)}function B(j,N){return a("writeNumberCached: number: %d",N),a("writeNumberCached: %o",u[N]),j.write(u[N])}function A(j,N){let F=c(N);return a("writeNumberGenerated: %o",F),j.write(F)}function E(j,N){typeof N=="string"?$(j,N):N?(b(j,N.length),j.write(N)):b(j,0)}function w(j,N){if(typeof N!="object"||N.length!=null)return{length:1,write(){nt(j,{},0)}};let F=0;function it(J,Y){let k=0;switch(r.propertiesTypes[J]){case"byte":if(typeof Y!="boolean")return j.destroy(new Error(`Invalid ${J}: ${Y}`)),!1;k+=2;break;case"int8":if(typeof Y!="number"||Y<0||Y>255)return j.destroy(new Error(`Invalid ${J}: ${Y}`)),!1;k+=2;break;case"binary":if(Y&&Y===null)return j.destroy(new Error(`Invalid ${J}: ${Y}`)),!1;k+=1+n.byteLength(Y)+2;break;case"int16":if(typeof Y!="number"||Y<0||Y>65535)return j.destroy(new Error(`Invalid ${J}: ${Y}`)),!1;k+=3;break;case"int32":if(typeof Y!="number"||Y<0||Y>4294967295)return j.destroy(new Error(`Invalid ${J}: ${Y}`)),!1;k+=5;break;case"var":if(typeof Y!="number"||Y<0||Y>268435455)return j.destroy(new Error(`Invalid ${J}: ${Y}`)),!1;k+=1+n.byteLength(f(Y));break;case"string":if(typeof Y!="string")return j.destroy(new Error(`Invalid ${J}: ${Y}`)),!1;k+=3+n.byteLength(Y.toString());break;case"pair":if(typeof Y!="object")return j.destroy(new Error(`Invalid ${J}: ${Y}`)),!1;k+=Object.getOwnPropertyNames(Y).reduce((q,et)=>{let ot=Y[et];return Array.isArray(ot)?q+=ot.reduce((at,ut)=>at+=3+n.byteLength(et.toString())+2+n.byteLength(ut.toString()),0):q+=3+n.byteLength(et.toString())+2+n.byteLength(Y[et].toString()),q},0);break;default:return j.destroy(new Error(`Invalid property ${J}: ${Y}`)),!1}return k}if(N)for(let J in N){let Y=0,k=0,q=N[J];if(Array.isArray(q))for(let et=0;etY;){let q=J.shift();if(!q||!N[q])return!1;delete N[q],k=w(j,N)}return k}function R(j,N,F){switch(r.propertiesTypes[N]){case"byte":j.write(n.from([r.properties[N]])),j.write(n.from([+F]));break;case"int8":j.write(n.from([r.properties[N]])),j.write(n.from([F]));break;case"binary":j.write(n.from([r.properties[N]])),E(j,F);break;case"int16":j.write(n.from([r.properties[N]])),b(j,F);break;case"int32":j.write(n.from([r.properties[N]])),function(it,J){let Y=g(J);a("write4ByteNumber: %o",Y),it.write(Y)}(j,F);break;case"var":j.write(n.from([r.properties[N]])),G(j,F);break;case"string":j.write(n.from([r.properties[N]])),$(j,F);break;case"pair":Object.getOwnPropertyNames(F).forEach(it=>{let J=F[it];Array.isArray(J)?J.forEach(Y=>{j.write(n.from([r.properties[N]])),X(j,it.toString(),Y.toString())}):(j.write(n.from([r.properties[N]])),X(j,it.toString(),J.toString()))});break;default:return j.destroy(new Error(`Invalid property ${N} value: ${F}`)),!1}}function nt(j,N,F){G(j,F);for(let it in N)if(Object.prototype.hasOwnProperty.call(N,it)&&N[it]!==null){let J=N[it];if(Array.isArray(J))for(let Y=0;Y{ht(),pt(),ft();var r=Op(),{EventEmitter:n}=(Un(),Dt(dn)),{Buffer:l}=(oe(),Dt(ie)),o=class extends n{constructor(){super(),this._array=new Array(20),this._i=0}write(s){return this._array[this._i++]=s,!0}concat(){let s,i=0,a=new Array(this._array.length),u=this._array,c=0;for(s=0;s{ht(),pt(),ft(),t.parser=C0().parser,t.generate=B0(),t.writeToStream=Op()}),xp=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(){this.nextId=Math.max(1,Math.floor(65535*Math.random()))}allocate(){let e=this.nextId++;return this.nextId===65536&&(this.nextId=1),e}getLastAllocated(){return this.nextId===1?65535:this.nextId-1}register(e){return!0}deallocate(e){}clear(){}}}),L0=mt((t,e)=>{function r(n){return n instanceof ho?ho.from(n):new n.constructor(n.buffer.slice(),n.byteOffset,n.length)}ht(),pt(),ft(),e.exports=function(n){return(n=n||{}).circles?function(o){var s=[],i=[];return o.proto?function u(c){if(typeof c!="object"||c===null)return c;if(c instanceof Date)return new Date(c);if(Array.isArray(c))return a(c,u);if(c instanceof Map)return new Map(a(Array.from(c),u));if(c instanceof Set)return new Set(a(Array.from(c),u));var d={};for(var f in s.push(c),i.push(d),c){var g=c[f];if(typeof g!="object"||g===null)d[f]=g;else if(g instanceof Date)d[f]=new Date(g);else if(g instanceof Map)d[f]=new Map(a(Array.from(g),u));else if(g instanceof Set)d[f]=new Set(a(Array.from(g),u));else if(ArrayBuffer.isView(g))d[f]=r(g);else{var b=s.indexOf(g);d[f]=b!==-1?i[b]:u(g)}}return s.pop(),i.pop(),d}:function u(c){if(typeof c!="object"||c===null)return c;if(c instanceof Date)return new Date(c);if(Array.isArray(c))return a(c,u);if(c instanceof Map)return new Map(a(Array.from(c),u));if(c instanceof Set)return new Set(a(Array.from(c),u));var d={};for(var f in s.push(c),i.push(d),c)if(Object.hasOwnProperty.call(c,f)!==!1){var g=c[f];if(typeof g!="object"||g===null)d[f]=g;else if(g instanceof Date)d[f]=new Date(g);else if(g instanceof Map)d[f]=new Map(a(Array.from(g),u));else if(g instanceof Set)d[f]=new Set(a(Array.from(g),u));else if(ArrayBuffer.isView(g))d[f]=r(g);else{var b=s.indexOf(g);d[f]=b!==-1?i[b]:u(g)}}return s.pop(),i.pop(),d};function a(u,c){for(var d=Object.keys(u),f=new Array(d.length),g=0;g{ht(),pt(),ft(),e.exports=L0()()}),U0=mt(t=>{function e(r){let n=r.split("/");for(let l=0;l{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0});var e=gn(),r={objectMode:!0},n={clean:!0};t.default=class{constructor(l){this.options=l||{},this.options=Object.assign(Object.assign({},n),l),this._inflights=new Map}put(l,o){return this._inflights.set(l.messageId,l),o&&o(),this}createStream(){let l=new e.Readable(r),o=[],s=!1,i=0;return this._inflights.forEach((a,u)=>{o.push(a)}),l._read=()=>{!s&&i{if(!s)return s=!0,setTimeout(()=>{l.emit("close")},0),l},l}del(l,o){let s=this._inflights.get(l.messageId);return s?(this._inflights.delete(l.messageId),o(null,s)):o&&o(new Error("missing packet")),this}get(l,o){let s=this._inflights.get(l.messageId);return s?o(null,s):o&&o(new Error("missing packet")),this}close(l){this.options.clean&&(this._inflights=null),l&&l()}}}),N0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0});var e=[0,16,128,131,135,144,145,151,153];t.default=(r,n,l)=>{r.log("handlePublish: packet %o",n),l=typeof l<"u"?l:r.noop;let o=n.topic.toString(),s=n.payload,{qos:i}=n,{messageId:a}=n,{options:u}=r;if(r.options.protocolVersion===5){let c;if(n.properties&&(c=n.properties.topicAlias),typeof c<"u")if(o.length===0){if(!(c>0&&c<=65535))return r.log("handlePublish :: topic alias out of range. alias: %d",c),void r.emit("error",new Error("Received Topic Alias is out of range"));{let d=r.topicAliasRecv.getTopicByAlias(c);if(!d)return r.log("handlePublish :: unregistered topic alias. alias: %d",c),void r.emit("error",new Error("Received unregistered Topic Alias"));o=d,r.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",o,c)}}else{if(!r.topicAliasRecv.put(o,c))return r.log("handlePublish :: topic alias out of range. alias: %d",c),void r.emit("error",new Error("Received Topic Alias is out of range"));r.log("handlePublish :: registered topic: %s - alias: %d",o,c)}}switch(r.log("handlePublish: qos %d",i),i){case 2:u.customHandleAcks(o,s,n,(c,d)=>(typeof c=="number"&&(d=c,c=null),c?r.emit("error",c):e.indexOf(d)===-1?r.emit("error",new Error("Wrong reason code for pubrec")):void(d?r._sendPacket({cmd:"pubrec",messageId:a,reasonCode:d},l):r.incomingStore.put(n,()=>{r._sendPacket({cmd:"pubrec",messageId:a},l)}))));break;case 1:u.customHandleAcks(o,s,n,(c,d)=>(typeof c=="number"&&(d=c,c=null),c?r.emit("error",c):e.indexOf(d)===-1?r.emit("error",new Error("Wrong reason code for puback")):(d||r.emit("message",o,s,n),void r.handleMessage(n,f=>{if(f)return l&&l(f);r._sendPacket({cmd:"puback",messageId:a,reasonCode:d},l)}))));break;case 0:r.emit("message",o,s,n),r.handleMessage(n,l);break;default:r.log("handlePublish: unknown QoS. Doing nothing.")}}}),D0=mt((t,e)=>{e.exports={version:"5.10.3"}}),Nn=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0}),t.MQTTJS_VERSION=t.nextTick=t.applyMixin=t.ErrorWithReasonCode=void 0;var e=class Rp extends Error{constructor(n,l){super(n),this.code=l,Object.setPrototypeOf(this,Rp.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}};t.ErrorWithReasonCode=e,t.applyMixin=function(r,n,l=!1){var o;let s=[n];for(;;){let i=s[0],a=Object.getPrototypeOf(i);if(!(a!=null&&a.prototype))break;s.unshift(a)}for(let i of s)for(let a of Object.getOwnPropertyNames(i.prototype))(l||a!=="constructor")&&Object.defineProperty(r.prototype,a,(o=Object.getOwnPropertyDescriptor(i.prototype,a))!==null&&o!==void 0?o:Object.create(null))},t.nextTick=typeof(Nt==null?void 0:Nt.nextTick)=="function"?Nt.nextTick:r=>{setTimeout(r,0)},t.MQTTJS_VERSION=D0().version}),jo=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=void 0;var e=Nn();t.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},t.default=(r,n)=>{let{messageId:l}=n,o=n.cmd,s=null,i=r.outgoing[l]?r.outgoing[l].cb:null,a=null;if(i){switch(r.log("_handleAck :: packet type",o),o){case"pubcomp":case"puback":{let u=n.reasonCode;u&&u>0&&u!==16?(a=new e.ErrorWithReasonCode(`Publish error: ${t.ReasonCodes[u]}`,u),r._removeOutgoingAndStoreMessage(l,()=>{i(a,n)})):r._removeOutgoingAndStoreMessage(l,i);break}case"pubrec":{s={cmd:"pubrel",qos:2,messageId:l};let u=n.reasonCode;u&&u>0&&u!==16?(a=new e.ErrorWithReasonCode(`Publish error: ${t.ReasonCodes[u]}`,u),r._removeOutgoingAndStoreMessage(l,()=>{i(a,n)})):r._sendPacket(s);break}case"suback":{delete r.outgoing[l],r.messageIdProvider.deallocate(l);let u=n.granted;for(let c=0;c{delete r._resubscribeTopics[g]})}}delete r.messageIdToTopic[l],r._invokeStoreProcessingQueue(),i(a,n);break}case"unsuback":delete r.outgoing[l],r.messageIdProvider.deallocate(l),r._invokeStoreProcessingQueue(),i(null,n);break;default:r.emit("error",new Error("unrecognized packet type"))}r.disconnecting&&Object.keys(r.outgoing).length===0&&r.emit("outgoingEmpty")}else r.log("_handleAck :: Server sent an ack in error. Ignoring.")}}),F0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0});var e=Nn(),r=jo();t.default=(n,l)=>{let{options:o}=n,s=o.protocolVersion,i=s===5?l.reasonCode:l.returnCode;if(s===5)n.handleAuth(l,(a,u)=>{if(a)n.emit("error",a);else if(i===24)n.reconnecting=!1,n._sendPacket(u);else{let c=new e.ErrorWithReasonCode(`Connection refused: ${r.ReasonCodes[i]}`,i);n.emit("error",c)}});else{let a=new e.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${s}`,i);n.emit("error",a)}}}),W0=mt(t=>{var f,g,b,_,S,U,D,G,$,X,B,A,E,w,M,R,nt,st,Z,j,N,F,it,J,Y,k,Va,et,ot,at,ut,Pp,H,rt,tt,kr,Ir,qa,Ji,Xi,$t,Ha,Qn,x;ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0}),t.LRUCache=void 0;var e=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,r=new Set,n=typeof Nt=="object"&&Nt?Nt:{},l=(I,m,y,T)=>{typeof n.emitWarning=="function"&&n.emitWarning(I,m,y,T)},o=globalThis.AbortController,s=globalThis.AbortSignal;if(typeof o>"u"){s=class{constructor(){Ht(this,"onabort");Ht(this,"_onabort",[]);Ht(this,"reason");Ht(this,"aborted",!1)}addEventListener(y,T){this._onabort.push(T)}},o=class{constructor(){Ht(this,"signal",new s);m()}abort(y){var T,L;if(!this.signal.aborted){this.signal.reason=y,this.signal.aborted=!0;for(let z of this.signal._onabort)z(y);(L=(T=this.signal).onabort)==null||L.call(T,y)}}};let I=((f=n.env)==null?void 0:f.LRU_CACHE_IGNORE_AC_WARNING)!=="1",m=()=>{I&&(I=!1,l("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",m))}}var i=I=>I&&I===Math.floor(I)&&I>0&&isFinite(I),a=I=>i(I)?I<=Math.pow(2,8)?Uint8Array:I<=Math.pow(2,16)?Uint16Array:I<=Math.pow(2,32)?Uint32Array:I<=Number.MAX_SAFE_INTEGER?u:null:null,u=class extends Array{constructor(I){super(I),this.fill(0)}},c=(g=class{constructor(m,y){Ht(this,"heap");Ht(this,"length");if(!K(g,b))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new y(m),this.length=0}static create(m){let y=a(m);if(!y)return[];St(g,b,!0);let T=new g(m,y);return St(g,b,!1),T}push(m){this.heap[this.length++]=m}pop(){return this.heap[--this.length]}},b=new WeakMap,Pt(g,b,!1),g),d=(x=class{constructor(m){Pt(this,k);Pt(this,_);Pt(this,S);Pt(this,U);Pt(this,D);Pt(this,G);Ht(this,"ttl");Ht(this,"ttlResolution");Ht(this,"ttlAutopurge");Ht(this,"updateAgeOnGet");Ht(this,"updateAgeOnHas");Ht(this,"allowStale");Ht(this,"noDisposeOnSet");Ht(this,"noUpdateTTL");Ht(this,"maxEntrySize");Ht(this,"sizeCalculation");Ht(this,"noDeleteOnFetchRejection");Ht(this,"noDeleteOnStaleGet");Ht(this,"allowStaleOnFetchAbort");Ht(this,"allowStaleOnFetchRejection");Ht(this,"ignoreFetchAbort");Pt(this,$);Pt(this,X);Pt(this,B);Pt(this,A);Pt(this,E);Pt(this,w);Pt(this,M);Pt(this,R);Pt(this,nt);Pt(this,st);Pt(this,Z);Pt(this,j);Pt(this,N);Pt(this,F);Pt(this,it);Pt(this,J);Pt(this,Y);Pt(this,et,()=>{});Pt(this,ot,()=>{});Pt(this,at,()=>{});Pt(this,ut,()=>!1);Pt(this,H,m=>{});Pt(this,rt,(m,y,T)=>{});Pt(this,tt,(m,y,T,L)=>{if(T||L)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});let{max:y=0,ttl:T,ttlResolution:L=1,ttlAutopurge:z,updateAgeOnGet:V,updateAgeOnHas:lt,allowStale:ct,dispose:yt,disposeAfter:bt,noDisposeOnSet:wt,noUpdateTTL:Ot,maxSize:xt=0,maxEntrySize:_t=0,sizeCalculation:Tt,fetchMethod:kt,noDeleteOnFetchRejection:vt,noDeleteOnStaleGet:Ct,allowStaleOnFetchRejection:re,allowStaleOnFetchAbort:Yt,ignoreFetchAbort:se}=m;if(y!==0&&!i(y))throw new TypeError("max option must be a nonnegative integer");let Je=y?a(y):Array;if(!Je)throw new Error("invalid max value: "+y);if(St(this,_,y),St(this,S,xt),this.maxEntrySize=_t||K(this,S),this.sizeCalculation=Tt,this.sizeCalculation){if(!K(this,S)&&!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(kt!==void 0&&typeof kt!="function")throw new TypeError("fetchMethod must be a function if specified");if(St(this,G,kt),St(this,J,!!kt),St(this,B,new Map),St(this,A,new Array(y).fill(void 0)),St(this,E,new Array(y).fill(void 0)),St(this,w,new Je(y)),St(this,M,new Je(y)),St(this,R,0),St(this,nt,0),St(this,st,c.create(y)),St(this,$,0),St(this,X,0),typeof yt=="function"&&St(this,U,yt),typeof bt=="function"?(St(this,D,bt),St(this,Z,[])):(St(this,D,void 0),St(this,Z,void 0)),St(this,it,!!K(this,U)),St(this,Y,!!K(this,D)),this.noDisposeOnSet=!!wt,this.noUpdateTTL=!!Ot,this.noDeleteOnFetchRejection=!!vt,this.allowStaleOnFetchRejection=!!re,this.allowStaleOnFetchAbort=!!Yt,this.ignoreFetchAbort=!!se,this.maxEntrySize!==0){if(K(this,S)!==0&&!i(K(this,S)))throw new TypeError("maxSize must be a positive integer if specified");if(!i(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Et(this,k,Pp).call(this)}if(this.allowStale=!!ct,this.noDeleteOnStaleGet=!!Ct,this.updateAgeOnGet=!!V,this.updateAgeOnHas=!!lt,this.ttlResolution=i(L)||L===0?L:1,this.ttlAutopurge=!!z,this.ttl=T||0,this.ttl){if(!i(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Et(this,k,Va).call(this)}if(K(this,_)===0&&this.ttl===0&&K(this,S)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!K(this,_)&&!K(this,S)){let _e="LRU_CACHE_UNBOUNDED";(ki=>!r.has(ki))(_e)&&(r.add(_e),l("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",_e,x))}}static unsafeExposeInternals(m){return{starts:K(m,N),ttls:K(m,F),sizes:K(m,j),keyMap:K(m,B),keyList:K(m,A),valList:K(m,E),next:K(m,w),prev:K(m,M),get head(){return K(m,R)},get tail(){return K(m,nt)},free:K(m,st),isBackgroundFetch:y=>{var T;return Et(T=m,k,$t).call(T,y)},backgroundFetch:(y,T,L,z)=>{var V;return Et(V=m,k,Xi).call(V,y,T,L,z)},moveToTail:y=>{var T;return Et(T=m,k,Qn).call(T,y)},indexes:y=>{var T;return Et(T=m,k,kr).call(T,y)},rindexes:y=>{var T;return Et(T=m,k,Ir).call(T,y)},isStale:y=>{var T;return K(T=m,ut).call(T,y)}}}get max(){return K(this,_)}get maxSize(){return K(this,S)}get calculatedSize(){return K(this,X)}get size(){return K(this,$)}get fetchMethod(){return K(this,G)}get dispose(){return K(this,U)}get disposeAfter(){return K(this,D)}getRemainingTTL(m){return K(this,B).has(m)?1/0:0}*entries(){for(let m of Et(this,k,kr).call(this))K(this,E)[m]!==void 0&&K(this,A)[m]!==void 0&&!Et(this,k,$t).call(this,K(this,E)[m])&&(yield[K(this,A)[m],K(this,E)[m]])}*rentries(){for(let m of Et(this,k,Ir).call(this))K(this,E)[m]!==void 0&&K(this,A)[m]!==void 0&&!Et(this,k,$t).call(this,K(this,E)[m])&&(yield[K(this,A)[m],K(this,E)[m]])}*keys(){for(let m of Et(this,k,kr).call(this)){let y=K(this,A)[m];y!==void 0&&!Et(this,k,$t).call(this,K(this,E)[m])&&(yield y)}}*rkeys(){for(let m of Et(this,k,Ir).call(this)){let y=K(this,A)[m];y!==void 0&&!Et(this,k,$t).call(this,K(this,E)[m])&&(yield y)}}*values(){for(let m of Et(this,k,kr).call(this))K(this,E)[m]!==void 0&&!Et(this,k,$t).call(this,K(this,E)[m])&&(yield K(this,E)[m])}*rvalues(){for(let m of Et(this,k,Ir).call(this))K(this,E)[m]!==void 0&&!Et(this,k,$t).call(this,K(this,E)[m])&&(yield K(this,E)[m])}[Symbol.iterator](){return this.entries()}find(m,y={}){for(let T of Et(this,k,kr).call(this)){let L=K(this,E)[T],z=Et(this,k,$t).call(this,L)?L.__staleWhileFetching:L;if(z!==void 0&&m(z,K(this,A)[T],this))return this.get(K(this,A)[T],y)}}forEach(m,y=this){for(let T of Et(this,k,kr).call(this)){let L=K(this,E)[T],z=Et(this,k,$t).call(this,L)?L.__staleWhileFetching:L;z!==void 0&&m.call(y,z,K(this,A)[T],this)}}rforEach(m,y=this){for(let T of Et(this,k,Ir).call(this)){let L=K(this,E)[T],z=Et(this,k,$t).call(this,L)?L.__staleWhileFetching:L;z!==void 0&&m.call(y,z,K(this,A)[T],this)}}purgeStale(){let m=!1;for(let y of Et(this,k,Ir).call(this,{allowStale:!0}))K(this,ut).call(this,y)&&(this.delete(K(this,A)[y]),m=!0);return m}dump(){let m=[];for(let y of Et(this,k,kr).call(this,{allowStale:!0})){let T=K(this,A)[y],L=K(this,E)[y],z=Et(this,k,$t).call(this,L)?L.__staleWhileFetching:L;if(z===void 0||T===void 0)continue;let V={value:z};if(K(this,F)&&K(this,N)){V.ttl=K(this,F)[y];let lt=e.now()-K(this,N)[y];V.start=Math.floor(Date.now()-lt)}K(this,j)&&(V.size=K(this,j)[y]),m.unshift([T,V])}return m}load(m){this.clear();for(let[y,T]of m){if(T.start){let L=Date.now()-T.start;T.start=e.now()-L}this.set(y,T.value,T)}}set(m,y,T={}){var Ot,xt,_t,Tt,kt;if(y===void 0)return this.delete(m),this;let{ttl:L=this.ttl,start:z,noDisposeOnSet:V=this.noDisposeOnSet,sizeCalculation:lt=this.sizeCalculation,status:ct}=T,{noUpdateTTL:yt=this.noUpdateTTL}=T,bt=K(this,tt).call(this,m,y,T.size||0,lt);if(this.maxEntrySize&&bt>this.maxEntrySize)return ct&&(ct.set="miss",ct.maxEntrySizeExceeded=!0),this.delete(m),this;let wt=K(this,$)===0?void 0:K(this,B).get(m);if(wt===void 0)wt=K(this,$)===0?K(this,nt):K(this,st).length!==0?K(this,st).pop():K(this,$)===K(this,_)?Et(this,k,Ji).call(this,!1):K(this,$),K(this,A)[wt]=m,K(this,E)[wt]=y,K(this,B).set(m,wt),K(this,w)[K(this,nt)]=wt,K(this,M)[wt]=K(this,nt),St(this,nt,wt),Ii(this,$)._++,K(this,rt).call(this,wt,bt,ct),ct&&(ct.set="add"),yt=!1;else{Et(this,k,Qn).call(this,wt);let vt=K(this,E)[wt];if(y!==vt){if(K(this,J)&&Et(this,k,$t).call(this,vt)){vt.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:Ct}=vt;Ct!==void 0&&!V&&(K(this,it)&&((Ot=K(this,U))==null||Ot.call(this,Ct,m,"set")),K(this,Y)&&((xt=K(this,Z))==null||xt.push([Ct,m,"set"])))}else V||(K(this,it)&&((_t=K(this,U))==null||_t.call(this,vt,m,"set")),K(this,Y)&&((Tt=K(this,Z))==null||Tt.push([vt,m,"set"])));if(K(this,H).call(this,wt),K(this,rt).call(this,wt,bt,ct),K(this,E)[wt]=y,ct){ct.set="replace";let Ct=vt&&Et(this,k,$t).call(this,vt)?vt.__staleWhileFetching:vt;Ct!==void 0&&(ct.oldValue=Ct)}}else ct&&(ct.set="update")}if(L!==0&&!K(this,F)&&Et(this,k,Va).call(this),K(this,F)&&(yt||K(this,at).call(this,wt,L,z),ct&&K(this,ot).call(this,ct,wt)),!V&&K(this,Y)&&K(this,Z)){let vt,Ct=K(this,Z);for(;vt=Ct==null?void 0:Ct.shift();)(kt=K(this,D))==null||kt.call(this,...vt)}return this}pop(){var m;try{for(;K(this,$);){let y=K(this,E)[K(this,R)];if(Et(this,k,Ji).call(this,!0),Et(this,k,$t).call(this,y)){if(y.__staleWhileFetching)return y.__staleWhileFetching}else if(y!==void 0)return y}}finally{if(K(this,Y)&&K(this,Z)){let y,T=K(this,Z);for(;y=T==null?void 0:T.shift();)(m=K(this,D))==null||m.call(this,...y)}}}has(m,y={}){let{updateAgeOnHas:T=this.updateAgeOnHas,status:L}=y,z=K(this,B).get(m);if(z!==void 0){let V=K(this,E)[z];if(Et(this,k,$t).call(this,V)&&V.__staleWhileFetching===void 0)return!1;if(!K(this,ut).call(this,z))return T&&K(this,et).call(this,z),L&&(L.has="hit",K(this,ot).call(this,L,z)),!0;L&&(L.has="stale",K(this,ot).call(this,L,z))}else L&&(L.has="miss");return!1}peek(m,y={}){let{allowStale:T=this.allowStale}=y,L=K(this,B).get(m);if(L!==void 0&&(T||!K(this,ut).call(this,L))){let z=K(this,E)[L];return Et(this,k,$t).call(this,z)?z.__staleWhileFetching:z}}async fetch(m,y={}){let{allowStale:T=this.allowStale,updateAgeOnGet:L=this.updateAgeOnGet,noDeleteOnStaleGet:z=this.noDeleteOnStaleGet,ttl:V=this.ttl,noDisposeOnSet:lt=this.noDisposeOnSet,size:ct=0,sizeCalculation:yt=this.sizeCalculation,noUpdateTTL:bt=this.noUpdateTTL,noDeleteOnFetchRejection:wt=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:Ot=this.allowStaleOnFetchRejection,ignoreFetchAbort:xt=this.ignoreFetchAbort,allowStaleOnFetchAbort:_t=this.allowStaleOnFetchAbort,context:Tt,forceRefresh:kt=!1,status:vt,signal:Ct}=y;if(!K(this,J))return vt&&(vt.fetch="get"),this.get(m,{allowStale:T,updateAgeOnGet:L,noDeleteOnStaleGet:z,status:vt});let re={allowStale:T,updateAgeOnGet:L,noDeleteOnStaleGet:z,ttl:V,noDisposeOnSet:lt,size:ct,sizeCalculation:yt,noUpdateTTL:bt,noDeleteOnFetchRejection:wt,allowStaleOnFetchRejection:Ot,allowStaleOnFetchAbort:_t,ignoreFetchAbort:xt,status:vt,signal:Ct},Yt=K(this,B).get(m);if(Yt===void 0){vt&&(vt.fetch="miss");let se=Et(this,k,Xi).call(this,m,Yt,re,Tt);return se.__returned=se}{let se=K(this,E)[Yt];if(Et(this,k,$t).call(this,se)){let ql=T&&se.__staleWhileFetching!==void 0;return vt&&(vt.fetch="inflight",ql&&(vt.returnedStale=!0)),ql?se.__staleWhileFetching:se.__returned=se}let Je=K(this,ut).call(this,Yt);if(!kt&&!Je)return vt&&(vt.fetch="hit"),Et(this,k,Qn).call(this,Yt),L&&K(this,et).call(this,Yt),vt&&K(this,ot).call(this,vt,Yt),se;let _e=Et(this,k,Xi).call(this,m,Yt,re,Tt),ki=_e.__staleWhileFetching!==void 0&&T;return vt&&(vt.fetch=Je?"stale":"refresh",ki&&Je&&(vt.returnedStale=!0)),ki?_e.__staleWhileFetching:_e.__returned=_e}}get(m,y={}){let{allowStale:T=this.allowStale,updateAgeOnGet:L=this.updateAgeOnGet,noDeleteOnStaleGet:z=this.noDeleteOnStaleGet,status:V}=y,lt=K(this,B).get(m);if(lt!==void 0){let ct=K(this,E)[lt],yt=Et(this,k,$t).call(this,ct);return V&&K(this,ot).call(this,V,lt),K(this,ut).call(this,lt)?(V&&(V.get="stale"),yt?(V&&T&&ct.__staleWhileFetching!==void 0&&(V.returnedStale=!0),T?ct.__staleWhileFetching:void 0):(z||this.delete(m),V&&T&&(V.returnedStale=!0),T?ct:void 0)):(V&&(V.get="hit"),yt?ct.__staleWhileFetching:(Et(this,k,Qn).call(this,lt),L&&K(this,et).call(this,lt),ct))}V&&(V.get="miss")}delete(m){var T,L,z,V;let y=!1;if(K(this,$)!==0){let lt=K(this,B).get(m);if(lt!==void 0)if(y=!0,K(this,$)===1)this.clear();else{K(this,H).call(this,lt);let ct=K(this,E)[lt];Et(this,k,$t).call(this,ct)?ct.__abortController.abort(new Error("deleted")):(K(this,it)||K(this,Y))&&(K(this,it)&&((T=K(this,U))==null||T.call(this,ct,m,"delete")),K(this,Y)&&((L=K(this,Z))==null||L.push([ct,m,"delete"]))),K(this,B).delete(m),K(this,A)[lt]=void 0,K(this,E)[lt]=void 0,lt===K(this,nt)?St(this,nt,K(this,M)[lt]):lt===K(this,R)?St(this,R,K(this,w)[lt]):(K(this,w)[K(this,M)[lt]]=K(this,w)[lt],K(this,M)[K(this,w)[lt]]=K(this,M)[lt]),Ii(this,$)._--,K(this,st).push(lt)}}if(K(this,Y)&&((z=K(this,Z))!=null&&z.length)){let lt,ct=K(this,Z);for(;lt=ct==null?void 0:ct.shift();)(V=K(this,D))==null||V.call(this,...lt)}return y}clear(){var m,y,T;for(let L of Et(this,k,Ir).call(this,{allowStale:!0})){let z=K(this,E)[L];if(Et(this,k,$t).call(this,z))z.__abortController.abort(new Error("deleted"));else{let V=K(this,A)[L];K(this,it)&&((m=K(this,U))==null||m.call(this,z,V,"delete")),K(this,Y)&&((y=K(this,Z))==null||y.push([z,V,"delete"]))}}if(K(this,B).clear(),K(this,E).fill(void 0),K(this,A).fill(void 0),K(this,F)&&K(this,N)&&(K(this,F).fill(0),K(this,N).fill(0)),K(this,j)&&K(this,j).fill(0),St(this,R,0),St(this,nt,0),K(this,st).length=0,St(this,X,0),St(this,$,0),K(this,Y)&&K(this,Z)){let L,z=K(this,Z);for(;L=z==null?void 0:z.shift();)(T=K(this,D))==null||T.call(this,...L)}}},_=new WeakMap,S=new WeakMap,U=new WeakMap,D=new WeakMap,G=new WeakMap,$=new WeakMap,X=new WeakMap,B=new WeakMap,A=new WeakMap,E=new WeakMap,w=new WeakMap,M=new WeakMap,R=new WeakMap,nt=new WeakMap,st=new WeakMap,Z=new WeakMap,j=new WeakMap,N=new WeakMap,F=new WeakMap,it=new WeakMap,J=new WeakMap,Y=new WeakMap,k=new WeakSet,Va=function(){let m=new u(K(this,_)),y=new u(K(this,_));St(this,F,m),St(this,N,y),St(this,at,(z,V,lt=e.now())=>{if(y[z]=V!==0?lt:0,m[z]=V,V!==0&&this.ttlAutopurge){let ct=setTimeout(()=>{K(this,ut).call(this,z)&&this.delete(K(this,A)[z])},V+1);ct.unref&&ct.unref()}}),St(this,et,z=>{y[z]=m[z]!==0?e.now():0}),St(this,ot,(z,V)=>{if(m[V]){let lt=m[V],ct=y[V];z.ttl=lt,z.start=ct,z.now=T||L();let yt=z.now-ct;z.remainingTTL=lt-yt}});let T=0,L=()=>{let z=e.now();if(this.ttlResolution>0){T=z;let V=setTimeout(()=>T=0,this.ttlResolution);V.unref&&V.unref()}return z};this.getRemainingTTL=z=>{let V=K(this,B).get(z);if(V===void 0)return 0;let lt=m[V],ct=y[V];return lt===0||ct===0?1/0:lt-((T||L())-ct)},St(this,ut,z=>m[z]!==0&&y[z]!==0&&(T||L())-y[z]>m[z])},et=new WeakMap,ot=new WeakMap,at=new WeakMap,ut=new WeakMap,Pp=function(){let m=new u(K(this,_));St(this,X,0),St(this,j,m),St(this,H,y=>{St(this,X,K(this,X)-m[y]),m[y]=0}),St(this,tt,(y,T,L,z)=>{if(Et(this,k,$t).call(this,T))return 0;if(!i(L)){if(!z)throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");if(typeof z!="function")throw new TypeError("sizeCalculation must be a function");if(L=z(T,y),!i(L))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return L}),St(this,rt,(y,T,L)=>{if(m[y]=T,K(this,S)){let z=K(this,S)-m[y];for(;K(this,X)>z;)Et(this,k,Ji).call(this,!0)}St(this,X,K(this,X)+m[y]),L&&(L.entrySize=T,L.totalCalculatedSize=K(this,X))})},H=new WeakMap,rt=new WeakMap,tt=new WeakMap,kr=function*({allowStale:m=this.allowStale}={}){if(K(this,$))for(let y=K(this,nt);Et(this,k,qa).call(this,y)&&((m||!K(this,ut).call(this,y))&&(yield y),y!==K(this,R));)y=K(this,M)[y]},Ir=function*({allowStale:m=this.allowStale}={}){if(K(this,$))for(let y=K(this,R);Et(this,k,qa).call(this,y)&&((m||!K(this,ut).call(this,y))&&(yield y),y!==K(this,nt));)y=K(this,w)[y]},qa=function(m){return m!==void 0&&K(this,B).get(K(this,A)[m])===m},Ji=function(m){var z,V;let y=K(this,R),T=K(this,A)[y],L=K(this,E)[y];return K(this,J)&&Et(this,k,$t).call(this,L)?L.__abortController.abort(new Error("evicted")):(K(this,it)||K(this,Y))&&(K(this,it)&&((z=K(this,U))==null||z.call(this,L,T,"evict")),K(this,Y)&&((V=K(this,Z))==null||V.push([L,T,"evict"]))),K(this,H).call(this,y),m&&(K(this,A)[y]=void 0,K(this,E)[y]=void 0,K(this,st).push(y)),K(this,$)===1?(St(this,R,St(this,nt,0)),K(this,st).length=0):St(this,R,K(this,w)[y]),K(this,B).delete(T),Ii(this,$)._--,y},Xi=function(m,y,T,L){let z=y===void 0?void 0:K(this,E)[y];if(Et(this,k,$t).call(this,z))return z;let V=new o,{signal:lt}=T;lt==null||lt.addEventListener("abort",()=>V.abort(lt.reason),{signal:V.signal});let ct={signal:V.signal,options:T,context:L},yt=(xt,_t=!1)=>{let{aborted:Tt}=V.signal,kt=T.ignoreFetchAbort&&xt!==void 0;if(T.status&&(Tt&&!_t?(T.status.fetchAborted=!0,T.status.fetchError=V.signal.reason,kt&&(T.status.fetchAbortIgnored=!0)):T.status.fetchResolved=!0),Tt&&!kt&&!_t)return bt(V.signal.reason);let vt=wt;return K(this,E)[y]===wt&&(xt===void 0?vt.__staleWhileFetching?K(this,E)[y]=vt.__staleWhileFetching:this.delete(m):(T.status&&(T.status.fetchUpdated=!0),this.set(m,xt,ct.options))),xt},bt=xt=>{let{aborted:_t}=V.signal,Tt=_t&&T.allowStaleOnFetchAbort,kt=Tt||T.allowStaleOnFetchRejection,vt=kt||T.noDeleteOnFetchRejection,Ct=wt;if(K(this,E)[y]===wt&&(vt&&Ct.__staleWhileFetching!==void 0?Tt||(K(this,E)[y]=Ct.__staleWhileFetching):this.delete(m)),kt)return T.status&&Ct.__staleWhileFetching!==void 0&&(T.status.returnedStale=!0),Ct.__staleWhileFetching;if(Ct.__returned===Ct)throw xt};T.status&&(T.status.fetchDispatched=!0);let wt=new Promise((xt,_t)=>{var kt;let Tt=(kt=K(this,G))==null?void 0:kt.call(this,m,z,ct);Tt&&Tt instanceof Promise&&Tt.then(vt=>xt(vt===void 0?void 0:vt),_t),V.signal.addEventListener("abort",()=>{(!T.ignoreFetchAbort||T.allowStaleOnFetchAbort)&&(xt(void 0),T.allowStaleOnFetchAbort&&(xt=vt=>yt(vt,!0)))})}).then(yt,xt=>(T.status&&(T.status.fetchRejected=!0,T.status.fetchError=xt),bt(xt))),Ot=Object.assign(wt,{__abortController:V,__staleWhileFetching:z,__returned:void 0});return y===void 0?(this.set(m,Ot,{...ct.options,status:void 0}),y=K(this,B).get(m)):K(this,E)[y]=Ot,Ot},$t=function(m){if(!K(this,J))return!1;let y=m;return!!y&&y instanceof Promise&&y.hasOwnProperty("__staleWhileFetching")&&y.__abortController instanceof o},Ha=function(m,y){K(this,M)[y]=m,K(this,w)[m]=y},Qn=function(m){m!==K(this,nt)&&(m===K(this,R)?St(this,R,K(this,w)[m]):Et(this,k,Ha).call(this,K(this,M)[m],K(this,w)[m]),Et(this,k,Ha).call(this,K(this,nt),m),St(this,nt,m))},x);t.LRUCache=d}),br=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.ContainerIterator=t.Container=t.Base=void 0,t.ContainerIterator=class{constructor(r=0){this.iteratorType=r}equals(r){return this.o===r.o}};var e=class{constructor(){this.i=0}get length(){return this.i}size(){return this.i}empty(){return this.i===0}};t.Base=e,t.Container=class extends e{}}),$0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=br(),r=class extends e.Base{constructor(n=[]){super(),this.S=[];let l=this;n.forEach(function(o){l.push(o)})}clear(){this.i=0,this.S=[]}push(n){return this.S.push(n),this.i+=1,this.i}pop(){if(this.i!==0)return this.i-=1,this.S.pop()}top(){return this.S[this.i-1]}};t.default=r}),V0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=br(),r=class extends e.Base{constructor(n=[]){super(),this.j=0,this.q=[];let l=this;n.forEach(function(o){l.push(o)})}clear(){this.q=[],this.i=this.j=0}push(n){let l=this.q.length;if(this.j/l>.5&&this.j+this.i>=l&&l>4096){let o=this.i;for(let s=0;s{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=br(),r=class extends e.Base{constructor(n=[],l=function(s,i){return s>i?-1:s>1;for(let i=this.i-1>>1;i>=0;--i)this.k(i,s)}m(n){let l=this.C[n];for(;n>0;){let o=n-1>>1,s=this.C[o];if(this.v(s,l)<=0)break;this.C[n]=s,n=o}this.C[n]=l}k(n,l){let o=this.C[n];for(;n0&&(s=i,a=this.C[i]),this.v(a,o)>=0)break;this.C[n]=a,n=s}this.C[n]=o}clear(){this.i=0,this.C.length=0}push(n){this.C.push(n),this.m(this.i),this.i+=1}pop(){if(this.i===0)return;let n=this.C[0],l=this.C.pop();return this.i-=1,this.i&&(this.C[0]=l,this.k(0,this.i>>1)),n}top(){return this.C[0]}find(n){return this.C.indexOf(n)>=0}remove(n){let l=this.C.indexOf(n);return!(l<0)&&(l===0?this.pop():l===this.i-1?(this.C.pop(),this.i-=1):(this.C.splice(l,1,this.C.pop()),this.i-=1,this.m(l),this.k(l,this.i>>1)),!0)}updateItem(n){let l=this.C.indexOf(n);return!(l<0)&&(this.m(l),this.k(l,this.i>>1),!0)}toArray(){return[...this.C]}};t.default=r}),jl=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=br(),r=class extends e.Container{};t.default=r}),vr=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.throwIteratorAccessError=function(){throw new RangeError("Iterator access denied!")}}),Bp=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.RandomIterator=void 0;var e=br(),r=vr(),n=class extends e.ContainerIterator{constructor(l,o){super(o),this.o=l,this.iteratorType===0?(this.pre=function(){return this.o===0&&(0,r.throwIteratorAccessError)(),this.o-=1,this},this.next=function(){return this.o===this.container.size()&&(0,r.throwIteratorAccessError)(),this.o+=1,this}):(this.pre=function(){return this.o===this.container.size()-1&&(0,r.throwIteratorAccessError)(),this.o+=1,this},this.next=function(){return this.o===-1&&(0,r.throwIteratorAccessError)(),this.o-=1,this})}get pointer(){return this.container.getElementByPos(this.o)}set pointer(l){this.container.setElementByPos(this.o,l)}};t.RandomIterator=n}),H0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e,r=(e=jl())&&e.t?e:{default:e},n=Bp(),l=class Mp extends n.RandomIterator{constructor(i,a,u){super(i,u),this.container=a}copy(){return new Mp(this.o,this.container,this.iteratorType)}},o=class extends r.default{constructor(s=[],i=!0){if(super(),Array.isArray(s))this.J=i?[...s]:s,this.i=s.length;else{this.J=[];let a=this;s.forEach(function(u){a.pushBack(u)})}}clear(){this.i=0,this.J.length=0}begin(){return new l(0,this)}end(){return new l(this.i,this)}rBegin(){return new l(this.i-1,this,1)}rEnd(){return new l(-1,this,1)}front(){return this.J[0]}back(){return this.J[this.i-1]}getElementByPos(s){if(s<0||s>this.i-1)throw new RangeError;return this.J[s]}eraseElementByPos(s){if(s<0||s>this.i-1)throw new RangeError;return this.J.splice(s,1),this.i-=1,this.i}eraseElementByValue(s){let i=0;for(let a=0;athis.i-1)throw new RangeError;this.J[s]=i}insert(s,i,a=1){if(s<0||s>this.i)throw new RangeError;return this.J.splice(s,0,...new Array(a).fill(i)),this.i+=a,this.i}find(s){for(let i=0;i{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e,r=(e=jl())&&e.t?e:{default:e},n=br(),l=vr(),o=class Lp extends n.ContainerIterator{constructor(a,u,c,d){super(d),this.o=a,this.h=u,this.container=c,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.L,this})}get pointer(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o.l}set pointer(a){this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o.l=a}copy(){return new Lp(this.o,this.h,this.container,this.iteratorType)}},s=class extends r.default{constructor(i=[]){super(),this.h={},this.p=this._=this.h.L=this.h.B=this.h;let a=this;i.forEach(function(u){a.pushBack(u)})}V(i){let{L:a,B:u}=i;a.B=u,u.L=a,i===this.p&&(this.p=u),i===this._&&(this._=a),this.i-=1}G(i,a){let u=a.B,c={l:i,L:a,B:u};a.B=c,u.L=c,a===this.h&&(this.p=c),u===this.h&&(this._=c),this.i+=1}clear(){this.i=0,this.p=this._=this.h.L=this.h.B=this.h}begin(){return new o(this.p,this.h,this)}end(){return new o(this.h,this.h,this)}rBegin(){return new o(this._,this.h,this,1)}rEnd(){return new o(this.h,this.h,this,1)}front(){return this.p.l}back(){return this._.l}getElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;let a=this.p;for(;i--;)a=a.B;return a.l}eraseElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;let a=this.p;for(;i--;)a=a.B;return this.V(a),this.i}eraseElementByValue(i){let a=this.p;for(;a!==this.h;)a.l===i&&this.V(a),a=a.B;return this.i}eraseElementByIterator(i){let a=i.o;return a===this.h&&(0,l.throwIteratorAccessError)(),i=i.next(),this.V(a),i}pushBack(i){return this.G(i,this._),this.i}popBack(){if(this.i===0)return;let i=this._.l;return this.V(this._),i}pushFront(i){return this.G(i,this.h),this.i}popFront(){if(this.i===0)return;let i=this.p.l;return this.V(this.p),i}setElementByPos(i,a){if(i<0||i>this.i-1)throw new RangeError;let u=this.p;for(;i--;)u=u.B;u.l=a}insert(i,a,u=1){if(i<0||i>this.i)throw new RangeError;if(u<=0)return this.i;if(i===0)for(;u--;)this.pushFront(a);else if(i===this.i)for(;u--;)this.pushBack(a);else{let c=this.p;for(let f=1;f{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e,r=(e=jl())&&e.t?e:{default:e},n=Bp(),l=class jp extends n.RandomIterator{constructor(i,a,u){super(i,u),this.container=a}copy(){return new jp(this.o,this.container,this.iteratorType)}},o=class extends r.default{constructor(s=[],i=4096){super(),this.j=0,this.D=0,this.R=0,this.N=0,this.P=0,this.A=[];let a=(()=>{if(typeof s.length=="number")return s.length;if(typeof s.size=="number")return s.size;if(typeof s.size=="function")return s.size();throw new TypeError("Cannot get the length or size of the container")})();this.F=i,this.P=Math.max(Math.ceil(a/this.F),1);for(let d=0;d>1)-(u>>1),this.D=this.N=this.F-a%this.F>>1;let c=this;s.forEach(function(d){c.pushBack(d)})}T(){let s=[],i=Math.max(this.P>>1,1);for(let a=0;a>1}begin(){return new l(0,this)}end(){return new l(this.i,this)}rBegin(){return new l(this.i-1,this,1)}rEnd(){return new l(-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(s){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,s}pushFront(s){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]=s,this.i}popFront(){if(this.i===0)return;let s=this.A[this.j][this.D];return this.i!==1&&(this.Dthis.i-1)throw new RangeError;let{curNodeBucketIndex:i,curNodePointerIndex:a}=this.O(s);return this.A[i][a]}setElementByPos(s,i){if(s<0||s>this.i-1)throw new RangeError;let{curNodeBucketIndex:a,curNodePointerIndex:u}=this.O(s);this.A[a][u]=i}insert(s,i,a=1){if(s<0||s>this.i)throw new RangeError;if(s===0)for(;a--;)this.pushFront(i);else if(s===this.i)for(;a--;)this.pushBack(i);else{let u=[];for(let c=s;cthis.i-1)throw new RangeError;if(s===0)this.popFront();else if(s===this.i-1)this.popBack();else{let i=[];for(let u=s+1;us;)this.popBack();return this.i}sort(s){let i=[];for(let a=0;a{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.TreeNodeEnableIndex=t.TreeNode=void 0;var e=class{constructor(r,n){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=r,this.l=n}L(){let r=this;if(r.ee===1&&r.tt.tt===r)r=r.W;else if(r.U)for(r=r.U;r.W;)r=r.W;else{let n=r.tt;for(;n.U===r;)r=n,n=r.tt;r=n}return r}B(){let r=this;if(r.W){for(r=r.W;r.U;)r=r.U;return r}{let n=r.tt;for(;n.W===r;)r=n,n=r.tt;return r.W!==n?n:r}}te(){let r=this.tt,n=this.W,l=n.U;return r.tt===this?r.tt=n:r.U===this?r.U=n:r.W=n,n.tt=r,n.U=this,this.tt=n,this.W=l,l&&(l.tt=this),n}se(){let r=this.tt,n=this.U,l=n.W;return r.tt===this?r.tt=n:r.U===this?r.U=n:r.W=n,n.tt=r,n.W=this,this.tt=n,this.U=l,l&&(l.tt=this),n}};t.TreeNode=e,t.TreeNodeEnableIndex=class extends e{constructor(){super(...arguments),this.rt=1}te(){let r=super.te();return this.ie(),r.ie(),r}se(){let r=super.se();return this.ie(),r.ie(),r}ie(){this.rt=1,this.U&&(this.rt+=this.U.rt),this.W&&(this.rt+=this.W.rt)}}}),Up=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=G0(),r=br(),n=vr(),l=class extends r.Container{constructor(s=function(a,u){return au?1:0},i=!1){super(),this.Y=void 0,this.v=s,i?(this.re=e.TreeNodeEnableIndex,this.M=function(a,u,c){let d=this.ne(a,u,c);if(d){let f=d.tt;for(;f!==this.h;)f.rt+=1,f=f.tt;let g=this.he(d);if(g){let{parentNode:b,grandParent:_,curNode:S}=g;b.ie(),_.ie(),S.ie()}}return this.i},this.V=function(a){let u=this.fe(a);for(;u!==this.h;)u.rt-=1,u=u.tt}):(this.re=e.TreeNode,this.M=function(a,u,c){let d=this.ne(a,u,c);return d&&this.he(d),this.i},this.V=this.fe),this.h=new this.re}X(s,i){let a=this.h;for(;s;){let u=this.v(s.u,i);if(u<0)s=s.W;else{if(!(u>0))return s;a=s,s=s.U}}return a}Z(s,i){let a=this.h;for(;s;)this.v(s.u,i)<=0?s=s.W:(a=s,s=s.U);return a}$(s,i){let a=this.h;for(;s;){let u=this.v(s.u,i);if(u<0)a=s,s=s.W;else{if(!(u>0))return s;s=s.U}}return a}rr(s,i){let a=this.h;for(;s;)this.v(s.u,i)<0?(a=s,s=s.W):s=s.U;return a}ue(s){for(;;){let i=s.tt;if(i===this.h)return;if(s.ee===1)return void(s.ee=0);if(s===i.U){let a=i.W;if(a.ee===1)a.ee=0,i.ee=1,i===this.Y?this.Y=i.te():i.te();else{if(a.W&&a.W.ee===1)return a.ee=i.ee,i.ee=0,a.W.ee=0,void(i===this.Y?this.Y=i.te():i.te());a.U&&a.U.ee===1?(a.ee=1,a.U.ee=0,a.se()):(a.ee=1,s=i)}}else{let a=i.U;if(a.ee===1)a.ee=0,i.ee=1,i===this.Y?this.Y=i.se():i.se();else{if(a.U&&a.U.ee===1)return a.ee=i.ee,i.ee=0,a.U.ee=0,void(i===this.Y?this.Y=i.se():i.se());a.W&&a.W.ee===1?(a.ee=1,a.W.ee=0,a.te()):(a.ee=1,s=i)}}}}fe(s){if(this.i===1)return this.clear(),this.h;let i=s;for(;i.U||i.W;){if(i.W)for(i=i.W;i.U;)i=i.U;else i=i.U;[s.u,i.u]=[i.u,s.u],[s.l,i.l]=[i.l,s.l],s=i}this.h.U===i?this.h.U=i.tt:this.h.W===i&&(this.h.W=i.tt),this.ue(i);let a=i.tt;return i===a.U?a.U=void 0:a.W=void 0,this.i-=1,this.Y.ee=0,a}oe(s,i){return s!==void 0&&(!(!this.oe(s.U,i)&&!i(s))||this.oe(s.W,i))}he(s){for(;;){let i=s.tt;if(i.ee===0)return;let a=i.tt;if(i===a.U){let u=a.W;if(u&&u.ee===1){if(u.ee=i.ee=0,a===this.Y)return;a.ee=1,s=a;continue}if(s===i.W){if(s.ee=0,s.U&&(s.U.tt=i),s.W&&(s.W.tt=a),i.W=s.U,a.U=s.W,s.U=i,s.W=a,a===this.Y)this.Y=s,this.h.tt=s;else{let c=a.tt;c.U===a?c.U=s:c.W=s}return s.tt=a.tt,i.tt=s,a.tt=s,a.ee=1,{parentNode:i,grandParent:a,curNode:s}}i.ee=0,a===this.Y?this.Y=a.se():a.se(),a.ee=1}else{let u=a.U;if(u&&u.ee===1){if(u.ee=i.ee=0,a===this.Y)return;a.ee=1,s=a;continue}if(s===i.U){if(s.ee=0,s.U&&(s.U.tt=a),s.W&&(s.W.tt=i),a.W=s.U,i.U=s.W,s.U=a,s.W=i,a===this.Y)this.Y=s,this.h.tt=s;else{let c=a.tt;c.U===a?c.U=s:c.W=s}return s.tt=a.tt,i.tt=s,a.tt=s,a.ee=1,{parentNode:i,grandParent:a,curNode:s}}i.ee=0,a===this.Y?this.Y=a.te():a.te(),a.ee=1}return}}ne(s,i,a){if(this.Y===void 0)return this.i+=1,this.Y=new this.re(s,i),this.Y.ee=0,this.Y.tt=this.h,this.h.tt=this.Y,this.h.U=this.Y,void(this.h.W=this.Y);let u,c=this.h.U,d=this.v(c.u,s);if(d!==0){if(d>0)c.U=new this.re(s,i),c.U.tt=c,u=c.U,this.h.U=u;else{let f=this.h.W,g=this.v(f.u,s);if(g===0)return void(f.l=i);if(g<0)f.W=new this.re(s,i),f.W.tt=f,u=f.W,this.h.W=u;else{if(a!==void 0){let b=a.o;if(b!==this.h){let _=this.v(b.u,s);if(_===0)return void(b.l=i);if(_>0){let S=b.L(),U=this.v(S.u,s);if(U===0)return void(S.l=i);U<0&&(u=new this.re(s,i),S.W===void 0?(S.W=u,u.tt=S):(b.U=u,u.tt=b))}}}if(u===void 0)for(u=this.Y;;){let b=this.v(u.u,s);if(b>0){if(u.U===void 0){u.U=new this.re(s,i),u.U.tt=u,u=u.U;break}u=u.U}else{if(!(b<0))return void(u.l=i);if(u.W===void 0){u.W=new this.re(s,i),u.W.tt=u,u=u.W;break}u=u.W}}}}return this.i+=1,u}c.l=i}I(s,i){for(;s;){let a=this.v(s.u,i);if(a<0)s=s.W;else{if(!(a>0))return s;s=s.U}}return s||this.h}clear(){this.i=0,this.Y=void 0,this.h.tt=void 0,this.h.U=this.h.W=void 0}updateKeyByIterator(s,i){let a=s.o;if(a===this.h&&(0,n.throwIteratorAccessError)(),this.i===1)return a.u=i,!0;if(a===this.h.U)return this.v(a.B().u,i)>0&&(a.u=i,!0);if(a===this.h.W)return this.v(a.L().u,i)<0&&(a.u=i,!0);let u=a.L().u;if(this.v(u,i)>=0)return!1;let c=a.B().u;return!(this.v(c,i)<=0)&&(a.u=i,!0)}eraseElementByPos(s){if(s<0||s>this.i-1)throw new RangeError;let i=0,a=this;return this.oe(this.Y,function(u){return s===i?(a.V(u),!0):(i+=1,!1)}),this.i}eraseElementByKey(s){if(this.i===0)return!1;let i=this.I(this.Y,s);return i!==this.h&&(this.V(i),!0)}eraseElementByIterator(s){let i=s.o;i===this.h&&(0,n.throwIteratorAccessError)();let a=i.W===void 0;return s.iteratorType===0?a&&s.next():(!a||i.U===void 0)&&s.next(),this.V(i),s}forEach(s){let i=0;for(let a of this)s(a,i++,this)}getElementByPos(s){if(s<0||s>this.i-1)throw new RangeError;let i,a=0;for(let u of this){if(a===s){i=u;break}a+=1}return i}getHeight(){if(this.i===0)return 0;let s=function(i){return i?Math.max(s(i.U),s(i.W))+1:0};return s(this.Y)}},o=l;t.default=o}),Np=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=br(),r=vr(),n=class extends e.ContainerIterator{constructor(l,o,s){super(s),this.o=l,this.h=o,this.iteratorType===0?(this.pre=function(){return this.o===this.h.U&&(0,r.throwIteratorAccessError)(),this.o=this.o.L(),this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.B(),this}):(this.pre=function(){return this.o===this.h.W&&(0,r.throwIteratorAccessError)(),this.o=this.o.B(),this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.L(),this})}get index(){let l=this.o,o=this.h.tt;if(l===this.h)return o?o.rt-1:0;let s=0;for(l.U&&(s+=l.U.rt);l!==o;){let i=l.tt;l===i.W&&(s+=1,i.U&&(s+=i.U.rt)),l=i}return s}};t.default=n}),Q0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=l(Up()),r=l(Np()),n=vr();function l(i){return i&&i.t?i:{default:i}}var o=class Dp extends r.default{constructor(a,u,c,d){super(a,u,d),this.container=c}get pointer(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o.u}copy(){return new Dp(this.o,this.h,this.container,this.iteratorType)}},s=class extends e.default{constructor(i=[],a,u){super(a,u);let c=this;i.forEach(function(d){c.insert(d)})}*K(i){i!==void 0&&(yield*this.K(i.U),yield i.u,yield*this.K(i.W))}begin(){return new o(this.h.U||this.h,this.h,this)}end(){return new o(this.h,this.h,this)}rBegin(){return new o(this.h.W||this.h,this.h,this,1)}rEnd(){return new o(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(i,a){return this.M(i,void 0,a)}find(i){let a=this.I(this.Y,i);return new o(a,this.h,this)}lowerBound(i){let a=this.X(this.Y,i);return new o(a,this.h,this)}upperBound(i){let a=this.Z(this.Y,i);return new o(a,this.h,this)}reverseLowerBound(i){let a=this.$(this.Y,i);return new o(a,this.h,this)}reverseUpperBound(i){let a=this.rr(this.Y,i);return new o(a,this.h,this)}union(i){let a=this;return i.forEach(function(u){a.insert(u)}),this.i}[Symbol.iterator](){return this.K(this.Y)}};t.default=s}),Y0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=l(Up()),r=l(Np()),n=vr();function l(i){return i&&i.t?i:{default:i}}var o=class Fp extends r.default{constructor(a,u,c,d){super(a,u,d),this.container=c}get pointer(){this.o===this.h&&(0,n.throwIteratorAccessError)();let a=this;return new Proxy([],{get:(u,c)=>c==="0"?a.o.u:c==="1"?a.o.l:void 0,set(u,c,d){if(c!=="1")throw new TypeError("props must be 1");return a.o.l=d,!0}})}copy(){return new Fp(this.o,this.h,this.container,this.iteratorType)}},s=class extends e.default{constructor(i=[],a,u){super(a,u);let c=this;i.forEach(function(d){c.setElement(d[0],d[1])})}*K(i){i!==void 0&&(yield*this.K(i.U),yield[i.u,i.l],yield*this.K(i.W))}begin(){return new o(this.h.U||this.h,this.h,this)}end(){return new o(this.h,this.h,this)}rBegin(){return new o(this.h.W||this.h,this.h,this,1)}rEnd(){return new o(this.h,this.h,this,1)}front(){if(this.i===0)return;let i=this.h.U;return[i.u,i.l]}back(){if(this.i===0)return;let i=this.h.W;return[i.u,i.l]}lowerBound(i){let a=this.X(this.Y,i);return new o(a,this.h,this)}upperBound(i){let a=this.Z(this.Y,i);return new o(a,this.h,this)}reverseLowerBound(i){let a=this.$(this.Y,i);return new o(a,this.h,this)}reverseUpperBound(i){let a=this.rr(this.Y,i);return new o(a,this.h,this)}setElement(i,a,u){return this.M(i,a,u)}find(i){let a=this.I(this.Y,i);return new o(a,this.h,this)}getElementByKey(i){return this.I(this.Y,i).l}union(i){let a=this;return i.forEach(function(u){a.setElement(u[0],u[1])}),this.i}[Symbol.iterator](){return this.K(this.Y)}};t.default=s}),Wp=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=function(e){let r=typeof e;return r==="object"&&e!==null||r==="function"}}),$p=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.HashContainerIterator=t.HashContainer=void 0;var e,r=br(),n=(e=Wp())&&e.t?e:{default:e},l=vr(),o=class extends r.ContainerIterator{constructor(i,a,u){super(u),this.o=i,this.h=a,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.L,this})}};t.HashContainerIterator=o;var s=class extends r.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(i){let{L:a,B:u}=i;a.B=u,u.L=a,i===this.p&&(this.p=u),i===this._&&(this._=a),this.i-=1}M(i,a,u){let c;if(u===void 0&&(u=(0,n.default)(i)),u){let d=i[this.HASH_TAG];if(d!==void 0)return this.H[d].l=a,this.i;Object.defineProperty(i,this.HASH_TAG,{value:this.H.length,configurable:!0}),c={u:i,l:a,L:this._,B:this.h},this.H.push(c)}else{let d=this.g[i];if(d)return d.l=a,this.i;c={u:i,l:a,L:this._,B:this.h},this.g[i]=c}return this.i===0?(this.p=c,this.h.B=c):this._.B=c,this._=c,this.h.L=c,++this.i}I(i,a){if(a===void 0&&(a=(0,n.default)(i)),a){let u=i[this.HASH_TAG];return u===void 0?this.h:this.H[u]}return this.g[i]||this.h}clear(){let i=this.HASH_TAG;this.H.forEach(function(a){delete a.u[i]}),this.H=[],this.g={},Object.setPrototypeOf(this.g,null),this.i=0,this.p=this._=this.h.L=this.h.B=this.h}eraseElementByKey(i,a){let u;if(a===void 0&&(a=(0,n.default)(i)),a){let c=i[this.HASH_TAG];if(c===void 0)return!1;delete i[this.HASH_TAG],u=this.H[c],delete this.H[c]}else{if(u=this.g[i],u===void 0)return!1;delete this.g[i]}return this.V(u),!0}eraseElementByIterator(i){let a=i.o;return a===this.h&&(0,l.throwIteratorAccessError)(),this.V(a),i.next()}eraseElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;let a=this.p;for(;i--;)a=a.B;return this.V(a),this.i}};t.HashContainer=s}),J0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=$p(),r=vr(),n=class Vp extends e.HashContainerIterator{constructor(s,i,a,u){super(s,i,u),this.container=a}get pointer(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o.u}copy(){return new Vp(this.o,this.h,this.container,this.iteratorType)}},l=class extends e.HashContainer{constructor(o=[]){super();let s=this;o.forEach(function(i){s.insert(i)})}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.p.u}back(){return this._.u}insert(o,s){return this.M(o,void 0,s)}getElementByPos(o){if(o<0||o>this.i-1)throw new RangeError;let s=this.p;for(;o--;)s=s.B;return s.u}find(o,s){let i=this.I(o,s);return new n(i,this.h,this)}forEach(o){let s=0,i=this.p;for(;i!==this.h;)o(i.u,s++,this),i=i.B}[Symbol.iterator](){return(function*(){let o=this.p;for(;o!==this.h;)yield o.u,o=o.B}).bind(this)()}};t.default=l}),X0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e,r=$p(),n=(e=Wp())&&e.t?e:{default:e},l=vr(),o=class qp extends r.HashContainerIterator{constructor(a,u,c,d){super(a,u,d),this.container=c}get pointer(){this.o===this.h&&(0,l.throwIteratorAccessError)();let a=this;return new Proxy([],{get:(u,c)=>c==="0"?a.o.u:c==="1"?a.o.l:void 0,set(u,c,d){if(c!=="1")throw new TypeError("props must be 1");return a.o.l=d,!0}})}copy(){return new qp(this.o,this.h,this.container,this.iteratorType)}},s=class extends r.HashContainer{constructor(i=[]){super();let a=this;i.forEach(function(u){a.setElement(u[0],u[1])})}begin(){return new o(this.p,this.h,this)}end(){return new o(this.h,this.h,this)}rBegin(){return new o(this._,this.h,this,1)}rEnd(){return new o(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(i,a,u){return this.M(i,a,u)}getElementByKey(i,a){if(a===void 0&&(a=(0,n.default)(i)),a){let c=i[this.HASH_TAG];return c!==void 0?this.H[c].l:void 0}let u=this.g[i];return u?u.l:void 0}getElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;let a=this.p;for(;i--;)a=a.B;return[a.u,a.l]}find(i,a){let u=this.I(i,a);return new o(u,this.h,this)}forEach(i){let a=0,u=this.p;for(;u!==this.h;)i([u.u,u.l],a++,this),u=u.B}[Symbol.iterator](){return(function*(){let i=this.p;for(;i!==this.h;)yield[i.u,i.l],i=i.B}).bind(this)()}};t.default=s}),Z0=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"t",{value:!0}),Object.defineProperty(t,"Deque",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"HashMap",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"HashSet",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"LinkList",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"OrderedMap",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"OrderedSet",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"PriorityQueue",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(t,"Queue",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"Stack",{enumerable:!0,get:function(){return e.default}}),Object.defineProperty(t,"Vector",{enumerable:!0,get:function(){return l.default}});var e=d($0()),r=d(V0()),n=d(q0()),l=d(H0()),o=d(z0()),s=d(K0()),i=d(Q0()),a=d(Y0()),u=d(J0()),c=d(X0());function d(f){return f&&f.t?f:{default:f}}}),ty=mt((t,e)=>{ht(),pt(),ft();var r=Z0().OrderedSet,n=dr()("number-allocator:trace"),l=dr()("number-allocator:error");function o(i,a){this.low=i,this.high=a}function s(i,a){if(!(this instanceof s))return new s(i,a);this.min=i,this.max=a,this.ss=new r([],(u,c)=>u.compare(c)),n("Create"),this.clear()}o.prototype.equals=function(i){return this.low===i.low&&this.high===i.high},o.prototype.compare=function(i){return this.lowi)&&(c===i?(this.ss.updateKeyByIterator(u,new o(c+1,d)),n("use():"+i),!0):d===i?(this.ss.updateKeyByIterator(u,new o(c,d-1)),n("use():"+i),!0):(this.ss.updateKeyByIterator(u,new o(i+1,d)),this.ss.insert(new o(c,i-1)),n("use():"+i),!0))}return n("use():failed"),!1},s.prototype.free=function(i){if(ithis.max)return void l("free():"+i+" is out of range");let a=new o(i,i),u=this.ss.upperBound(a);if(u.equals(this.ss.end())){if(u.equals(this.ss.begin()))return void this.ss.insert(a);u.pre();let c=u.pointer.high;u.pointer.high+1===i?this.ss.updateKeyByIterator(u,new o(c,i)):this.ss.insert(a)}else if(u.equals(this.ss.begin()))if(i+1===u.pointer.low){let c=u.pointer.high;this.ss.updateKeyByIterator(u,new o(i,c))}else this.ss.insert(a);else{let c=u.pointer.low,d=u.pointer.high;u.pre();let f=u.pointer.low;u.pointer.high+1===i?i+1===c?(this.ss.eraseElementByIterator(u),this.ss.updateKeyByIterator(u,new o(f,d))):this.ss.updateKeyByIterator(u,new o(f,i)):i+1===c?(this.ss.eraseElementByIterator(u.next()),this.ss.insert(new o(i,d))):this.ss.insert(a)}n("free():"+i)},s.prototype.clear=function(){n("clear()"),this.ss.clear(),this.ss.insert(new o(this.min,this.max))},s.prototype.intervalCount=function(){return this.ss.size()},s.prototype.dump=function(){for(let i of this.ss);},e.exports=s}),Hp=mt((t,e)=>{ht(),pt(),ft();var r=ty();e.exports.NumberAllocator=r}),ey=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0});var e=W0(),r=Hp();t.default=class{constructor(n){n>0&&(this.aliasToTopic=new e.LRUCache({max:n}),this.topicToAlias={},this.numberAllocator=new r.NumberAllocator(1,n),this.max=n,this.length=0)}put(n,l){if(l===0||l>this.max)return!1;let o=this.aliasToTopic.get(l);return o&&delete this.topicToAlias[o],this.aliasToTopic.set(l,n),this.topicToAlias[n]=l,this.numberAllocator.use(l),this.length=this.aliasToTopic.size,!0}getTopicByAlias(n){return this.aliasToTopic.get(n)}getAliasByTopic(n){let l=this.topicToAlias[n];return typeof l<"u"&&this.aliasToTopic.get(l),l}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){return this.numberAllocator.firstVacant()||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}}}),ry=mt(t=>{ht(),pt(),ft();var e=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0});var r=jo(),n=e(ey()),l=Nn();t.default=(o,s)=>{o.log("_handleConnack");let{options:i}=o,a=i.protocolVersion===5?s.reasonCode:s.returnCode;if(clearTimeout(o.connackTimer),delete o.topicAliasSend,s.properties){if(s.properties.topicAliasMaximum){if(s.properties.topicAliasMaximum>65535)return void o.emit("error",new Error("topicAliasMaximum from broker is out of range"));s.properties.topicAliasMaximum>0&&(o.topicAliasSend=new n.default(s.properties.topicAliasMaximum))}s.properties.serverKeepAlive&&i.keepalive&&(i.keepalive=s.properties.serverKeepAlive),s.properties.maximumPacketSize&&(i.properties||(i.properties={}),i.properties.maximumPacketSize=s.properties.maximumPacketSize)}if(a===0)o.reconnecting=!1,o._onConnect(s);else if(a>0){let u=new l.ErrorWithReasonCode(`Connection refused: ${r.ReasonCodes[a]}`,a);o.emit("error",u),o.options.reconnectOnConnackError&&o._cleanUp(!0)}}}),ny=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,r,n)=>{e.log("handling pubrel packet");let l=typeof n<"u"?n:e.noop,{messageId:o}=r,s={cmd:"pubcomp",messageId:o};e.incomingStore.get(r,(i,a)=>{i?e._sendPacket(s,l):(e.emit("message",a.topic,a.payload,a),e.handleMessage(a,u=>{if(u)return l(u);e.incomingStore.del(a,e.noop),e._sendPacket(s,l)}))})}}),iy=mt(t=>{ht(),pt(),ft();var e=t&&t.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(t,"__esModule",{value:!0});var r=e(N0()),n=e(F0()),l=e(ry()),o=e(jo()),s=e(ny());t.default=(i,a,u)=>{let{options:c}=i;if(c.protocolVersion===5&&c.properties&&c.properties.maximumPacketSize&&c.properties.maximumPacketSize{ht(),pt(),ft();var e=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0}),t.TypedEventEmitter=void 0;var r=e((Un(),Dt(dn))),n=Nn(),l=class{};t.TypedEventEmitter=l,(0,n.applyMixin)(l,r.default)}),Uo=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0}),t.isReactNativeBrowser=t.isWebWorker=void 0;var e,r=()=>{var o,s;return!(typeof self!="object"||(s=(o=self==null?void 0:self.constructor)===null||o===void 0?void 0:o.name)===null||s===void 0||!s.includes("WorkerGlobalScope"))},n=()=>typeof navigator<"u"&&navigator.product==="ReactNative",l=typeof window<"u"&&(typeof navigator<"u"&&((e=navigator.userAgent)===null||e===void 0?void 0:e.toLowerCase().indexOf(" electron/"))>-1&&Nt!=null&&Nt.versions?!Object.prototype.hasOwnProperty.call(Nt.versions,"electron"):typeof window.document<"u")||r()||n();t.isWebWorker=r(),t.isReactNativeBrowser=n(),t.default=l}),sy=mt((t,e)=>{var r,n;ht(),pt(),ft(),r=t,n=function(l){var o,s=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,i=536870912,a=2*i,u=new WeakMap,c=function(f,g){return function(b){var _=g.get(b),S=_===void 0?b.size:_s)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;b.has(S);)S=Math.floor(Math.random()*s);return f(b,S)}}((o=u,function(f,g){return o.set(f,g),g}),u),d=function(f){return function(g){var b=f(g);return g.add(b),b}}(c);l.addUniqueNumber=d,l.generateUniqueNumber=c},typeof t=="object"&&typeof e<"u"?n(t):typeof define=="function"&&define.amd?define(["exports"],n):n((r=typeof globalThis<"u"?globalThis:r||self).fastUniqueNumbers={})}),ay=mt((t,e)=>{var r,n;ht(),pt(),ft(),r=t,n=function(l,o){l.load=function(s){var i=new Map([[0,function(){}]]),a=new Map([[0,function(){}]]),u=new Map,c=new Worker(s);return c.addEventListener("message",function(d){var f=d.data;if(function(w){return w.method!==void 0&&w.method==="call"}(f)){var g=f.params,b=g.timerId,_=g.timerType;if(_==="interval"){var S=i.get(b);if(typeof S=="number"){var U=u.get(S);if(U===void 0||U.timerId!==b||U.timerType!==_)throw new Error("The timer is in an undefined state.")}else{if(!(typeof S<"u"))throw new Error("The timer is in an undefined state.");S()}}else if(_==="timeout"){var D=a.get(b);if(typeof D=="number"){var G=u.get(D);if(G===void 0||G.timerId!==b||G.timerType!==_)throw new Error("The timer is in an undefined state.")}else{if(!(typeof D<"u"))throw new Error("The timer is in an undefined state.");D(),a.delete(b)}}}else{if(!function(w){return w.error===null&&typeof w.id=="number"}(f)){var $=f.error.message;throw new Error($)}var X=f.id,B=u.get(X);if(B===void 0)throw new Error("The timer is in an undefined state.");var A=B.timerId,E=B.timerType;u.delete(X),E==="interval"?i.delete(A):a.delete(A)}}),{clearInterval:function(d){var f=o.generateUniqueNumber(u);u.set(f,{timerId:d,timerType:"interval"}),i.set(d,f),c.postMessage({id:f,method:"clear",params:{timerId:d,timerType:"interval"}})},clearTimeout:function(d){var f=o.generateUniqueNumber(u);u.set(f,{timerId:d,timerType:"timeout"}),a.set(d,f),c.postMessage({id:f,method:"clear",params:{timerId:d,timerType:"timeout"}})},setInterval:function(d){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,g=o.generateUniqueNumber(i);return i.set(g,function(){d(),typeof i.get(g)=="function"&&c.postMessage({id:null,method:"set",params:{delay:f,now:performance.now(),timerId:g,timerType:"interval"}})}),c.postMessage({id:null,method:"set",params:{delay:f,now:performance.now(),timerId:g,timerType:"interval"}}),g},setTimeout:function(d){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,g=o.generateUniqueNumber(a);return a.set(g,d),c.postMessage({id:null,method:"set",params:{delay:f,now:performance.now(),timerId:g,timerType:"timeout"}}),g}}}},typeof t=="object"&&typeof e<"u"?n(t,sy()):typeof define=="function"&&define.amd?define(["exports","fast-unique-numbers"],n):n((r=typeof globalThis<"u"?globalThis:r||self).workerTimersBroker={},r.fastUniqueNumbers)}),ly=mt((t,e)=>{var r,n;ht(),pt(),ft(),r=t,n=function(l,o){var s=function(i,a){var u=null;return function(){if(u!==null)return u;var c=new Blob([a],{type:"application/javascript; charset=utf-8"}),d=URL.createObjectURL(c);return u=i(d),setTimeout(function(){return URL.revokeObjectURL(d)}),u}}(o.load,`(()=>{var e={472:(e,t,r)=>{var o,i;void 0===(i="function"==typeof(o=function(){"use strict";var e=new Map,t=new Map,r=function(t){var r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id "'.concat(t,'".'));clearTimeout(r),e.delete(t)},o=function(e){var r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id "'.concat(e,'".'));clearTimeout(r),t.delete(e)},i=function(e,t){var r,o=performance.now();return{expected:o+(r=e-Math.max(0,o-t)),remainingDelay:r}},n=function e(t,r,o,i){var n=performance.now();n>o?postMessage({id:null,method:"call",params:{timerId:r,timerType:i}}):t.set(r,setTimeout(e,o-n,t,r,o,i))},a=function(t,r,o){var a=i(t,o),s=a.expected,d=a.remainingDelay;e.set(r,setTimeout(n,d,e,r,s,"interval"))},s=function(e,r,o){var a=i(e,o),s=a.expected,d=a.remainingDelay;t.set(r,setTimeout(n,d,t,r,s,"timeout"))};addEventListener("message",(function(e){var t=e.data;try{if("clear"===t.method){var i=t.id,n=t.params,d=n.timerId,c=n.timerType;if("interval"===c)r(d),postMessage({error:null,id:i});else{if("timeout"!==c)throw new Error('The given type "'.concat(c,'" is not supported'));o(d),postMessage({error:null,id:i})}}else{if("set"!==t.method)throw new Error('The given method "'.concat(t.method,'" is not supported'));var u=t.params,l=u.delay,p=u.now,m=u.timerId,v=u.timerType;if("interval"===v)a(l,m,p);else{if("timeout"!==v)throw new Error('The given type "'.concat(v,'" is not supported'));s(l,m,p)}}}catch(e){postMessage({error:{message:e.message},id:t.id,result:null})}}))})?o.call(t,r,t,e):o)||(e.exports=i)}},t={};function r(o){var i=t[o];if(void 0!==i)return i.exports;var n=t[o]={exports:{}};return e[o](n,n.exports,r),n.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";r(472)})()})();`);l.clearInterval=function(i){return s().clearInterval(i)},l.clearTimeout=function(i){return s().clearTimeout(i)},l.setInterval=function(){var i;return(i=s()).setInterval.apply(i,arguments)},l.setTimeout=function(){var i;return(i=s()).setTimeout.apply(i,arguments)}},typeof t=="object"&&typeof e<"u"?n(t,ay()):typeof define=="function"&&define.amd?define(["exports","worker-timers-broker"],n):n((r=typeof globalThis<"u"?globalThis:r||self).workerTimers={},r.workerTimersBroker)}),uy=mt(t=>{ht(),pt(),ft();var e=t&&t.__createBinding||(Object.create?function(a,u,c,d){d===void 0&&(d=c);var f=Object.getOwnPropertyDescriptor(u,c);(!f||("get"in f?!u.__esModule:f.writable||f.configurable))&&(f={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,d,f)}:function(a,u,c,d){d===void 0&&(d=c),a[d]=u[c]}),r=t&&t.__setModuleDefault||(Object.create?function(a,u){Object.defineProperty(a,"default",{enumerable:!0,value:u})}:function(a,u){a.default=u}),n=t&&t.__importStar||function(a){if(a&&a.__esModule)return a;var u={};if(a!=null)for(var c in a)c!=="default"&&Object.prototype.hasOwnProperty.call(a,c)&&e(u,a,c);return r(u,a),u};Object.defineProperty(t,"__esModule",{value:!0});var l=n(Uo()),o=ly(),s={set:o.setInterval,clear:o.clearInterval},i={set:(a,u)=>setInterval(a,u),clear:a=>clearInterval(a)};t.default=a=>{switch(a){case"native":return i;case"worker":return s;default:return!l.default||l.isWebWorker||l.isReactNativeBrowser?i:s}}}),zp=mt(t=>{ht(),pt(),ft();var e=t&&t.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(t,"__esModule",{value:!0});var r=e(uy());t.default=class{get keepaliveTimeoutTimestamp(){return this._keepaliveTimeoutTimestamp}get intervalEvery(){return this._intervalEvery}get keepalive(){return this._keepalive}constructor(n,l){this.destroyed=!1,this.client=n,this.timer=typeof l=="object"&&"set"in l&&"clear"in l?l:(0,r.default)(l),this.setKeepalive(n.options.keepalive)}clear(){this.timerId&&(this.timer.clear(this.timerId),this.timerId=null)}setKeepalive(n){if(n*=1e3,isNaN(n)||n<=0||n>2147483647)throw new Error(`Keepalive value must be an integer between 0 and 2147483647. Provided value is ${n}`);this._keepalive=n,this.reschedule(),this.client.log(`KeepaliveManager: set keepalive to ${n}ms`)}destroy(){this.clear(),this.destroyed=!0}reschedule(){if(this.destroyed)return;this.clear(),this.counter=0;let n=Math.ceil(1.5*this._keepalive);this._keepaliveTimeoutTimestamp=Date.now()+n,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)}}}),za=mt(t=>{ht(),pt(),ft();var e=t&&t.__createBinding||(Object.create?function(X,B,A,E){E===void 0&&(E=A);var w=Object.getOwnPropertyDescriptor(B,A);(!w||("get"in w?!B.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return B[A]}}),Object.defineProperty(X,E,w)}:function(X,B,A,E){E===void 0&&(E=A),X[E]=B[A]}),r=t&&t.__setModuleDefault||(Object.create?function(X,B){Object.defineProperty(X,"default",{enumerable:!0,value:B})}:function(X,B){X.default=B}),n=t&&t.__importStar||function(X){if(X&&X.__esModule)return X;var B={};if(X!=null)for(var A in X)A!=="default"&&Object.prototype.hasOwnProperty.call(X,A)&&e(B,X,A);return r(B,X),B},l=t&&t.__importDefault||function(X){return X&&X.__esModule?X:{default:X}};Object.defineProperty(t,"__esModule",{value:!0});var o=l(Zm()),s=l(M0()),i=l(xp()),a=gn(),u=l(j0()),c=n(U0()),d=l(dr()),f=l(Cp()),g=l(iy()),b=Nn(),_=oy(),S=l(zp()),U=n(Uo()),D=globalThis.setImmediate||((...X)=>{let B=X.shift();(0,b.nextTick)(()=>{B(...X)})}),G={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:3e4,clean:!0,resubscribe:!0,writeCache:!0,timerVariant:"auto"},$=class Ka extends _.TypedEventEmitter{static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}constructor(B,A){super(),this.options=A||{};for(let E in G)typeof this.options[E]>"u"?this.options[E]=G[E]:this.options[E]=A[E];this.log=this.options.log||(0,d.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: version:",Ka.VERSION),U.isWebWorker?this.log("MqttClient :: environment","webworker"):this.log("MqttClient :: environment",U.default?"browser":"node"),this.log("MqttClient :: options.protocol",A.protocol),this.log("MqttClient :: options.protocolVersion",A.protocolVersion),this.log("MqttClient :: options.username",A.username),this.log("MqttClient :: options.keepalive",A.keepalive),this.log("MqttClient :: options.reconnectPeriod",A.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",A.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",A.properties?A.properties.topicAliasMaximum:void 0),this.options.clientId=typeof A.clientId=="string"?A.clientId:Ka.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=A.protocolVersion===5&&A.customHandleAcks?A.customHandleAcks:(...E)=>{E[3](null,0)},this.options.writeCache||(s.default.writeToStream.cacheNumbers=!1),this.streamBuilder=B,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new i.default:this.options.messageIdProvider,this.outgoingStore=A.outgoingStore||new f.default,this.incomingStore=A.incomingStore||new f.default,this.queueQoSZero=A.queueQoSZero===void 0||A.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,A.properties&&A.properties.topicAliasMaximum>0&&(A.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new o.default(A.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:E}=this,w=()=>{let M=E.shift();this.log("deliver :: entry %o",M);let R=null;if(!M)return void this._resubscribe();R=M.packet,this.log("deliver :: call _sendPacket for %o",R);let nt=!0;R.messageId&&R.messageId!==0&&(this.messageIdProvider.register(R.messageId)||(nt=!1)),nt?this._sendPacket(R,st=>{M.cb&&M.cb(st),w()}):(this.log("messageId: %d has already used. The message is skipped and removed.",R.messageId),w())};this.log("connect :: sending queued packets"),w()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this._destroyKeepaliveManager(),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}handleAuth(B,A){A()}handleMessage(B,A){A()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){var B;let A=new a.Writable,E=s.default.parser(this.options),w=null,M=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.disconnected&&!this.reconnecting&&(this.incomingStore=this.options.incomingStore||new f.default,this.outgoingStore=this.options.outgoingStore||new f.default,this.disconnecting=!1,this.disconnected=!1),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),E.on("packet",Z=>{this.log("parser :: on packet push to packets array."),M.push(Z)});let R=()=>{this.log("work :: getting next packet in queue");let Z=M.shift();if(Z)this.log("work :: packet pulled from queue"),(0,g.default)(this,Z,nt);else{this.log("work :: no packets in queue");let j=w;w=null,this.log("work :: done flag is %s",!!j),j&&j()}},nt=()=>{if(M.length)(0,b.nextTick)(R);else{let Z=w;w=null,Z()}};A._write=(Z,j,N)=>{w=N,this.log("writable stream :: parsing buffer"),E.parse(Z),R()},this.log("connect :: pipe stream to writable stream"),this.stream.pipe(A),this.stream.on("error",Z=>{this.log("streamErrorHandler :: error",Z.message),Z.code?(this.log("streamErrorHandler :: emitting error"),this.emit("error",Z)):this.noop(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 st={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&&(st.will=Object.assign(Object.assign({},this.options.will),{payload:(B=this.options.will)===null||B===void 0?void 0:B.payload})),this.topicAliasRecv&&(st.properties||(st.properties={}),this.topicAliasRecv&&(st.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket(st),E.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return this.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){let Z=Object.assign({cmd:"auth",reasonCode:0},this.options.authPacket);this._writePacket(Z)}}return this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(()=>{this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"),this.emit("error",new Error("connack timeout")),this._cleanUp(!0)},this.options.connectTimeout),this}publish(B,A,E,w){this.log("publish :: message `%s` to topic `%s`",A,B);let{options:M}=this;typeof E=="function"&&(w=E,E=null),E=E||{},E=Object.assign(Object.assign({},{qos:0,retain:!1,dup:!1}),E);let{qos:R,retain:nt,dup:st,properties:Z,cbStorePut:j}=E;if(this._checkDisconnecting(w))return this;let N=()=>{let F=0;if((R===1||R===2)&&(F=this._nextId(),F===null))return this.log("No messageId left"),!1;let it={cmd:"publish",topic:B,payload:A,qos:R,retain:nt,messageId:F,dup:st};switch(M.protocolVersion===5&&(it.properties=Z),this.log("publish :: qos",R),R){case 1:case 2:this.outgoing[it.messageId]={volatile:!1,cb:w||this.noop},this.log("MqttClient:publish: packet cmd: %s",it.cmd),this._sendPacket(it,void 0,j);break;default:this.log("MqttClient:publish: packet cmd: %s",it.cmd),this._sendPacket(it,w,j)}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!N())&&this._storeProcessingQueue.push({invoke:N,cbStorePut:E.cbStorePut,callback:w}),this}publishAsync(B,A,E){return new Promise((w,M)=>{this.publish(B,A,E,(R,nt)=>{R?M(R):w(nt)})})}subscribe(B,A,E){let w=this.options.protocolVersion;typeof A=="function"&&(E=A),E=E||this.noop;let M=!1,R=[];typeof B=="string"?R=B=[B]:Array.isArray(B)?R=B:typeof B=="object"&&(M=B.resubscribe,delete B.resubscribe,R=Object.keys(B));let nt=c.validateTopics(R);if(nt!==null)return D(E,new Error(`Invalid topic ${nt}`)),this;if(this._checkDisconnecting(E))return this.log("subscribe: discconecting true"),this;let st={qos:0};w===5&&(st.nl=!1,st.rap=!1,st.rh=0);let Z=(A=Object.assign(Object.assign({},st),A)).properties,j=[],N=(it,J)=>{if(J=J||A,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,it)||this._resubscribeTopics[it].qos{this.log("subscribe: array topic %s",it),N(it)}):Object.keys(B).forEach(it=>{this.log("subscribe: object topic %s, %o",it,B[it]),N(it,B[it])}),!j.length)return E(null,[]),this;let F=()=>{let it=this._nextId();if(it===null)return this.log("No messageId left"),!1;let J={cmd:"subscribe",subscriptions:j,messageId:it};if(Z&&(J.properties=Z),this.options.resubscribe){this.log("subscribe :: resubscribe true");let Y=[];j.forEach(k=>{if(this.options.reconnectPeriod>0){let q={qos:k.qos};w===5&&(q.nl=k.nl||!1,q.rap=k.rap||!1,q.rh=k.rh||0,q.properties=k.properties),this._resubscribeTopics[k.topic]=q,Y.push(k.topic)}}),this.messageIdToTopic[J.messageId]=Y}return this.outgoing[J.messageId]={volatile:!0,cb(Y,k){if(!Y){let{granted:q}=k;for(let et=0;et0||!F())&&this._storeProcessingQueue.push({invoke:F,callback:E}),this}subscribeAsync(B,A){return new Promise((E,w)=>{this.subscribe(B,A,(M,R)=>{M?w(M):E(R)})})}unsubscribe(B,A,E){typeof B=="string"&&(B=[B]),typeof A=="function"&&(E=A),E=E||this.noop;let w=c.validateTopics(B);if(w!==null)return D(E,new Error(`Invalid topic ${w}`)),this;if(this._checkDisconnecting(E))return this;let M=()=>{let R=this._nextId();if(R===null)return this.log("No messageId left"),!1;let nt={cmd:"unsubscribe",messageId:R,unsubscriptions:[]};return typeof B=="string"?nt.unsubscriptions=[B]:Array.isArray(B)&&(nt.unsubscriptions=B),this.options.resubscribe&&nt.unsubscriptions.forEach(st=>{delete this._resubscribeTopics[st]}),typeof A=="object"&&A.properties&&(nt.properties=A.properties),this.outgoing[nt.messageId]={volatile:!0,cb:E},this.log("unsubscribe: call _sendPacket"),this._sendPacket(nt),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!M())&&this._storeProcessingQueue.push({invoke:M,callback:E}),this}unsubscribeAsync(B,A){return new Promise((E,w)=>{this.unsubscribe(B,A,(M,R)=>{M?w(M):E(R)})})}end(B,A,E){this.log("end :: (%s)",this.options.clientId),(B==null||typeof B!="boolean")&&(E=E||A,A=B,B=!1),typeof A!="object"&&(E=E||A,A=null),this.log("end :: cb? %s",!!E),(!E||typeof E!="function")&&(E=this.noop);let w=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(R=>{this.outgoingStore.close(nt=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),E){let st=R||nt;this.log("end :: closeStores: invoking callback with args"),E(st)}})}),this._deferredReconnect?this._deferredReconnect():(this.options.reconnectPeriod===0||this.options.manualConnect)&&(this.disconnecting=!1)},M=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,B),this._cleanUp(B,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),(0,b.nextTick)(w)},A)};return this.disconnecting?(E(),this):(this._clearReconnect(),this.disconnecting=!0,!B&&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,M,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),M()),this)}endAsync(B,A){return new Promise((E,w)=>{this.end(B,A,M=>{M?w(M):E()})})}removeOutgoingMessage(B){if(this.outgoing[B]){let{cb:A}=this.outgoing[B];this._removeOutgoingAndStoreMessage(B,()=>{A(new Error("Message removed"))})}return this}reconnect(B){this.log("client reconnect");let A=()=>{B?(this.options.incomingStore=B.incomingStore,this.options.outgoingStore=B.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new f.default,this.outgoingStore=this.options.outgoingStore||new f.default,this.disconnecting=!1,this.disconnected=!1,this._deferredReconnect=null,this._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=A:A(),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(B=>{this.outgoing[B].volatile&&typeof this.outgoing[B].cb=="function"&&(this.outgoing[B].cb(new Error("Connection closed")),delete this.outgoing[B])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(B=>{typeof this.outgoing[B].cb=="function"&&(this.outgoing[B].cb(new Error("Connection closed")),delete this.outgoing[B])}))}_removeTopicAliasAndRecoverTopicName(B){let A;B.properties&&(A=B.properties.topicAlias);let E=B.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",A,E),E.length===0){if(typeof A>"u")return new Error("Unregistered Topic Alias");if(E=this.topicAliasSend.getTopicByAlias(A),typeof E>"u")return new Error("Unregistered Topic Alias");B.topic=E}A&&delete B.properties.topicAlias}_checkDisconnecting(B){return this.disconnecting&&(B&&B!==this.noop?B(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(B,A,E={}){if(A&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",A)),this.log("_cleanUp :: forced? %s",B),B)this.options.reconnectPeriod===0&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{let w=Object.assign({cmd:"disconnect"},E);this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(w,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),D(()=>{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(),A&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",A),A())}_storeAndSend(B,A,E){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",B.cmd);let w,M=B;if(M.cmd==="publish"&&(M=(0,u.default)(B),w=this._removeTopicAliasAndRecoverTopicName(M),w))return A&&A(w);this.outgoingStore.put(M,R=>{if(R)return A&&A(R);E(),this._writePacket(B,A)})}_applyTopicAlias(B){if(this.options.protocolVersion===5&&B.cmd==="publish"){let A;B.properties&&(A=B.properties.topicAlias);let E=B.topic.toString();if(this.topicAliasSend)if(A){if(E.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",E,A),!this.topicAliasSend.put(E,A)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",E,A),new Error("Sending Topic Alias out of range")}else E.length!==0&&(this.options.autoAssignTopicAlias?(A=this.topicAliasSend.getAliasByTopic(E),A?(B.topic="",B.properties=Object.assign(Object.assign({},B.properties),{topicAlias:A}),this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",E,A)):(A=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(E,A),B.properties=Object.assign(Object.assign({},B.properties),{topicAlias:A}),this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",E,A))):this.options.autoUseTopicAlias&&(A=this.topicAliasSend.getAliasByTopic(E),A&&(B.topic="",B.properties=Object.assign(Object.assign({},B.properties),{topicAlias:A}),this.log("applyTopicAlias :: auto use topic: %s - alias: %d",E,A))));else if(A)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",E,A),new Error("Sending Topic Alias out of range")}}_noop(B){this.log("noop ::",B)}_writePacket(B,A){this.log("_writePacket :: packet: %O",B),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",B),this.log("_writePacket :: writing to stream");let E=s.default.writeToStream(B,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",E),!E&&A&&A!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",A)):A&&(this.log("_writePacket :: invoking cb"),A())}_sendPacket(B,A,E,w){this.log("_sendPacket :: (%s) :: start",this.options.clientId),E=E||this.noop,A=A||this.noop;let M=this._applyTopicAlias(B);if(M)A(M);else{if(!this.connected)return B.cmd==="auth"?void this._writePacket(B,A):(this.log("_sendPacket :: client not connected. Storing packet offline."),void this._storePacket(B,A,E));if(w)this._writePacket(B,A);else{switch(B.cmd){case"publish":break;case"pubrel":return void this._storeAndSend(B,A,E);default:return void this._writePacket(B,A)}switch(B.qos){case 2:case 1:this._storeAndSend(B,A,E);break;default:this._writePacket(B,A)}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}}}_storePacket(B,A,E){this.log("_storePacket :: packet: %o",B),this.log("_storePacket :: cb? %s",!!A),E=E||this.noop;let w=B;if(w.cmd==="publish"){w=(0,u.default)(B);let R=this._removeTopicAliasAndRecoverTopicName(w);if(R)return A&&A(R)}let M=w.qos||0;M===0&&this.queueQoSZero||w.cmd!=="publish"?this.queue.push({packet:w,cb:A}):M>0?(A=this.outgoing[w.messageId]?this.outgoing[w.messageId].cb:null,this.outgoingStore.put(w,R=>{if(R)return A&&A(R);E()})):A&&A(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(B=!1){this.keepaliveManager&&this.options.keepalive&&(B||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 B=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&B.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){this.log("_resubscribe: protocolVersion 5");for(let A=0;A{let E=this.outgoingStore.createStream(),w=()=>{E.destroy(),E=null,this._flushStoreProcessingQueue(),M()},M=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",w),E.on("error",nt=>{M(),this._flushStoreProcessingQueue(),this.removeListener("close",w),this.emit("error",nt)});let R=()=>{if(!E)return;let nt,st=E.read(1);st?(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[st.messageId]?R():this.disconnecting||this.reconnectTimer?E.destroy&&E.destroy():(nt=this.outgoing[st.messageId]?this.outgoing[st.messageId].cb:null,this.outgoing[st.messageId]={volatile:!1,cb(Z,j){nt&&nt(Z,j),R()}},this._packetIdsDuringStoreProcessing[st.messageId]=!0,this.messageIdProvider.register(st.messageId)?this._sendPacket(st,void 0,void 0,!0):this.log("messageId: %d has already used.",st.messageId))):E.once("readable",R)};E.on("end",()=>{let nt=!0;for(let st in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[st]){nt=!1;break}this.removeListener("close",w),nt?(M(),this._invokeAllStoreProcessingQueue(),this.emit("connect",B)):A()}),R()};A()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){let B=this._storeProcessingQueue[0];if(B&&B.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(let B of this._storeProcessingQueue)B.cbStorePut&&B.cbStorePut(new Error("Connection closed")),B.callback&&B.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(B,A){delete this.outgoing[B],this.outgoingStore.del({messageId:B},(E,w)=>{A(E,w),this.messageIdProvider.deallocate(B),this._invokeStoreProcessingQueue()})}};$.VERSION=b.MQTTJS_VERSION,t.default=$}),cy=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0});var e=Hp();t.default=class{constructor(){this.numberAllocator=new e.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(r){return this.numberAllocator.use(r)}deallocate(r){this.numberAllocator.free(r)}clear(){this.numberAllocator.clear()}}});function Qr(t){throw new RangeError(Gp[t])}function _c(t,e){let r=t.split("@"),n="";return r.length>1&&(n=r[0]+"@",t=r[1]),n+function(l,o){let s=[],i=l.length;for(;i--;)s[i]=o(l[i]);return s}((t=t.replace(Kp,".")).split("."),e).join(".")}function Ec(t){let e=[],r=0,n=t.length;for(;r=55296&&l<=56319&&r{ht(),pt(),ft(),Sc=/^xn--/,Ac=/[^\0-\x7E]/,Kp=/[\x2E\u3002\uFF0E\uFF61]/g,Gp={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Me=Math.floor,Li=String.fromCharCode,ys=function(t,e){return t+22+75*(t<26)-((e!=0)<<5)},bs=function(t,e,r){let n=0;for(t=r?Me(t/700):t>>1,t+=Me(t/e);t>455;n+=36)t=Me(t/35);return Me(n+36*t/(t+38))},vs=function(t){let e=[],r=t.length,n=0,l=128,o=72,s=t.lastIndexOf("-");s<0&&(s=0);for(let a=0;a=128&&Qr("not-basic"),e.push(t.charCodeAt(a));for(let a=s>0?s+1:0;a=r&&Qr("invalid-input");let g=(i=t.charCodeAt(a++))-48<10?i-22:i-65<26?i-65:i-97<26?i-97:36;(g>=36||g>Me((2147483647-n)/d))&&Qr("overflow"),n+=g*d;let b=f<=o?1:f>=o+26?26:f-o;if(gMe(2147483647/_)&&Qr("overflow"),d*=_}let c=e.length+1;o=bs(n-u,c,u==0),Me(n/c)>2147483647-l&&Qr("overflow"),l+=Me(n/c),n%=c,e.splice(n++,0,l)}var i;return String.fromCodePoint(...e)},ws=function(t){let e=[],r=(t=Ec(t)).length,n=128,l=0,o=72;for(let a of t)a<128&&e.push(Li(a));let s=e.length,i=s;for(s&&e.push("-");i=n&&cMe((2147483647-l)/u)&&Qr("overflow"),l+=(a-n)*u,n=a;for(let c of t)if(c2147483647&&Qr("overflow"),c==n){let d=l;for(let f=36;;f+=36){let g=f<=o?1:f>=o+26?26:f-o;if(dString.fromCodePoint(...t)},decode:vs,encode:ws,toASCII:function(t){return _c(t,function(e){return Ac.test(e)?"xn--"+ws(e):e})},toUnicode:function(t){return _c(t,function(e){return Sc.test(e)?vs(e.slice(4).toLowerCase()):e})}},Jr.encode,Jr.toASCII,Jr.toUnicode,Jr.ucs2,Jr.version});function fy(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var kc,vn,Ic,nr,py=ne(()=>{ht(),pt(),ft(),kc=function(t,e,r,n){e=e||"&",r=r||"=";var l={};if(typeof t!="string"||t.length===0)return l;var o=/\+/g;t=t.split(e);var s=1e3;n&&typeof n.maxKeys=="number"&&(s=n.maxKeys);var i=t.length;s>0&&i>s&&(i=s);for(var a=0;a=0?(u=g.substr(0,b),c=g.substr(b+1)):(u=g,c=""),d=decodeURIComponent(u),f=decodeURIComponent(c),fy(l,d)?Array.isArray(l[d])?l[d].push(f):l[d]=[l[d],f]:l[d]=f}return l},vn=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}},Ic=function(t,e,r,n){return e=e||"&",r=r||"=",t===null&&(t=void 0),typeof t=="object"?Object.keys(t).map(function(l){var o=encodeURIComponent(vn(l))+r;return Array.isArray(t[l])?t[l].map(function(s){return o+encodeURIComponent(vn(s))}).join(e):o+encodeURIComponent(vn(t[l]))}).join(e):n?encodeURIComponent(vn(n))+r+encodeURIComponent(vn(t)):""},(nr={}).decode=nr.parse=kc,nr.encode=nr.stringify=Ic,nr.decode,nr.encode,nr.parse,nr.stringify});function Ga(){throw new Error("setTimeout has not been defined")}function Qa(){throw new Error("clearTimeout has not been defined")}function Qp(t){if(or===setTimeout)return setTimeout(t,0);if((or===Ga||!or)&&setTimeout)return or=setTimeout,setTimeout(t,0);try{return or(t,0)}catch{try{return or.call(null,t,0)}catch{return or.call(this||an,t,0)}}}function dy(){ln&&rn&&(ln=!1,rn.length?ze=rn.concat(ze):ai=-1,ze.length&&Yp())}function Yp(){if(!ln){var t=Qp(dy);ln=!0;for(var e=ze.length;e;){for(rn=ze,ze=[];++ai{ht(),pt(),ft(),an=typeof globalThis<"u"?globalThis:typeof self<"u"?self:to,Kt=Oc={},function(){try{or=typeof setTimeout=="function"?setTimeout:Ga}catch{or=Ga}try{sr=typeof clearTimeout=="function"?clearTimeout:Qa}catch{sr=Qa}}(),ze=[],ln=!1,ai=-1,Kt.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r1)for(var S=1;S{ht(),pt(),ft(),Zi={},Ya=!1,Xr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:to,(zt=my()).platform="browser",zt.addListener,zt.argv,zt.binding,zt.browser,zt.chdir,zt.cwd,zt.emit,zt.env,zt.listeners,zt.nextTick,zt.off,zt.on,zt.once,zt.prependListener,zt.prependOnceListener,zt.removeAllListeners,zt.removeListener,zt.title,zt.umask,zt.version,zt.versions}),_s,Es,Ja,yy=ne(()=>{ht(),pt(),ft(),Jp(),_s={},Es=!1,Ja=function(){if(Es)return _s;Es=!0;var t=zt;function e(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function r(l,o){for(var s,i="",a=0,u=-1,c=0,d=0;d<=l.length;++d){if(d2){var f=i.lastIndexOf("/");if(f!==i.length-1){f===-1?(i="",a=0):a=(i=i.slice(0,f)).length-1-i.lastIndexOf("/"),u=d,c=0;continue}}else if(i.length===2||i.length===1){i="",a=0,u=d,c=0;continue}}o&&(i.length>0?i+="/..":i="..",a=2)}else i.length>0?i+="/"+l.slice(u+1,d):i=l.slice(u+1,d),a=d-u-1;u=d,c=0}else s===46&&c!==-1?++c:c=-1}return i}var n={resolve:function(){for(var l,o="",s=!1,i=arguments.length-1;i>=-1&&!s;i--){var a;i>=0?a=arguments[i]:(l===void 0&&(l=t.cwd()),a=l),e(a),a.length!==0&&(o=a+"/"+o,s=a.charCodeAt(0)===47)}return o=r(o,!s),s?o.length>0?"/"+o:"/":o.length>0?o:"."},normalize:function(l){if(e(l),l.length===0)return".";var o=l.charCodeAt(0)===47,s=l.charCodeAt(l.length-1)===47;return(l=r(l,!o)).length===0&&!o&&(l="."),l.length>0&&s&&(l+="/"),o?"/"+l:l},isAbsolute:function(l){return e(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,o=0;o0&&(l===void 0?l=s:l+="/"+s)}return l===void 0?".":n.normalize(l)},relative:function(l,o){if(e(l),e(o),l===o||(l=n.resolve(l))===(o=n.resolve(o)))return"";for(var s=1;sd){if(o.charCodeAt(u+g)===47)return o.slice(u+g+1);if(g===0)return o.slice(u+g)}else a>d&&(l.charCodeAt(s+g)===47?f=g:g===0&&(f=0));break}var b=l.charCodeAt(s+g);if(b!==o.charCodeAt(u+g))break;b===47&&(f=g)}var _="";for(g=s+f+1;g<=i;++g)(g===i||l.charCodeAt(g)===47)&&(_.length===0?_+="..":_+="/..");return _.length>0?_+o.slice(u+f):(u+=f,o.charCodeAt(u)===47&&++u,o.slice(u))},_makeLong:function(l){return l},dirname:function(l){if(e(l),l.length===0)return".";for(var o=l.charCodeAt(0),s=o===47,i=-1,a=!0,u=l.length-1;u>=1;--u)if((o=l.charCodeAt(u))===47){if(!a){i=u;break}}else a=!1;return i===-1?s?"/":".":s&&i===1?"//":l.slice(0,i)},basename:function(l,o){if(o!==void 0&&typeof o!="string")throw new TypeError('"ext" argument must be a string');e(l);var s,i=0,a=-1,u=!0;if(o!==void 0&&o.length>0&&o.length<=l.length){if(o.length===l.length&&o===l)return"";var c=o.length-1,d=-1;for(s=l.length-1;s>=0;--s){var f=l.charCodeAt(s);if(f===47){if(!u){i=s+1;break}}else d===-1&&(u=!1,d=s+1),c>=0&&(f===o.charCodeAt(c)?--c==-1&&(a=s):(c=-1,a=d))}return i===a?a=d:a===-1&&(a=l.length),l.slice(i,a)}for(s=l.length-1;s>=0;--s)if(l.charCodeAt(s)===47){if(!u){i=s+1;break}}else a===-1&&(u=!1,a=s+1);return a===-1?"":l.slice(i,a)},extname:function(l){e(l);for(var o=-1,s=0,i=-1,a=!0,u=0,c=l.length-1;c>=0;--c){var d=l.charCodeAt(c);if(d!==47)i===-1&&(a=!1,i=c+1),d===46?o===-1?o=c:u!==1&&(u=1):o!==-1&&(u=-1);else if(!a){s=c+1;break}}return o===-1||i===-1||u===0||u===1&&o===i-1&&o===s+1?"":l.slice(o,i)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(o,s){var i=s.dir||s.root,a=s.base||(s.name||"")+(s.ext||"");return i?i===s.root?i+a:i+o+a:a}("/",l)},parse:function(l){e(l);var o={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return o;var s,i=l.charCodeAt(0),a=i===47;a?(o.root="/",s=1):s=0;for(var u=-1,c=0,d=-1,f=!0,g=l.length-1,b=0;g>=s;--g)if((i=l.charCodeAt(g))!==47)d===-1&&(f=!1,d=g+1),i===46?u===-1?u=g:b!==1&&(b=1):u!==-1&&(b=-1);else if(!f){c=g+1;break}return u===-1||d===-1||b===0||b===1&&u===d-1&&u===c+1?d!==-1&&(o.base=o.name=c===0&&a?l.slice(1,d):l.slice(c,d)):(c===0&&a?(o.name=l.slice(1,u),o.base=l.slice(1,d)):(o.name=l.slice(c,u),o.base=l.slice(c,d)),o.ext=l.slice(u,d)),c>0?o.dir=l.slice(0,c-1):a&&(o.dir="/"),o},sep:"/",delimiter:":",win32:null,posix:null};return n.posix=n,_s=n}()}),Xp={};function ke(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function zn(t,e,r){if(t&&Le.isObject(t)&&t instanceof ke)return t;var n=new ke;return n.parse(t,e,r),n}function by(t){if(typeof t=="string")t=new URL(t);else if(!(t instanceof URL))throw new Deno.errors.InvalidData("invalid argument path , must be a string or URL");if(t.protocol!=="file:")throw new Deno.errors.InvalidData("invalid url scheme");return go?function(e){let r=e.hostname,n=e.pathname;for(let l=0;lid||o!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return n.slice(1)}}(t):function(e){if(e.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let r=e.pathname;for(let n=0;nwd||o!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return n.slice(1)}}(t):function(e){if(e.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let r=e.pathname;for(let n=0;nmd,Url:()=>hd,default:()=>jt,fileURLToPath:()=>Zp,format:()=>fd,parse:()=>gd,pathToFileURL:()=>td,resolve:()=>pd,resolveObject:()=>dd});var jt,xc,Le,Cc,Rc,Pc,Bc,ji,Ss,As,ks,Mc,Lc,Ui,Yr,Ni,Is,Ts,Xa,jc,ed,rd,nd,id,go,od,sd,ad,ld,ud,cd,Uc,hd,fd,pd,dd,gd,md,yd,bd,vd,wd,mo,_d,Ed,Sd,Ad,kd,Id,wy=ne(()=>{ht(),pt(),ft(),hy(),py(),gy(),yy(),Jp(),xc=Jr,Le={isString:function(t){return typeof t=="string"},isObject:function(t){return typeof t=="object"&&t!==null},isNull:function(t){return t===null},isNullOrUndefined:function(t){return t==null}},(jt={}).parse=zn,jt.resolve=function(t,e){return zn(t,!1,!0).resolve(e)},jt.resolveObject=function(t,e){return t?zn(t,!1,!0).resolveObject(e):e},jt.format=function(t){return Le.isString(t)&&(t=zn(t)),t instanceof ke?t.format():ke.prototype.format.call(t)},jt.Url=ke,Cc=/^([a-z0-9.+-]+:)/i,Rc=/:[0-9]*$/,Pc=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Bc=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` +`," "]),ji=["'"].concat(Bc),Ss=["%","/","?",";","#"].concat(ji),As=["/","?","#"],ks=/^[+a-z0-9A-Z_-]{0,63}$/,Mc=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Lc={javascript:!0,"javascript:":!0},Ui={javascript:!0,"javascript:":!0},Yr={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},Ni=nr,ke.prototype.parse=function(t,e,r){if(!Le.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var n=t.indexOf("?"),l=n!==-1&&n127?$+="x":$+=G[X];if(!$.match(ks)){var A=U.slice(0,b),E=U.slice(b+1),w=G.match(Mc);w&&(A.push(w[1]),E.unshift(w[2])),E.length&&(s="/"+E.join(".")+s),this.hostname=A.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),S||(this.hostname=xc.toASCII(this.hostname));var M=this.port?":"+this.port:"",R=this.hostname||"";this.host=R+M,this.href+=this.host,S&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),s[0]!=="/"&&(s="/"+s))}if(!Lc[u])for(b=0,D=ji.length;b0)&&r.host.split("@"))&&(r.auth=w.shift(),r.host=r.hostname=w.shift())),r.search=t.search,r.query=t.query,Le.isNull(r.pathname)&&Le.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!G.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var X=G.slice(-1)[0],B=(r.host||t.host||G.length>1)&&(X==="."||X==="..")||X==="",A=0,E=G.length;E>=0;E--)(X=G[E])==="."?G.splice(E,1):X===".."?(G.splice(E,1),A++):A&&(G.splice(E,1),A--);if(!U&&!D)for(;A--;A)G.unshift("..");!U||G[0]===""||G[0]&&G[0].charAt(0)==="/"||G.unshift(""),B&&G.join("/").substr(-1)!=="/"&&G.push("");var w,M=G[0]===""||G[0]&&G[0].charAt(0)==="/";return $&&(r.hostname=r.host=M?"":G.length?G.shift():"",(w=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=w.shift(),r.host=r.hostname=w.shift())),(U=U||r.host&&G.length)&&!M&&G.unshift(""),G.length?r.pathname=G.join("/"):(r.pathname=null,r.path=null),Le.isNull(r.pathname)&&Le.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},ke.prototype.parseHost=function(){var t=this.host,e=Rc.exec(t);e&&((e=e[0])!==":"&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},jt.Url,jt.format,jt.resolve,jt.resolveObject,Is={},Ts=!1,Xa=function(){if(Ts)return Is;Ts=!0;var t=Gt;function e(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function r(l,o){for(var s,i="",a=0,u=-1,c=0,d=0;d<=l.length;++d){if(d2){var f=i.lastIndexOf("/");if(f!==i.length-1){f===-1?(i="",a=0):a=(i=i.slice(0,f)).length-1-i.lastIndexOf("/"),u=d,c=0;continue}}else if(i.length===2||i.length===1){i="",a=0,u=d,c=0;continue}}o&&(i.length>0?i+="/..":i="..",a=2)}else i.length>0?i+="/"+l.slice(u+1,d):i=l.slice(u+1,d),a=d-u-1;u=d,c=0}else s===46&&c!==-1?++c:c=-1}return i}var n={resolve:function(){for(var l,o="",s=!1,i=arguments.length-1;i>=-1&&!s;i--){var a;i>=0?a=arguments[i]:(l===void 0&&(l=t.cwd()),a=l),e(a),a.length!==0&&(o=a+"/"+o,s=a.charCodeAt(0)===47)}return o=r(o,!s),s?o.length>0?"/"+o:"/":o.length>0?o:"."},normalize:function(l){if(e(l),l.length===0)return".";var o=l.charCodeAt(0)===47,s=l.charCodeAt(l.length-1)===47;return(l=r(l,!o)).length===0&&!o&&(l="."),l.length>0&&s&&(l+="/"),o?"/"+l:l},isAbsolute:function(l){return e(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,o=0;o0&&(l===void 0?l=s:l+="/"+s)}return l===void 0?".":n.normalize(l)},relative:function(l,o){if(e(l),e(o),l===o||(l=n.resolve(l))===(o=n.resolve(o)))return"";for(var s=1;sd){if(o.charCodeAt(u+g)===47)return o.slice(u+g+1);if(g===0)return o.slice(u+g)}else a>d&&(l.charCodeAt(s+g)===47?f=g:g===0&&(f=0));break}var b=l.charCodeAt(s+g);if(b!==o.charCodeAt(u+g))break;b===47&&(f=g)}var _="";for(g=s+f+1;g<=i;++g)(g===i||l.charCodeAt(g)===47)&&(_.length===0?_+="..":_+="/..");return _.length>0?_+o.slice(u+f):(u+=f,o.charCodeAt(u)===47&&++u,o.slice(u))},_makeLong:function(l){return l},dirname:function(l){if(e(l),l.length===0)return".";for(var o=l.charCodeAt(0),s=o===47,i=-1,a=!0,u=l.length-1;u>=1;--u)if((o=l.charCodeAt(u))===47){if(!a){i=u;break}}else a=!1;return i===-1?s?"/":".":s&&i===1?"//":l.slice(0,i)},basename:function(l,o){if(o!==void 0&&typeof o!="string")throw new TypeError('"ext" argument must be a string');e(l);var s,i=0,a=-1,u=!0;if(o!==void 0&&o.length>0&&o.length<=l.length){if(o.length===l.length&&o===l)return"";var c=o.length-1,d=-1;for(s=l.length-1;s>=0;--s){var f=l.charCodeAt(s);if(f===47){if(!u){i=s+1;break}}else d===-1&&(u=!1,d=s+1),c>=0&&(f===o.charCodeAt(c)?--c==-1&&(a=s):(c=-1,a=d))}return i===a?a=d:a===-1&&(a=l.length),l.slice(i,a)}for(s=l.length-1;s>=0;--s)if(l.charCodeAt(s)===47){if(!u){i=s+1;break}}else a===-1&&(u=!1,a=s+1);return a===-1?"":l.slice(i,a)},extname:function(l){e(l);for(var o=-1,s=0,i=-1,a=!0,u=0,c=l.length-1;c>=0;--c){var d=l.charCodeAt(c);if(d!==47)i===-1&&(a=!1,i=c+1),d===46?o===-1?o=c:u!==1&&(u=1):o!==-1&&(u=-1);else if(!a){s=c+1;break}}return o===-1||i===-1||u===0||u===1&&o===i-1&&o===s+1?"":l.slice(o,i)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(o,s){var i=s.dir||s.root,a=s.base||(s.name||"")+(s.ext||"");return i?i===s.root?i+a:i+o+a:a}("/",l)},parse:function(l){e(l);var o={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return o;var s,i=l.charCodeAt(0),a=i===47;a?(o.root="/",s=1):s=0;for(var u=-1,c=0,d=-1,f=!0,g=l.length-1,b=0;g>=s;--g)if((i=l.charCodeAt(g))!==47)d===-1&&(f=!1,d=g+1),i===46?u===-1?u=g:b!==1&&(b=1):u!==-1&&(b=-1);else if(!f){c=g+1;break}return u===-1||d===-1||b===0||b===1&&u===d-1&&u===c+1?d!==-1&&(o.base=o.name=c===0&&a?l.slice(1,d):l.slice(c,d)):(c===0&&a?(o.name=l.slice(1,u),o.base=l.slice(1,d)):(o.name=l.slice(c,u),o.base=l.slice(c,d)),o.ext=l.slice(u,d)),c>0?o.dir=l.slice(0,c-1):a&&(o.dir="/"),o},sep:"/",delimiter:":",win32:null,posix:null};return n.posix=n,Is=n}(),jc=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,jt.URL=typeof URL<"u"?URL:null,jt.pathToFileURL=vy,jt.fileURLToPath=by,jt.Url,jt.format,jt.resolve,jt.resolveObject,jt.URL,ed=92,rd=47,nd=97,id=122,go=jc==="win32",od=/\//g,sd=/%/g,ad=/\\/g,ld=/\n/g,ud=/\r/g,cd=/\t/g,Uc=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,jt.URL=typeof URL<"u"?URL:null,jt.pathToFileURL=td,jt.fileURLToPath=Zp,hd=jt.Url,fd=jt.format,pd=jt.resolve,dd=jt.resolveObject,gd=jt.parse,md=jt.URL,yd=92,bd=47,vd=97,wd=122,mo=Uc==="win32",_d=/\//g,Ed=/%/g,Sd=/\\/g,Ad=/\n/g,kd=/\r/g,Id=/\t/g}),_y=mt((t,e)=>{ht(),pt(),ft(),e.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}}),Ul=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0}),t.BufferedDuplex=t.writev=void 0;var e=gn(),r=(oe(),Dt(ie));function n(o,s){let i=new Array(o.length);for(let a=0;a{this.destroyed||this.push(a)})}_read(o){this.proxy.read(o)}_write(o,s,i){this.isSocketOpen?this.writeToProxy(o,s,i):this.writeQueue.push({chunk:o,encoding:s,cb:i})}_final(o){this.writeQueue=[],this.proxy.end(o)}_destroy(o,s){this.writeQueue=[],this.proxy.destroy(),s(o)}socketReady(){this.emit("connect"),this.isSocketOpen=!0,this.processWriteQueue()}writeToProxy(o,s,i){this.proxy.write(o,s)===!1?this.proxy.once("drain",i):i()}processWriteQueue(){for(;this.writeQueue.length>0;){let{chunk:o,encoding:s,cb:i}=this.writeQueue.shift();this.writeToProxy(o,s,i)}}};t.BufferedDuplex=l}),Di=mt(t=>{ht(),pt(),ft();var e=t&&t.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.streamBuilder=t.browserStreamBuilder=void 0;var r=(oe(),Dt(ie)),n=e(_y()),l=e(dr()),o=gn(),s=e(Uo()),i=Ul(),a=(0,l.default)("mqttjs:ws"),u=["rejectUnauthorized","ca","cert","key","pfx","passphrase"];function c(f,g){let b=`${f.protocol}://${f.hostname}:${f.port}${f.path}`;return typeof f.transformWsUrl=="function"&&(b=f.transformWsUrl(b,f,g)),b}function d(f){let g=f;return f.port||(f.protocol==="wss"?g.port=443:g.port=80),f.path||(g.path="/"),f.wsOptions||(g.wsOptions={}),!s.default&&!f.forceNativeWebSocket&&f.protocol==="wss"&&u.forEach(b=>{Object.prototype.hasOwnProperty.call(f,b)&&!Object.prototype.hasOwnProperty.call(f.wsOptions,b)&&(g.wsOptions[b]=f[b])}),g}t.streamBuilder=(f,g)=>{a("streamBuilder");let b=d(g);b.hostname=b.hostname||b.host||"localhost";let _=c(b,f),S=function(D,G,$){a("createWebSocket"),a(`protocol: ${$.protocolId} ${$.protocolVersion}`);let X,B=$.protocolId==="MQIsdp"&&$.protocolVersion===3?"mqttv3.1":"mqtt";return a(`creating new Websocket for url: ${G} and protocol: ${B}`),X=$.createWebsocket?$.createWebsocket(G,[B],$):new n.default(G,[B],$.wsOptions),X}(0,_,b),U=n.default.createWebSocketStream(S,b.wsOptions);return U.url=_,S.on("close",()=>{U.destroy()}),U},t.browserStreamBuilder=(f,g)=>{a("browserStreamBuilder");let b,_=function(w){let M=d(w);if(M.hostname||(M.hostname=M.host),!M.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");let R=new URL(document.URL);M.hostname=R.hostname,M.port||(M.port=Number(R.port))}return M.objectMode===void 0&&(M.objectMode=!(M.binary===!0||M.binary===void 0)),M}(g).browserBufferSize||524288,S=g.browserBufferTimeout||1e3,U=!g.objectMode,D=function(w,M){let R,nt=M.protocolId==="MQIsdp"&&M.protocolVersion===3?"mqttv3.1":"mqtt",st=c(M,w);return R=M.createWebsocket?M.createWebsocket(st,[nt],M):new WebSocket(st,[nt]),R.binaryType="arraybuffer",R}(f,g),G=function(w,M,R){let nt=new o.Transform({objectMode:w.objectMode});return nt._write=M,nt._flush=R,nt}(g,function w(M,R,nt){if(D.bufferedAmount>_)return void setTimeout(w,S,M,R,nt);U&&typeof M=="string"&&(M=r.Buffer.from(M,"utf8"));try{D.send(M)}catch(st){return nt(st)}nt()},function(w){D.close(),w()});g.objectMode||(G._writev=i.writev.bind(G)),G.on("close",()=>{D.close()});let $=typeof D.addEventListener<"u";function X(){a("WebSocket onOpen"),b instanceof i.BufferedDuplex&&b.socketReady()}function B(w){a("WebSocket onClose",w),b.end(),b.destroy()}function A(w){a("WebSocket onError",w);let M=new Error("WebSocket error");M.event=w,b.destroy(M)}async function E(w){let{data:M}=w;M=M instanceof ArrayBuffer?r.Buffer.from(M):M instanceof Blob?r.Buffer.from(await new Response(M).arrayBuffer()):r.Buffer.from(M,"utf8"),G&&!G.destroyed&&G.push(M)}return D.readyState===D.OPEN?(b=G,b.socket=D):(b=new i.BufferedDuplex(g,G,D),$?D.addEventListener("open",X):D.onopen=X),$?(D.addEventListener("close",B),D.addEventListener("error",A),D.addEventListener("message",E)):(D.onclose=B,D.onerror=A,D.onmessage=E),b}}),Nl={};function Vt(){throw new Error("Node.js net module is not supported by JSPM core outside of Node.js")}fn(Nl,{Server:()=>Vt,Socket:()=>Vt,Stream:()=>Vt,_createServerHandle:()=>Vt,_normalizeArgs:()=>Vt,_setSimultaneousAccepts:()=>Vt,connect:()=>Vt,createConnection:()=>Vt,createServer:()=>Vt,default:()=>Td,isIP:()=>Vt,isIPv4:()=>Vt,isIPv6:()=>Vt});var Td,Od=ne(()=>{ht(),pt(),ft(),Td={_createServerHandle:Vt,_normalizeArgs:Vt,_setSimultaneousAccepts:Vt,connect:Vt,createConnection:Vt,createServer:Vt,isIP:Vt,isIPv4:Vt,isIPv6:Vt,Server:Vt,Socket:Vt,Stream:Vt}}),Nc=mt(t=>{ht(),pt(),ft();var e=t&&t.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(t,"__esModule",{value:!0});var r=e((Od(),Dt(Nl))),n=(0,e(dr()).default)("mqttjs:tcp");t.default=(l,o)=>{o.port=o.port||1883,o.hostname=o.hostname||o.host||"localhost";let{port:s,path:i}=o,a=o.hostname;return n("port %d and host %s",s,a),r.default.createConnection({port:s,host:a,path:i})}}),xd={};fn(xd,{default:()=>Cd});var Cd,Ey=ne(()=>{ht(),pt(),ft(),Cd={}}),Dc=mt(t=>{ht(),pt(),ft();var e=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0});var r=e((Ey(),Dt(xd))),n=e((Od(),Dt(Nl))),l=(0,e(dr()).default)("mqttjs:tls");t.default=(o,s)=>{s.port=s.port||8883,s.host=s.hostname||s.host||"localhost",n.default.isIP(s.host)===0&&(s.servername=s.host),s.rejectUnauthorized=s.rejectUnauthorized!==!1,delete s.path,l("port %d host %s rejectUnauthorized %b",s.port,s.host,s.rejectUnauthorized);let i=r.default.connect(s);function a(u){s.rejectUnauthorized&&o.emit("error",u),i.end()}return i.on("secureConnect",()=>{s.rejectUnauthorized&&!i.authorized?i.emit("error",new Error("TLS not authorized")):i.removeListener("error",a)}),i.on("error",a),i}}),Fc=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0});var e,r,n,l=(oe(),Dt(ie)),o=gn(),s=Ul();t.default=(i,a)=>{if(a.hostname=a.hostname||a.host,!a.hostname)throw new Error("Could not determine host. Specify host manually.");let u=a.protocolId==="MQIsdp"&&a.protocolVersion===3?"mqttv3.1":"mqtt";(function(f){f.hostname||(f.hostname="localhost"),f.path||(f.path="/"),f.wsOptions||(f.wsOptions={})})(a);let c=function(f,g){let b=f.protocol==="wxs"?"wss":"ws",_=`${b}://${f.hostname}${f.path}`;return f.port&&f.port!==80&&f.port!==443&&(_=`${b}://${f.hostname}:${f.port}${f.path}`),typeof f.transformWsUrl=="function"&&(_=f.transformWsUrl(_,f,g)),_}(a,i);e=wx.connectSocket({url:c,protocols:[u]}),r=function(){let f=new o.Transform;return f._write=(g,b,_)=>{e.send({data:g.buffer,success(){_()},fail(S){_(new Error(S))}})},f._flush=g=>{e.close({success(){g()}})},f}(),(n=new s.BufferedDuplex(a,r,e))._destroy=(f,g)=>{e.close({success(){g&&g(f)}})};let d=n.destroy;return n.destroy=(f,g)=>(n.destroy=d,setTimeout(()=>{e.close({fail(){n._destroy(f,g)}})},0),n),e.onOpen(()=>{n.socketReady()}),e.onMessage(f=>{let{data:g}=f;g=g instanceof ArrayBuffer?l.Buffer.from(g):l.Buffer.from(g,"utf8"),r.push(g)}),e.onClose(()=>{n.emit("close"),n.end(),n.destroy()}),e.onError(f=>{let g=new Error(f.errMsg);n.destroy(g)}),n}}),Wc=mt(t=>{ht(),pt(),ft(),Object.defineProperty(t,"__esModule",{value:!0});var e,r,n,l=(oe(),Dt(ie)),o=gn(),s=Ul(),i=!1;t.default=(a,u)=>{if(u.hostname=u.hostname||u.host,!u.hostname)throw new Error("Could not determine host. Specify host manually.");let c=u.protocolId==="MQIsdp"&&u.protocolVersion===3?"mqttv3.1":"mqtt";(function(f){f.hostname||(f.hostname="localhost"),f.path||(f.path="/"),f.wsOptions||(f.wsOptions={})})(u);let d=function(f,g){let b=f.protocol==="alis"?"wss":"ws",_=`${b}://${f.hostname}${f.path}`;return f.port&&f.port!==80&&f.port!==443&&(_=`${b}://${f.hostname}:${f.port}${f.path}`),typeof f.transformWsUrl=="function"&&(_=f.transformWsUrl(_,f,g)),_}(u,a);return(e=u.my).connectSocket({url:d,protocols:c}),r=function(){let f=new o.Transform;return f._write=(g,b,_)=>{e.sendSocketMessage({data:g.buffer,success(){_()},fail(){_(new Error)}})},f._flush=g=>{e.closeSocket({success(){g()}})},f}(),n=new s.BufferedDuplex(u,r,e),i||(i=!0,e.onSocketOpen(()=>{n.socketReady()}),e.onSocketMessage(f=>{if(typeof f.data=="string"){let g=l.Buffer.from(f.data,"base64");r.push(g)}else{let g=new FileReader;g.addEventListener("load",()=>{let b=g.result;b=b instanceof ArrayBuffer?l.Buffer.from(b):l.Buffer.from(b,"utf8"),r.push(b)}),g.readAsArrayBuffer(f.data)}}),e.onSocketClose(()=>{n.end(),n.destroy()}),e.onSocketError(f=>{n.destroy(f)})),n}}),Sy=mt(t=>{ht(),pt(),ft();var e=t&&t.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,"__esModule",{value:!0}),t.connectAsync=void 0;var r=e(dr()),n=e((wy(),Dt(Xp))),l=e(za()),o=e(Uo());typeof(Nt==null?void 0:Nt.nextTick)!="function"&&(Nt.nextTick=setImmediate);var s=(0,r.default)("mqttjs"),i=null;function a(u,c){var d,f,g,b;if(s("connecting to an MQTT broker..."),typeof u=="object"&&!c&&(c=u,u=""),c=c||{},u&&typeof u=="string"){let S=n.default.parse(u,!0),U={};if(S.port!=null&&(U.port=Number(S.port)),U.host=S.hostname,U.query=S.query,U.auth=S.auth,U.protocol=S.protocol,U.path=S.path,U.protocol=(d=U.protocol)===null||d===void 0?void 0:d.replace(/:$/,""),!(c=Object.assign(Object.assign({},U),c)).protocol)throw new Error("Missing protocol")}if(c.unixSocket=c.unixSocket||((f=c.protocol)===null||f===void 0?void 0:f.includes("+unix")),c.unixSocket?c.protocol=c.protocol.replace("+unix",""):(g=c.protocol)!==null&&g!==void 0&&g.startsWith("ws")||(b=c.protocol)!==null&&b!==void 0&&b.startsWith("wx")||delete c.path,function(S){let U;S.auth&&(U=S.auth.match(/^(.+):(.+)$/),U?(S.username=U[1],S.password=U[2]):S.username=S.auth)}(c),c.query&&typeof c.query.clientId=="string"&&(c.clientId=c.query.clientId),c.cert&&c.key){if(!c.protocol)throw new Error("Missing secure protocol key");if(["mqtts","wss","wxs","alis"].indexOf(c.protocol)===-1)switch(c.protocol){case"mqtt":c.protocol="mqtts";break;case"ws":c.protocol="wss";break;case"wx":c.protocol="wxs";break;case"ali":c.protocol="alis";break;default:throw new Error(`Unknown protocol for secure connection: "${c.protocol}"!`)}}if(i||(i={},o.default||c.forceNativeWebSocket?(i.ws=Di().browserStreamBuilder,i.wss=Di().browserStreamBuilder,i.wx=Fc().default,i.wxs=Fc().default,i.ali=Wc().default,i.alis=Wc().default):(i.ws=Di().streamBuilder,i.wss=Di().streamBuilder,i.mqtt=Nc().default,i.tcp=Nc().default,i.ssl=Dc().default,i.tls=i.ssl,i.mqtts=Dc().default)),!i[c.protocol]){let S=["mqtts","wss"].indexOf(c.protocol)!==-1;c.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter((U,D)=>(!S||D%2!=0)&&typeof i[U]=="function")[0]}if(c.clean===!1&&!c.clientId)throw new Error("Missing clientId for unclean clients");c.protocol&&(c.defaultProtocol=c.protocol);let _=new l.default(function(S){return c.servers&&((!S._reconnectCount||S._reconnectCount===c.servers.length)&&(S._reconnectCount=0),c.host=c.servers[S._reconnectCount].host,c.port=c.servers[S._reconnectCount].port,c.protocol=c.servers[S._reconnectCount].protocol?c.servers[S._reconnectCount].protocol:c.defaultProtocol,c.hostname=c.host,S._reconnectCount++),s("calling streambuilder for",c.protocol),i[c.protocol](S,c)},c);return _.on("error",()=>{}),_}t.connectAsync=function(u,c,d=!0){return new Promise((f,g)=>{let b=a(u,c),_={connect:U=>{S(),f(b)},end:()=>{S(),f(b)},error:U=>{S(),b.end(),g(U)}};function S(){Object.keys(_).forEach(U=>{b.off(U,_[U])})}d===!1&&(_.close=()=>{_.error(new Error("Couldn't connect to server"))}),Object.keys(_).forEach(U=>{b.on(U,_[U])})})},t.default=a}),$c=mt(t=>{ht(),pt(),ft();var e=t&&t.__createBinding||(Object.create?function(g,b,_,S){S===void 0&&(S=_);var U=Object.getOwnPropertyDescriptor(b,_);(!U||("get"in U?!b.__esModule:U.writable||U.configurable))&&(U={enumerable:!0,get:function(){return b[_]}}),Object.defineProperty(g,S,U)}:function(g,b,_,S){S===void 0&&(S=_),g[S]=b[_]}),r=t&&t.__setModuleDefault||(Object.create?function(g,b){Object.defineProperty(g,"default",{enumerable:!0,value:b})}:function(g,b){g.default=b}),n=t&&t.__importStar||function(g){if(g&&g.__esModule)return g;var b={};if(g!=null)for(var _ in g)_!=="default"&&Object.prototype.hasOwnProperty.call(g,_)&&e(b,g,_);return r(b,g),b},l=t&&t.__exportStar||function(g,b){for(var _ in g)_!=="default"&&!Object.prototype.hasOwnProperty.call(b,_)&&e(b,g,_)},o=t&&t.__importDefault||function(g){return g&&g.__esModule?g:{default:g}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=t.KeepaliveManager=t.UniqueMessageIdProvider=t.DefaultMessageIdProvider=t.Store=t.MqttClient=t.connectAsync=t.connect=t.Client=void 0;var s=o(za());t.MqttClient=s.default;var i=o(xp());t.DefaultMessageIdProvider=i.default;var a=o(cy());t.UniqueMessageIdProvider=a.default;var u=o(Cp());t.Store=u.default;var c=n(Sy());t.connect=c.default,Object.defineProperty(t,"connectAsync",{enumerable:!0,get:function(){return c.connectAsync}});var d=o(zp());t.KeepaliveManager=d.default,t.Client=s.default,l(za(),t),l(Nn(),t);var f=jo();Object.defineProperty(t,"ReasonCodes",{enumerable:!0,get:function(){return f.ReasonCodes}})});const lb=mt(t=>{ht(),pt(),ft();var e=t&&t.__createBinding||(Object.create?function(s,i,a,u){u===void 0&&(u=a);var c=Object.getOwnPropertyDescriptor(i,a);(!c||("get"in c?!i.__esModule:c.writable||c.configurable))&&(c={enumerable:!0,get:function(){return i[a]}}),Object.defineProperty(s,u,c)}:function(s,i,a,u){u===void 0&&(u=a),s[u]=i[a]}),r=t&&t.__setModuleDefault||(Object.create?function(s,i){Object.defineProperty(s,"default",{enumerable:!0,value:i})}:function(s,i){s.default=i}),n=t&&t.__importStar||function(s){if(s&&s.__esModule)return s;var i={};if(s!=null)for(var a in s)a!=="default"&&Object.prototype.hasOwnProperty.call(s,a)&&e(i,s,a);return r(i,s),i},l=t&&t.__exportStar||function(s,i){for(var a in s)a!=="default"&&!Object.prototype.hasOwnProperty.call(i,a)&&e(i,s,a)};Object.defineProperty(t,"__esModule",{value:!0});var o=n($c());t.default=o,l($c(),t)})();/*! Bundled license information: + +@jspm/core/nodelibs/browser/buffer.js: + (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) +*/var be="top",Re="bottom",Pe="right",ve="left",Za="auto",Si=[be,Re,Pe,ve],Pn="start",bi="end",Rd="viewport",Kn="popper",Vc=Si.reduce(function(t,e){return t.concat([e+"-"+Pn,e+"-"+bi])},[]),Pd=[].concat(Si,[Za]).reduce(function(t,e){return t.concat([e,e+"-"+Pn,e+"-"+bi])},[]),Ay=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Ye(t){return t?(t.nodeName||"").toLowerCase():null}function Be(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function hn(t){return t instanceof Be(t).Element||t instanceof Element}function Oe(t){return t instanceof Be(t).HTMLElement||t instanceof HTMLElement}function Dl(t){return typeof ShadowRoot<"u"&&(t instanceof Be(t).ShadowRoot||t instanceof ShadowRoot)}const ky={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var n=e.styles[r]||{},l=e.attributes[r]||{},o=e.elements[r];Oe(o)&&Ye(o)&&(Object.assign(o.style,n),Object.keys(l).forEach(function(s){var i=l[s];i===!1?o.removeAttribute(s):o.setAttribute(s,i===!0?"":i)}))})},effect:function(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(n){var l=e.elements[n],o=e.attributes[n]||{},s=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:r[n]).reduce(function(i,a){return i[a]="",i},{});Oe(l)&&Ye(l)&&(Object.assign(l.style,s),Object.keys(o).forEach(function(i){l.removeAttribute(i)}))})}},requires:["computeStyles"]};function Ke(t){return t.split("-")[0]}var un=Math.max,yo=Math.min,Bn=Math.round;function tl(){var t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Bd(){return!/^((?!chrome|android).)*safari/i.test(tl())}function Mn(t,e,r){e===void 0&&(e=!1),r===void 0&&(r=!1);var n=t.getBoundingClientRect(),l=1,o=1;e&&Oe(t)&&(l=t.offsetWidth>0&&Bn(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&Bn(n.height)/t.offsetHeight||1);var s=(hn(t)?Be(t):window).visualViewport,i=!Bd()&&r,a=(n.left+(i&&s?s.offsetLeft:0))/l,u=(n.top+(i&&s?s.offsetTop:0))/o,c=n.width/l,d=n.height/o;return{width:c,height:d,top:u,right:a+c,bottom:u+d,left:a,x:a,y:u}}function Fl(t){var e=Mn(t),r=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:n}}function Md(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&Dl(r)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function hr(t){return Be(t).getComputedStyle(t)}function Iy(t){return["table","td","th"].indexOf(Ye(t))>=0}function Mr(t){return((hn(t)?t.ownerDocument:t.document)||window.document).documentElement}function No(t){return Ye(t)==="html"?t:t.assignedSlot||t.parentNode||(Dl(t)?t.host:null)||Mr(t)}function qc(t){return Oe(t)&&hr(t).position!=="fixed"?t.offsetParent:null}function Ai(t){for(var e=Be(t),r=qc(t);r&&Iy(r)&&hr(r).position==="static";)r=qc(r);return r&&(Ye(r)==="html"||Ye(r)==="body"&&hr(r).position==="static")?e:r||function(n){var l=/firefox/i.test(tl());if(/Trident/i.test(tl())&&Oe(n)&&hr(n).position==="fixed")return null;var o=No(n);for(Dl(o)&&(o=o.host);Oe(o)&&["html","body"].indexOf(Ye(o))<0;){var s=hr(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||l&&s.willChange==="filter"||l&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}(t)||e}function Wl(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Yn(t,e,r){return un(t,yo(e,r))}function Ld(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function jd(t,e){return e.reduce(function(r,n){return r[n]=t,r},{})}const Ty={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,r=t.state,n=t.name,l=t.options,o=r.elements.arrow,s=r.modifiersData.popperOffsets,i=Ke(r.placement),a=Wl(i),u=[ve,Pe].indexOf(i)>=0?"height":"width";if(o&&s){var c=function(E,w){return Ld(typeof(E=typeof E=="function"?E(Object.assign({},w.rects,{placement:w.placement})):E)!="number"?E:jd(E,Si))}(l.padding,r),d=Fl(o),f=a==="y"?be:ve,g=a==="y"?Re:Pe,b=r.rects.reference[u]+r.rects.reference[a]-s[a]-r.rects.popper[u],_=s[a]-r.rects.reference[a],S=Ai(o),U=S?a==="y"?S.clientHeight||0:S.clientWidth||0:0,D=b/2-_/2,G=c[f],$=U-d[u]-c[g],X=U/2-d[u]/2+D,B=Yn(G,X,$),A=a;r.modifiersData[n]=((e={})[A]=B,e.centerOffset=B-X,e)}},effect:function(t){var e=t.state,r=t.options.element,n=r===void 0?"[data-popper-arrow]":r;n!=null&&(typeof n!="string"||(n=e.elements.popper.querySelector(n)))&&Md(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ln(t){return t.split("-")[1]}var Oy={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Hc(t){var e,r=t.popper,n=t.popperRect,l=t.placement,o=t.variation,s=t.offsets,i=t.position,a=t.gpuAcceleration,u=t.adaptive,c=t.roundOffsets,d=t.isFixed,f=s.x,g=f===void 0?0:f,b=s.y,_=b===void 0?0:b,S=typeof c=="function"?c({x:g,y:_}):{x:g,y:_};g=S.x,_=S.y;var U=s.hasOwnProperty("x"),D=s.hasOwnProperty("y"),G=ve,$=be,X=window;if(u){var B=Ai(r),A="clientHeight",E="clientWidth";B===Be(r)&&hr(B=Mr(r)).position!=="static"&&i==="absolute"&&(A="scrollHeight",E="scrollWidth"),(l===be||(l===ve||l===Pe)&&o===bi)&&($=Re,_-=(d&&B===X&&X.visualViewport?X.visualViewport.height:B[A])-n.height,_*=a?1:-1),(l===ve||(l===be||l===Re)&&o===bi)&&(G=Pe,g-=(d&&B===X&&X.visualViewport?X.visualViewport.width:B[E])-n.width,g*=a?1:-1)}var w,M=Object.assign({position:i},u&&Oy),R=c===!0?function(nt){var st=nt.x,Z=nt.y,j=window.devicePixelRatio||1;return{x:Bn(st*j)/j||0,y:Bn(Z*j)/j||0}}({x:g,y:_}):{x:g,y:_};return g=R.x,_=R.y,a?Object.assign({},M,((w={})[$]=D?"0":"",w[G]=U?"0":"",w.transform=(X.devicePixelRatio||1)<=1?"translate("+g+"px, "+_+"px)":"translate3d("+g+"px, "+_+"px, 0)",w)):Object.assign({},M,((e={})[$]=D?_+"px":"",e[G]=U?g+"px":"",e.transform="",e))}var Fi={passive:!0},xy={left:"right",right:"left",bottom:"top",top:"bottom"};function Wi(t){return t.replace(/left|right|bottom|top/g,function(e){return xy[e]})}var Cy={start:"end",end:"start"};function zc(t){return t.replace(/start|end/g,function(e){return Cy[e]})}function $l(t){var e=Be(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function el(t){return Mn(Mr(t)).left+$l(t).scrollLeft}function Vl(t){var e=hr(t),r=e.overflow,n=e.overflowX,l=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+l+n)}function Ud(t){return["html","body","#document"].indexOf(Ye(t))>=0?t.ownerDocument.body:Oe(t)&&Vl(t)?t:Ud(No(t))}function li(t,e){var r;e===void 0&&(e=[]);var n=Ud(t),l=n===((r=t.ownerDocument)==null?void 0:r.body),o=Be(n),s=l?[o].concat(o.visualViewport||[],Vl(n)?n:[]):n,i=e.concat(s);return l?i:i.concat(li(No(s)))}function rl(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Kc(t,e,r){return e===Rd?rl(function(n,l){var o=Be(n),s=Mr(n),i=o.visualViewport,a=s.clientWidth,u=s.clientHeight,c=0,d=0;if(i){a=i.width,u=i.height;var f=Bd();(f||!f&&l==="fixed")&&(c=i.offsetLeft,d=i.offsetTop)}return{width:a,height:u,x:c+el(n),y:d}}(t,r)):hn(e)?function(n,l){var o=Mn(n,!1,l==="fixed");return o.top=o.top+n.clientTop,o.left=o.left+n.clientLeft,o.bottom=o.top+n.clientHeight,o.right=o.left+n.clientWidth,o.width=n.clientWidth,o.height=n.clientHeight,o.x=o.left,o.y=o.top,o}(e,r):rl(function(n){var l,o=Mr(n),s=$l(n),i=(l=n.ownerDocument)==null?void 0:l.body,a=un(o.scrollWidth,o.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),u=un(o.scrollHeight,o.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),c=-s.scrollLeft+el(n),d=-s.scrollTop;return hr(i||o).direction==="rtl"&&(c+=un(o.clientWidth,i?i.clientWidth:0)-a),{width:a,height:u,x:c,y:d}}(Mr(t)))}function Ry(t,e,r,n){var l=e==="clippingParents"?function(a){var u=li(No(a)),c=["absolute","fixed"].indexOf(hr(a).position)>=0&&Oe(a)?Ai(a):a;return hn(c)?u.filter(function(d){return hn(d)&&Md(d,c)&&Ye(d)!=="body"}):[]}(t):[].concat(e),o=[].concat(l,[r]),s=o[0],i=o.reduce(function(a,u){var c=Kc(t,u,n);return a.top=un(c.top,a.top),a.right=yo(c.right,a.right),a.bottom=yo(c.bottom,a.bottom),a.left=un(c.left,a.left),a},Kc(t,s,n));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function Nd(t){var e,r=t.reference,n=t.element,l=t.placement,o=l?Ke(l):null,s=l?Ln(l):null,i=r.x+r.width/2-n.width/2,a=r.y+r.height/2-n.height/2;switch(o){case be:e={x:i,y:r.y-n.height};break;case Re:e={x:i,y:r.y+r.height};break;case Pe:e={x:r.x+r.width,y:a};break;case ve:e={x:r.x-n.width,y:a};break;default:e={x:r.x,y:r.y}}var u=o?Wl(o):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case Pn:e[u]=e[u]-(r[c]/2-n[c]/2);break;case bi:e[u]=e[u]+(r[c]/2-n[c]/2)}}return e}function vi(t,e){e===void 0&&(e={});var r=e,n=r.placement,l=n===void 0?t.placement:n,o=r.strategy,s=o===void 0?t.strategy:o,i=r.boundary,a=i===void 0?"clippingParents":i,u=r.rootBoundary,c=u===void 0?Rd:u,d=r.elementContext,f=d===void 0?Kn:d,g=r.altBoundary,b=g!==void 0&&g,_=r.padding,S=_===void 0?0:_,U=Ld(typeof S!="number"?S:jd(S,Si)),D=f===Kn?"reference":Kn,G=t.rects.popper,$=t.elements[b?D:f],X=Ry(hn($)?$:$.contextElement||Mr(t.elements.popper),a,c,s),B=Mn(t.elements.reference),A=Nd({reference:B,element:G,placement:l}),E=rl(Object.assign({},G,A)),w=f===Kn?E:B,M={top:X.top-w.top+U.top,bottom:w.bottom-X.bottom+U.bottom,left:X.left-w.left+U.left,right:w.right-X.right+U.right},R=t.modifiersData.offset;if(f===Kn&&R){var nt=R[l];Object.keys(M).forEach(function(st){var Z=[Pe,Re].indexOf(st)>=0?1:-1,j=[be,Re].indexOf(st)>=0?"y":"x";M[st]+=nt[j]*Z})}return M}function Py(t,e){e===void 0&&(e={});var r=e,n=r.placement,l=r.boundary,o=r.rootBoundary,s=r.padding,i=r.flipVariations,a=r.allowedAutoPlacements,u=a===void 0?Pd:a,c=Ln(n),d=c?i?Vc:Vc.filter(function(b){return Ln(b)===c}):Si,f=d.filter(function(b){return u.indexOf(b)>=0});f.length===0&&(f=d);var g=f.reduce(function(b,_){return b[_]=vi(t,{placement:_,boundary:l,rootBoundary:o,padding:s})[Ke(_)],b},{});return Object.keys(g).sort(function(b,_){return g[b]-g[_]})}const By={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,r=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var l=r.mainAxis,o=l===void 0||l,s=r.altAxis,i=s===void 0||s,a=r.fallbackPlacements,u=r.padding,c=r.boundary,d=r.rootBoundary,f=r.altBoundary,g=r.flipVariations,b=g===void 0||g,_=r.allowedAutoPlacements,S=e.options.placement,U=Ke(S),D=a||(U===S||!b?[Wi(S)]:function(k){if(Ke(k)===Za)return[];var q=Wi(k);return[zc(k),q,zc(q)]}(S)),G=[S].concat(D).reduce(function(k,q){return k.concat(Ke(q)===Za?Py(e,{placement:q,boundary:c,rootBoundary:d,padding:u,flipVariations:b,allowedAutoPlacements:_}):q)},[]),$=e.rects.reference,X=e.rects.popper,B=new Map,A=!0,E=G[0],w=0;w=0,Z=st?"width":"height",j=vi(e,{placement:M,boundary:c,rootBoundary:d,altBoundary:f,padding:u}),N=st?nt?Pe:ve:nt?Re:be;$[Z]>X[Z]&&(N=Wi(N));var F=Wi(N),it=[];if(o&&it.push(j[R]<=0),i&&it.push(j[N]<=0,j[F]<=0),it.every(function(k){return k})){E=M,A=!1;break}B.set(M,it)}if(A)for(var J=function(k){var q=G.find(function(et){var ot=B.get(et);if(ot)return ot.slice(0,k).every(function(at){return at})});if(q)return E=q,"break"},Y=b?3:1;Y>0&&J(Y)!=="break";Y--);e.placement!==E&&(e.modifiersData[n]._skip=!0,e.placement=E,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Gc(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function Qc(t){return[be,Pe,Re,ve].some(function(e){return t[e]>=0})}const My={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,r=t.options,n=t.name,l=r.offset,o=l===void 0?[0,0]:l,s=Pd.reduce(function(c,d){return c[d]=function(f,g,b){var _=Ke(f),S=[ve,be].indexOf(_)>=0?-1:1,U=typeof b=="function"?b(Object.assign({},g,{placement:f})):b,D=U[0],G=U[1];return D=D||0,G=(G||0)*S,[ve,Pe].indexOf(_)>=0?{x:G,y:D}:{x:D,y:G}}(d,e.rects,o),c},{}),i=s[e.placement],a=i.x,u=i.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=a,e.modifiersData.popperOffsets.y+=u),e.modifiersData[n]=s}},Ly={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,r=t.options,n=t.name,l=r.mainAxis,o=l===void 0||l,s=r.altAxis,i=s!==void 0&&s,a=r.boundary,u=r.rootBoundary,c=r.altBoundary,d=r.padding,f=r.tether,g=f===void 0||f,b=r.tetherOffset,_=b===void 0?0:b,S=vi(e,{boundary:a,rootBoundary:u,padding:d,altBoundary:c}),U=Ke(e.placement),D=Ln(e.placement),G=!D,$=Wl(U),X=$==="x"?"y":"x",B=e.modifiersData.popperOffsets,A=e.rects.reference,E=e.rects.popper,w=typeof _=="function"?_(Object.assign({},e.rects,{placement:e.placement})):_,M=typeof w=="number"?{mainAxis:w,altAxis:w}:Object.assign({mainAxis:0,altAxis:0},w),R=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,nt={x:0,y:0};if(B){if(o){var st,Z=$==="y"?be:ve,j=$==="y"?Re:Pe,N=$==="y"?"height":"width",F=B[$],it=F+S[Z],J=F-S[j],Y=g?-E[N]/2:0,k=D===Pn?A[N]:E[N],q=D===Pn?-E[N]:-A[N],et=e.elements.arrow,ot=g&&et?Fl(et):{width:0,height:0},at=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},ut=at[Z],dt=at[j],H=Yn(0,A[N],ot[N]),rt=G?A[N]/2-Y-H-ut-M.mainAxis:k-H-ut-M.mainAxis,tt=G?-A[N]/2+Y+H+dt+M.mainAxis:q+H+dt+M.mainAxis,P=e.elements.arrow&&Ai(e.elements.arrow),W=P?$==="y"?P.clientTop||0:P.clientLeft||0:0,C=(st=R==null?void 0:R[$])!=null?st:0,Q=F+tt-C,h=Yn(g?yo(it,F+rt-C-W):it,F,g?un(J,Q):J);B[$]=h,nt[$]=h-F}if(i){var p,v=$==="x"?be:ve,O=$==="x"?Re:Pe,x=B[X],I=X==="y"?"height":"width",m=x+S[v],y=x-S[O],T=[be,ve].indexOf(U)!==-1,L=(p=R==null?void 0:R[X])!=null?p:0,z=T?m:x-A[I]-E[I]-L+M.altAxis,V=T?x+A[I]+E[I]-L-M.altAxis:y,lt=g&&T?function(ct,yt,bt){var wt=Yn(ct,yt,bt);return wt>bt?bt:wt}(z,x,V):Yn(g?z:m,x,g?V:y);B[X]=lt,nt[X]=lt-x}e.modifiersData[n]=nt}},requiresIfExists:["offset"]};function jy(t,e,r){r===void 0&&(r=!1);var n,l,o=Oe(e),s=Oe(e)&&function(d){var f=d.getBoundingClientRect(),g=Bn(f.width)/d.offsetWidth||1,b=Bn(f.height)/d.offsetHeight||1;return g!==1||b!==1}(e),i=Mr(e),a=Mn(t,s,r),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!r)&&((Ye(e)!=="body"||Vl(i))&&(u=(n=e)!==Be(n)&&Oe(n)?{scrollLeft:(l=n).scrollLeft,scrollTop:l.scrollTop}:$l(n)),Oe(e)?((c=Mn(e,!0)).x+=e.clientLeft,c.y+=e.clientTop):i&&(c.x=el(i))),{x:a.left+u.scrollLeft-c.x,y:a.top+u.scrollTop-c.y,width:a.width,height:a.height}}function Uy(t){var e=new Map,r=new Set,n=[];function l(o){r.add(o.name),[].concat(o.requires||[],o.requiresIfExists||[]).forEach(function(s){if(!r.has(s)){var i=e.get(s);i&&l(i)}}),n.push(o)}return t.forEach(function(o){e.set(o.name,o)}),t.forEach(function(o){r.has(o.name)||l(o)}),n}function Ny(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}var Yc={placement:"bottom",modifiers:[],strategy:"absolute"};function Jc(){for(var t=arguments.length,e=new Array(t),r=0;r{throw TypeError(t)};var Ud=(t,e,r)=>e in t?jd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var zt=(t,e,r)=>Ud(t,typeof e!="symbol"?e+"":e,r),No=(t,e,r)=>e.has(t)||Gl("Cannot "+r);var z=(t,e,r)=>(No(t,e,"read from private field"),r?r.call(t):e.get(t)),Rt=(t,e,r)=>e.has(t)?Gl("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),St=(t,e,r,n)=>(No(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Et=(t,e,r)=>(No(t,e,"access private method"),r);var Ii=(t,e,r,n)=>({set _(l){St(t,e,l,r)},get _(){return z(t,e,n)}});const to=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{};/** -* @vue/shared v3.5.12 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function il(t){const e=Object.create(null);for(const r of t.split(","))e[r]=1;return r=>r in e}const Ut={},In=[],cr=()=>{},Nd=()=>!1,yo=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),ol=t=>t.startsWith("onUpdate:"),Xt=Object.assign,sl=(t,e)=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)},Dd=Object.prototype.hasOwnProperty,Pt=(t,e)=>Dd.call(t,e),At=Array.isArray,Tn=t=>bo(t)==="[object Map]",Zc=t=>bo(t)==="[object Set]",Tt=t=>typeof t=="function",qt=t=>typeof t=="string",dr=t=>typeof t=="symbol",Wt=t=>t!==null&&typeof t=="object",th=t=>(Wt(t)||Tt(t))&&Tt(t.then)&&Tt(t.catch),eh=Object.prototype.toString,bo=t=>eh.call(t),rh=t=>bo(t)==="[object Object]",al=t=>qt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Jn=il(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),vo=t=>{const e=Object.create(null);return r=>e[r]||(e[r]=t(r))},Fd=/-(\w)/g,xe=vo(t=>t.replace(Fd,(e,r)=>r?r.toUpperCase():"")),Wd=/\B([A-Z])/g,Dr=vo(t=>t.replace(Wd,"-$1").toLowerCase()),wo=vo(t=>t.charAt(0).toUpperCase()+t.slice(1)),Do=vo(t=>t?`on${wo(t)}`:""),Br=(t,e)=>!Object.is(t,e),Fo=(t,...e)=>{for(let r=0;r{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:r})},$d=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let Ql;const eo=()=>Ql||(Ql=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:to!==void 0?to:{});function _o(t){if(At(t)){const e={};for(let r=0;r{if(r){const n=r.split(qd);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function Eo(t){let e="";if(qt(t))e=t;else if(At(t))for(let r=0;r!(!t||t.__v_isRef!==!0),Gd=t=>qt(t)?t:t==null?"":At(t)||Wt(t)&&(t.toString===eh||!Tt(t.toString))?oh(t)?Gd(t.value):JSON.stringify(t,sh,2):String(t),sh=(t,e)=>oh(e)?sh(t,e.value):Tn(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((r,[n,l],o)=>(r[Wo(n,o)+" =>"]=l,r),{})}:Zc(e)?{[`Set(${e.size})`]:[...e.values()].map(r=>Wo(r))}:dr(e)?Wo(e):!Wt(e)||At(e)||rh(e)?e:String(e),Wo=(t,e="")=>{var r;return dr(t)?`Symbol(${(r=t.description)!=null?r:e})`:t};/** -* @vue/reactivity v3.5.12 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let ce,Ft;class ah{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ce,!e&&ce&&(this.index=(ce.scopes||(ce.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,r;if(this._isPaused=!0,this.scopes)for(e=0,r=this.scopes.length;e0)return;if(Zn){let e=Zn;for(Zn=void 0;e;){const r=e.next;e.next=void 0,e.flags&=-9,e=r}}let t;for(;Xn;){let e=Xn;for(Xn=void 0;e;){const r=e.next;if(e.next=void 0,e.flags&=-9,1&e.flags)try{e.trigger()}catch(n){t||(t=n)}e=r}}if(t)throw t}function ph(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function dh(t){let e,r=t.depsTail,n=r;for(;n;){const l=n.prevDep;n.version===-1?(n===r&&(r=l),cl(n),Qd(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=l}t.deps=e,t.depsTail=r}function Os(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(gh(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function gh(t){if(4&t.flags&&!(16&t.flags)||(t.flags&=-17,t.globalVersion===ci))return;t.globalVersion=ci;const e=t.dep;if(t.flags|=2,e.version>0&&!t.isSSR&&t.deps&&!Os(t))return void(t.flags&=-3);const r=Ft,n=je;Ft=t,je=!0;try{ph(t);const l=t.fn(t._value);(e.version===0||Br(l,t._value))&&(t._value=l,e.version++)}catch(l){throw e.version++,l}finally{Ft=r,je=n,dh(t),t.flags&=-3}}function cl(t,e=!1){const{dep:r,prevSub:n,nextSub:l}=t;if(n&&(n.nextSub=l,t.prevSub=void 0),l&&(l.prevSub=n,t.nextSub=void 0),r.subs===t&&(r.subs=n,!n&&r.computed)){r.computed.flags&=-5;for(let o=r.computed.deps;o;o=o.nextDep)cl(o,!0)}e||--r.sc||!r.map||r.map.delete(r.key)}function Qd(t){const{prevDep:e,nextDep:r}=t;e&&(e.nextDep=r,t.prevDep=void 0),r&&(r.prevDep=e,t.nextDep=void 0)}let je=!0;const mh=[];function jr(){mh.push(je),je=!1}function Ur(){const t=mh.pop();je=t===void 0||t}function Yl(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const r=Ft;Ft=void 0;try{e()}finally{Ft=r}}}let ci=0;class Yd{constructor(e,r){this.sub=e,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class hl{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!Ft||!je||Ft===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==Ft)r=this.activeLink=new Yd(Ft,this),Ft.deps?(r.prevDep=Ft.depsTail,Ft.depsTail.nextDep=r,Ft.depsTail=r):Ft.deps=Ft.depsTail=r,yh(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const n=r.nextDep;n.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=n),r.prevDep=Ft.depsTail,r.nextDep=void 0,Ft.depsTail.nextDep=r,Ft.depsTail=r,Ft.deps===r&&(Ft.deps=n)}return r}trigger(e){this.version++,ci++,this.notify(e)}notify(e){ll();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{ul()}}}function yh(t){if(t.dep.sc++,4&t.sub.flags){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)yh(n)}const r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}const ro=new WeakMap,on=Symbol(""),xs=Symbol(""),hi=Symbol("");function ae(t,e,r){if(je&&Ft){let n=ro.get(t);n||ro.set(t,n=new Map);let l=n.get(r);l||(n.set(r,l=new hl),l.map=n,l.key=r),l.track()}}function or(t,e,r,n,l,o){const s=ro.get(t);if(!s)return void ci++;const i=a=>{a&&a.trigger()};if(ll(),e==="clear")s.forEach(i);else{const a=At(t),u=a&&al(r);if(a&&r==="length"){const c=Number(n);s.forEach((d,f)=>{(f==="length"||f===hi||!dr(f)&&f>=c)&&i(d)})}else switch((r!==void 0||s.has(void 0))&&i(s.get(r)),u&&i(s.get(hi)),e){case"add":a?u&&i(s.get("length")):(i(s.get(on)),Tn(t)&&i(s.get(xs)));break;case"delete":a||(i(s.get(on)),Tn(t)&&i(s.get(xs)));break;case"set":Tn(t)&&i(s.get(on))}}ul()}function yn(t){const e=Ct(t);return e===t?e:(ae(e,0,hi),Oe(t)?e:e.map(le))}function So(t){return ae(t=Ct(t),0,hi),t}const Jd={__proto__:null,[Symbol.iterator](){return Vo(this,Symbol.iterator,le)},concat(...t){return yn(this).concat(...t.map(e=>At(e)?yn(e):e))},entries(){return Vo(this,"entries",t=>(t[1]=le(t[1]),t))},every(t,e){return Je(this,"every",t,e,void 0,arguments)},filter(t,e){return Je(this,"filter",t,e,r=>r.map(le),arguments)},find(t,e){return Je(this,"find",t,e,le,arguments)},findIndex(t,e){return Je(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Je(this,"findLast",t,e,le,arguments)},findLastIndex(t,e){return Je(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Je(this,"forEach",t,e,void 0,arguments)},includes(...t){return qo(this,"includes",t)},indexOf(...t){return qo(this,"indexOf",t)},join(t){return yn(this).join(t)},lastIndexOf(...t){return qo(this,"lastIndexOf",t)},map(t,e){return Je(this,"map",t,e,void 0,arguments)},pop(){return Dn(this,"pop")},push(...t){return Dn(this,"push",t)},reduce(t,...e){return Jl(this,"reduce",t,e)},reduceRight(t,...e){return Jl(this,"reduceRight",t,e)},shift(){return Dn(this,"shift")},some(t,e){return Je(this,"some",t,e,void 0,arguments)},splice(...t){return Dn(this,"splice",t)},toReversed(){return yn(this).toReversed()},toSorted(t){return yn(this).toSorted(t)},toSpliced(...t){return yn(this).toSpliced(...t)},unshift(...t){return Dn(this,"unshift",t)},values(){return Vo(this,"values",le)}};function Vo(t,e,r){const n=So(t),l=n[e]();return n===t||Oe(t)||(l._next=l.next,l.next=()=>{const o=l._next();return o.value&&(o.value=r(o.value)),o}),l}const Xd=Array.prototype;function Je(t,e,r,n,l,o){const s=So(t),i=s!==t&&!Oe(t),a=s[e];if(a!==Xd[e]){const d=a.apply(t,o);return i?le(d):d}let u=r;s!==t&&(i?u=function(d,f){return r.call(this,le(d),f,t)}:r.length>2&&(u=function(d,f){return r.call(this,d,f,t)}));const c=a.call(s,u,n);return i&&l?l(c):c}function Jl(t,e,r,n){const l=So(t);let o=r;return l!==t&&(Oe(t)?r.length>3&&(o=function(s,i,a){return r.call(this,s,i,a,t)}):o=function(s,i,a){return r.call(this,s,le(i),a,t)}),l[e](o,...n)}function qo(t,e,r){const n=Ct(t);ae(n,0,hi);const l=n[e](...r);return l!==-1&&l!==!1||!dl(r[0])?l:(r[0]=Ct(r[0]),n[e](...r))}function Dn(t,e,r=[]){jr(),ll();const n=Ct(t)[e].apply(t,r);return ul(),Ur(),n}const Zd=il("__proto__,__v_isRef,__isVue"),bh=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(dr));function tg(t){dr(t)||(t=String(t));const e=Ct(this);return ae(e,0,t),e.hasOwnProperty(t)}class vh{constructor(e=!1,r=!1){this._isReadonly=e,this._isShallow=r}get(e,r,n){const l=this._isReadonly,o=this._isShallow;if(r==="__v_isReactive")return!l;if(r==="__v_isReadonly")return l;if(r==="__v_isShallow")return o;if(r==="__v_raw")return n===(l?o?ug:Sh:o?Eh:_h).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const s=At(e);if(!l){let a;if(s&&(a=Jd[r]))return a;if(r==="hasOwnProperty")return tg}const i=Reflect.get(e,r,Yt(e)?e:n);return(dr(r)?bh.has(r):Zd(r))?i:(l||ae(e,0,r),o?i:Yt(i)?s&&al(r)?i:i.value:Wt(i)?l?kh(i):_i(i):i)}}class wh extends vh{constructor(e=!1){super(!1,e)}set(e,r,n,l){let o=e[r];if(!this._isShallow){const a=hn(o);if(Oe(n)||hn(n)||(o=Ct(o),n=Ct(n)),!At(e)&&Yt(o)&&!Yt(n))return!a&&(o.value=n,!0)}const s=At(e)&&al(r)?Number(r)t,Ti=t=>Reflect.getPrototypeOf(t);function Oi(t){return function(...e){return t!=="delete"&&(t==="clear"?void 0:this)}}function og(t,e){const r={get(n){const l=this.__v_raw,o=Ct(l),s=Ct(n);t||(Br(n,s)&&ae(o,0,n),ae(o,0,s));const{has:i}=Ti(o),a=e?Ho:t?zo:le;return i.call(o,n)?a(l.get(n)):i.call(o,s)?a(l.get(s)):void(l!==o&&l.get(n))},get size(){const n=this.__v_raw;return!t&&ae(Ct(n),0,on),Reflect.get(n,"size",n)},has(n){const l=this.__v_raw,o=Ct(l),s=Ct(n);return t||(Br(n,s)&&ae(o,0,n),ae(o,0,s)),n===s?l.has(n):l.has(n)||l.has(s)},forEach(n,l){const o=this,s=o.__v_raw,i=Ct(s),a=e?Ho:t?zo:le;return!t&&ae(i,0,on),s.forEach((u,c)=>n.call(l,a(u),a(c),o))}};return Xt(r,t?{add:Oi("add"),set:Oi("set"),delete:Oi("delete"),clear:Oi("clear")}:{add(n){e||Oe(n)||hn(n)||(n=Ct(n));const l=Ct(this);return Ti(l).has.call(l,n)||(l.add(n),or(l,"add",n,n)),this},set(n,l){e||Oe(l)||hn(l)||(l=Ct(l));const o=Ct(this),{has:s,get:i}=Ti(o);let a=s.call(o,n);a||(n=Ct(n),a=s.call(o,n));const u=i.call(o,n);return o.set(n,l),a?Br(l,u)&&or(o,"set",n,l):or(o,"add",n,l),this},delete(n){const l=Ct(this),{has:o,get:s}=Ti(l);let i=o.call(l,n);i||(n=Ct(n),i=o.call(l,n)),s&&s.call(l,n);const a=l.delete(n);return i&&or(l,"delete",n,void 0),a},clear(){const n=Ct(this),l=n.size!==0,o=n.clear();return l&&or(n,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(n=>{r[n]=function(l,o,s){return function(...i){const a=this.__v_raw,u=Ct(a),c=Tn(u),d=l==="entries"||l===Symbol.iterator&&c,f=l==="keys"&&c,m=a[l](...i),b=s?Ho:o?zo:le;return!o&&ae(u,0,f?xs:on),{next(){const{value:_,done:S}=m.next();return S?{value:_,done:S}:{value:d?[b(_[0]),b(_[1])]:b(_),done:S}},[Symbol.iterator](){return this}}}}(n,t,e)}),r}function fl(t,e){const r=og(t,e);return(n,l,o)=>l==="__v_isReactive"?!t:l==="__v_isReadonly"?t:l==="__v_raw"?n:Reflect.get(Pt(r,l)&&l in n?r:n,l,o)}const sg={get:fl(!1,!1)},ag={get:fl(!1,!0)},lg={get:fl(!0,!1)},_h=new WeakMap,Eh=new WeakMap,Sh=new WeakMap,ug=new WeakMap;function cg(t){return t.__v_skip||!Object.isExtensible(t)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>bo(e).slice(8,-1))(t))}function _i(t){return hn(t)?t:pl(t,!1,rg,sg,_h)}function Ah(t){return pl(t,!1,ig,ag,Eh)}function kh(t){return pl(t,!0,ng,lg,Sh)}function pl(t,e,r,n,l){if(!Wt(t)||t.__v_raw&&(!e||!t.__v_isReactive))return t;const o=l.get(t);if(o)return o;const s=cg(t);if(s===0)return t;const i=new Proxy(t,s===2?n:r);return l.set(t,i),i}function Mr(t){return hn(t)?Mr(t.__v_raw):!(!t||!t.__v_isReactive)}function hn(t){return!(!t||!t.__v_isReadonly)}function Oe(t){return!(!t||!t.__v_isShallow)}function dl(t){return!!t&&!!t.__v_raw}function Ct(t){const e=t&&t.__v_raw;return e?Ct(e):t}function gl(t){return!Pt(t,"__v_skip")&&Object.isExtensible(t)&&nh(t,"__v_skip",!0),t}const le=t=>Wt(t)?_i(t):t,zo=t=>Wt(t)?kh(t):t;function Yt(t){return!!t&&t.__v_isRef===!0}function ml(t){return Ih(t,!1)}function Ih(t,e){return Yt(t)?t:new hg(t,e)}class hg{constructor(e,r){this.dep=new hl,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?e:Ct(e),this._value=r?e:le(e),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(e){const r=this._rawValue,n=this.__v_isShallow||Oe(e)||hn(e);e=n?e:Ct(e),Br(e,r)&&(this._rawValue=e,this._value=n?e:le(e),this.dep.trigger())}}function On(t){return Yt(t)?t.value:t}const fg={get:(t,e,r)=>e==="__v_raw"?t:On(Reflect.get(t,e,r)),set:(t,e,r,n)=>{const l=t[e];return Yt(l)&&!Yt(r)?(l.value=r,!0):Reflect.set(t,e,r,n)}};function Th(t){return Mr(t)?t:new Proxy(t,fg)}class pg{constructor(e,r,n){this._object=e,this._key=r,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return function(e,r){const n=ro.get(e);return n&&n.get(r)}(Ct(this._object),this._key)}}function dg(t,e,r){const n=t[e];return Yt(n)?n:new pg(t,e,r)}class gg{constructor(e,r,n){this.fn=e,this.setter=r,this._value=void 0,this.dep=new hl(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ci-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&Ft!==this)return fh(this,!0),!0}get value(){const e=this.dep.track();return gh(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}const xi={},Ci=new WeakMap;let Wr;function mg(t,e,r=Ut){const{immediate:n,deep:l,once:o,scheduler:s,augmentJob:i,call:a}=r,u=$=>l?$:Oe($)||l===!1||l===0?sr($,1):sr($);let c,d,f,m,b=!1,_=!1;if(Yt(t)?(d=()=>t.value,b=Oe(t)):Mr(t)?(d=()=>u(t),b=!0):At(t)?(_=!0,b=t.some($=>Mr($)||Oe($)),d=()=>t.map($=>Yt($)?$.value:Mr($)?u($):Tt($)?a?a($,2):$():void 0)):d=Tt(t)?e?a?()=>a(t,2):t:()=>{if(f){jr();try{f()}finally{Ur()}}const $=Wr;Wr=c;try{return a?a(t,3,[m]):t(m)}finally{Wr=$}}:cr,e&&l){const $=d,Y=l===!0?1/0:l;d=()=>sr($(),Y)}const S=uh(),U=()=>{c.stop(),S&&sl(S.effects,c)};if(o&&e){const $=e;e=(...Y)=>{$(...Y),U()}}let D=_?new Array(t.length).fill(xi):xi;const K=$=>{if(1&c.flags&&(c.dirty||$))if(e){const Y=c.run();if(l||b||(_?Y.some((B,I)=>Br(B,D[I])):Br(Y,D))){f&&f();const B=Wr;Wr=c;try{const I=[Y,D===xi?void 0:_&&D[0]===xi?[]:D,m];a?a(e,3,I):e(...I),D=Y}finally{Wr=B}}}else c.run()};return i&&i(K),c=new ch(d),c.scheduler=s?()=>s(K,!1):K,m=$=>function(Y,B=!1,I=Wr){if(I){let E=Ci.get(I);E||Ci.set(I,E=[]),E.push(Y)}}($,!1,c),f=c.onStop=()=>{const $=Ci.get(c);if($){if(a)a($,4);else for(const Y of $)Y();Ci.delete(c)}},e?n?K(!0):D=c.run():s?s(K.bind(null,!0),!0):c.run(),U.pause=c.pause.bind(c),U.resume=c.resume.bind(c),U.stop=U,U}function sr(t,e=1/0,r){if(e<=0||!Wt(t)||t.__v_skip||(r=r||new Set).has(t))return t;if(r.add(t),e--,Yt(t))sr(t.value,e,r);else if(At(t))for(let n=0;n{sr(n,e,r)});else if(rh(t)){for(const n in t)sr(t[n],e,r);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&sr(t[n],e,r)}return t}/** -* @vue/runtime-core v3.5.12 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Ei(t,e,r,n){try{return n?t(...n):t()}catch(l){Ao(l,e,r)}}function Ue(t,e,r,n){if(Tt(t)){const l=Ei(t,e,r,n);return l&&th(l)&&l.catch(o=>{Ao(o,e,r)}),l}if(At(t)){const l=[];for(let o=0;o=ti(r)?he.push(t):he.splice(function(n){let l=Ve+1,o=he.length;for(;l>>1,i=he[s],a=ti(i);ati(r)-ti(n));if(xn.length=0,Or)return void Or.push(...e);for(Or=e,_n=0;_nt.id==null?2&t.flags?-1:1/0:t.id;function Rh(t){try{for(Ve=0;Ve{n._d&&mu(-1);const o=io(e);let s;try{s=t(...l)}finally{io(o),n._d&&mu(1)}return s};return n._n=!0,n._c=!0,n._d=!0,n}function Dy(t,e){if(Zt===null)return t;const r=Oo(Zt),n=t.dirs||(t.dirs=[]);for(let l=0;lt.__isTeleport,Gn=t=>t&&(t.disabled||t.disabled===""),Zl=t=>typeof SVGElement<"u"&&t instanceof SVGElement,tu=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Ko=(t,e)=>{const r=t&&t.to;return qt(r)?e?e(r):null:r};function Ri(t,e,r,{o:{insert:n},m:l},o=2){o===0&&n(t.targetAnchor,e,r);const{el:s,anchor:i,shapeFlag:a,children:u,props:c}=t,d=o===2;if(d&&n(s,e,r),(!d||Gn(c))&&16&a)for(let f=0;f{16&D&&(l&&l.isCE&&(l.ce._teleportTarget=P),c(K,P,R,l,o,s,i,a))},w=()=>{const P=e.target=Ko(e.props,b),R=eu(P,e,_,m);P&&(s!=="svg"&&Zl(P)?s="svg":s!=="mathml"&&tu(P)&&(s="mathml"),U||(E(P,R),Pi(e,!1)))};U&&(E(r,I),Pi(e,!0)),(Y=e.props)&&(Y.defer||Y.defer==="")?de(w,o):w()}else{e.el=t.el,e.targetStart=t.targetStart;const B=e.anchor=t.anchor,I=e.target=t.target,E=e.targetAnchor=t.targetAnchor,w=Gn(t.props),P=w?r:I,R=w?B:E;if(s==="svg"||Zl(I)?s="svg":(s==="mathml"||tu(I))&&(s="mathml"),$?(f(t.dynamicChildren,$,P,l,o,s,i),kl(t,e,!0)):a||d(t,e,P,R,l,o,s,i,!1),U)w?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):Ri(e,r,B,u,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const et=e.target=Ko(e.props,b);et&&Ri(e,et,null,u,0)}else w&&Ri(e,I,E,u,1);Pi(e,U)}var Y},remove(t,e,r,{um:n,o:{remove:l}},o){const{shapeFlag:s,children:i,anchor:a,targetStart:u,targetAnchor:c,target:d,props:f}=t;if(d&&(l(u),l(c)),o&&l(a),16&s){const m=o||!Gn(f);for(let b=0;b{const e=t.subTree;return e.component?jh(e.component):e},bg={name:"BaseTransition",props:Lh,setup(t,{slots:e}){const r=af(),n=function(){const l={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return vl(()=>{l.isMounted=!0}),qh(()=>{l.isUnmounting=!0}),l}();return()=>{const l=e.default&&Dh(e.default(),!0);if(!l||!l.length)return;const o=Uh(l),s=Ct(t),{mode:i}=s;if(n.isLeaving)return Go(o);const a=ru(o);if(!a)return Go(o);let u=Cs(a,s,n,r,f=>u=f);a.type!==fe&&fi(a,u);const c=r.subTree,d=c&&ru(c);if(d&&d.type!==fe&&!tn(a,d)&&jh(r).type!==fe){const f=Cs(d,s,n,r);if(fi(d,f),i==="out-in"&&a.type!==fe)return n.isLeaving=!0,f.afterLeave=()=>{n.isLeaving=!1,8&r.job.flags||r.update(),delete f.afterLeave},Go(o);i==="in-out"&&a.type!==fe&&(f.delayLeave=(m,b,_)=>{Nh(n,d)[String(d.key)]=d,m[xr]=()=>{b(),m[xr]=void 0,delete u.delayedLeave},u.delayedLeave=_})}return o}}};function Uh(t){let e=t[0];if(t.length>1){for(const r of t)if(r.type!==fe){e=r;break}}return e}const vg=bg;function Nh(t,e){const{leavingVNodes:r}=t;let n=r.get(e.type);return n||(n=Object.create(null),r.set(e.type,n)),n}function Cs(t,e,r,n,l){const{appear:o,mode:s,persisted:i=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:f,onLeave:m,onAfterLeave:b,onLeaveCancelled:_,onBeforeAppear:S,onAppear:U,onAfterAppear:D,onAppearCancelled:K}=e,$=String(t.key),Y=Nh(r,t),B=(w,P)=>{w&&Ue(w,n,9,P)},I=(w,P)=>{const R=P[1];B(w,P),At(w)?w.every(et=>et.length<=1)&&R():w.length<=1&&R()},E={mode:s,persisted:i,beforeEnter(w){let P=a;if(!r.isMounted){if(!o)return;P=S||a}w[xr]&&w[xr](!0);const R=Y[$];R&&tn(t,R)&&R.el[xr]&&R.el[xr](),B(P,[w])},enter(w){let P=u,R=c,et=d;if(!r.isMounted){if(!o)return;P=U||u,R=D||c,et=K||d}let st=!1;const X=w[Bi]=j=>{st||(st=!0,B(j?et:R,[w]),E.delayedLeave&&E.delayedLeave(),w[Bi]=void 0)};P?I(P,[w,X]):X()},leave(w,P){const R=String(t.key);if(w[Bi]&&w[Bi](!0),r.isUnmounting)return P();B(f,[w]);let et=!1;const st=w[xr]=X=>{et||(et=!0,P(),B(X?_:b,[w]),w[xr]=void 0,Y[R]===t&&delete Y[R])};Y[R]=t,m?I(m,[w,st]):st()},clone(w){const P=Cs(w,e,r,n,l);return l&&l(P),P}};return E}function Go(t){if(ko(t))return(t=Nr(t)).children=null,t}function ru(t){if(!ko(t))return Mh(t.type)&&t.children?Uh(t.children):t;const{shapeFlag:e,children:r}=t;if(r){if(16&e)return r[0];if(32&e&&Tt(r.default))return r.default()}}function fi(t,e){6&t.shapeFlag&&t.component?(t.transition=e,fi(t.component.subTree,e)):128&t.shapeFlag?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function Dh(t,e=!1,r){let n=[],l=0;for(let o=0;o1)for(let o=0;oRs(b,e&&(At(e)?e[_]:e),r,n,l));if(An(n)&&!l)return;const o=4&n.shapeFlag?Oo(n.component):n.el,s=l?null:o,{i,r:a}=t,u=e&&e.r,c=i.refs===Ut?i.refs={}:i.refs,d=i.setupState,f=Ct(d),m=d===Ut?()=>!1:b=>Pt(f,b);if(u!=null&&u!==a&&(qt(u)?(c[u]=null,m(u)&&(d[u]=null)):Yt(u)&&(u.value=null)),Tt(a))Ei(a,i,12,[s,c]);else{const b=qt(a),_=Yt(a);if(b||_){const S=()=>{if(t.f){const U=b?m(a)?d[a]:c[a]:a.value;l?At(U)&&sl(U,o):At(U)?U.includes(o)||U.push(o):b?(c[a]=[o],m(a)&&(d[a]=c[a])):(a.value=[o],t.k&&(c[t.k]=a.value))}else b?(c[a]=s,m(a)&&(d[a]=s)):_&&(a.value=s,t.k&&(c[t.k]=s))};s?(S.id=-1,de(S,r)):S()}}}eo().requestIdleCallback,eo().cancelIdleCallback;const An=t=>!!t.type.__asyncLoader,ko=t=>t.type.__isKeepAlive;function wg(t,e){$h(t,"a",e)}function _g(t,e){$h(t,"da",e)}function $h(t,e,r=re){const n=t.__wdc||(t.__wdc=()=>{let l=r;for(;l;){if(l.isDeactivated)return;l=l.parent}return t()});if(Io(e,n,r),r){let l=r.parent;for(;l&&l.parent;)ko(l.parent.vnode)&&Eg(n,e,r,l),l=l.parent}}function Eg(t,e,r,n){const l=Io(e,t,n,!0);wl(()=>{sl(n[e],l)},r)}function Io(t,e,r=re,n=!1){if(r){const l=r[t]||(r[t]=[]),o=e.__weh||(e.__weh=(...s)=>{jr();const i=Si(r),a=Ue(e,r,t,s);return i(),Ur(),a});return n?l.unshift(o):l.push(o),o}}const gr=t=>(e,r=re)=>{gi&&t!=="sp"||Io(t,(...n)=>e(...n),r)},Vh=gr("bm"),vl=gr("m"),Sg=gr("bu"),Ag=gr("u"),qh=gr("bum"),wl=gr("um"),kg=gr("sp"),Ig=gr("rtg"),Tg=gr("rtc");function Og(t,e=re){Io("ec",t,e)}const _l="components";function Wy(t,e){return El(_l,t,!0,e)||t}const Hh=Symbol.for("v-ndc");function $y(t){return qt(t)?El(_l,t,!1)||t:t||Hh}function Vy(t){return El("directives",t)}function El(t,e,r=!0,n=!1){const l=Zt||re;if(l){const o=l.type;if(t===_l){const i=Yg(o,!1);if(i&&(i===e||i===xe(e)||i===wo(xe(e))))return o}const s=nu(l[t]||o[t],e)||nu(l.appContext[t],e);return!s&&n?o:s}}function nu(t,e){return t&&(t[e]||t[xe(e)]||t[wo(xe(e))])}function qy(t,e,r,n){let l;const o=r,s=At(t);if(s||qt(t)){let i=!1;s&&Mr(t)&&(i=!Oe(t),t=So(t)),l=new Array(t.length);for(let a=0,u=t.length;ae(i,a,void 0,o));else{const i=Object.keys(t);l=new Array(i.length);for(let a=0,u=i.length;a{const o=n.fn(...l);return o&&(o.key=n.key),o}:n.fn)}return t}function zy(t,e,r={},n,l){if(Zt.ce||Zt.parent&&An(Zt.parent)&&Zt.parent.ce)return e!=="default"&&(r.name=e),js(),Us(ge,null,[me("slot",r,n&&n())],64);let o=t[e];o&&o._c&&(o._d=!1),js();const s=o&&zh(o(r)),i=r.key||s&&s.key,a=Us(ge,{key:(i&&!dr(i)?i:`_${e}`)+(!s&&n?"_fb":"")},s||(n?n():[]),s&&t._===1?64:-2);return!l&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),o&&o._c&&(o._d=!0),a}function zh(t){return t.some(e=>!di(e)||e.type!==fe&&!(e.type===ge&&!zh(e.children)))?t:null}const Ps=t=>t?lf(t)?Oo(t):Ps(t.parent):null,ei=Xt(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Ps(t.parent),$root:t=>Ps(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Sl(t),$forceUpdate:t=>t.f||(t.f=()=>{bl(t.update)}),$nextTick:t=>t.n||(t.n=yl.bind(t.proxy)),$watch:t=>Dg.bind(t)}),Qo=(t,e)=>t!==Ut&&!t.__isScriptSetup&&Pt(t,e),xg={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:r,setupState:n,data:l,props:o,accessCache:s,type:i,appContext:a}=t;let u;if(e[0]!=="$"){const m=s[e];if(m!==void 0)switch(m){case 1:return n[e];case 2:return l[e];case 4:return r[e];case 3:return o[e]}else{if(Qo(n,e))return s[e]=1,n[e];if(l!==Ut&&Pt(l,e))return s[e]=2,l[e];if((u=t.propsOptions[0])&&Pt(u,e))return s[e]=3,o[e];if(r!==Ut&&Pt(r,e))return s[e]=4,r[e];Bs&&(s[e]=0)}}const c=ei[e];let d,f;return c?(e==="$attrs"&&ae(t.attrs,0,""),c(t)):(d=i.__cssModules)&&(d=d[e])?d:r!==Ut&&Pt(r,e)?(s[e]=4,r[e]):(f=a.config.globalProperties,Pt(f,e)?f[e]:void 0)},set({_:t},e,r){const{data:n,setupState:l,ctx:o}=t;return Qo(l,e)?(l[e]=r,!0):n!==Ut&&Pt(n,e)?(n[e]=r,!0):!Pt(t.props,e)&&(e[0]!=="$"||!(e.slice(1)in t))&&(o[e]=r,!0)},has({_:{data:t,setupState:e,accessCache:r,ctx:n,appContext:l,propsOptions:o}},s){let i;return!!r[s]||t!==Ut&&Pt(t,s)||Qo(e,s)||(i=o[0])&&Pt(i,s)||Pt(n,s)||Pt(ei,s)||Pt(l.config.globalProperties,s)},defineProperty(t,e,r){return r.get!=null?t._.accessCache[e]=0:Pt(r,"value")&&this.set(t,e,r.value,null),Reflect.defineProperty(t,e,r)}};function iu(t){return At(t)?t.reduce((e,r)=>(e[r]=null,e),{}):t}let Bs=!0;function Cg(t){const e=Sl(t),r=t.proxy,n=t.ctx;Bs=!1,e.beforeCreate&&ou(e.beforeCreate,t,"bc");const{data:l,computed:o,methods:s,watch:i,provide:a,inject:u,created:c,beforeMount:d,mounted:f,beforeUpdate:m,updated:b,activated:_,deactivated:S,beforeDestroy:U,beforeUnmount:D,destroyed:K,unmounted:$,render:Y,renderTracked:B,renderTriggered:I,errorCaptured:E,serverPrefetch:w,expose:P,inheritAttrs:R,components:et,directives:st,filters:X}=e;if(u&&function(N,V){At(N)&&(N=Ms(N));for(const nt in N){const Q=N[nt];let G;G=Wt(Q)?"default"in Q?Ge(Q.from||nt,Q.default,!0):Ge(Q.from||nt):Ge(Q),Yt(G)?Object.defineProperty(V,nt,{enumerable:!0,configurable:!0,get:()=>G.value,set:T=>G.value=T}):V[nt]=G}}(u,n,null),s)for(const N in s){const V=s[N];Tt(V)&&(n[N]=V.bind(r))}if(l){const N=l.call(r,r);Wt(N)&&(t.data=_i(N))}if(Bs=!0,o)for(const N in o){const V=o[N],nt=Tt(V)?V.bind(r,r):Tt(V.get)?V.get.bind(r,r):cr,Q=!Tt(V)&&Tt(V.set)?V.set.bind(r):cr,G=Ie({get:nt,set:Q});Object.defineProperty(n,N,{enumerable:!0,configurable:!0,get:()=>G.value,set:T=>G.value=T})}if(i)for(const N in i)Kh(i[N],n,r,N);if(a){const N=Tt(a)?a.call(r):a;Reflect.ownKeys(N).forEach(V=>{$i(V,N[V])})}function j(N,V){At(V)?V.forEach(nt=>N(nt.bind(r))):V&&N(V.bind(r))}if(c&&ou(c,t,"c"),j(Vh,d),j(vl,f),j(Sg,m),j(Ag,b),j(wg,_),j(_g,S),j(Og,E),j(Tg,B),j(Ig,I),j(qh,D),j(wl,$),j(kg,w),At(P))if(P.length){const N=t.exposed||(t.exposed={});P.forEach(V=>{Object.defineProperty(N,V,{get:()=>r[V],set:nt=>r[V]=nt})})}else t.exposed||(t.exposed={});Y&&t.render===cr&&(t.render=Y),R!=null&&(t.inheritAttrs=R),et&&(t.components=et),st&&(t.directives=st),w&&Wh(t)}function ou(t,e,r){Ue(At(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,r)}function Kh(t,e,r,n){let l=n.includes(".")?tf(r,n):()=>r[n];if(qt(t)){const o=e[t];Tt(o)&&ri(l,o)}else if(Tt(t))ri(l,t.bind(r));else if(Wt(t))if(At(t))t.forEach(o=>Kh(o,e,r,n));else{const o=Tt(t.handler)?t.handler.bind(r):e[t.handler];Tt(o)&&ri(l,o,t)}}function Sl(t){const e=t.type,{mixins:r,extends:n}=e,{mixins:l,optionsCache:o,config:{optionMergeStrategies:s}}=t.appContext,i=o.get(e);let a;return i?a=i:l.length||r||n?(a={},l.length&&l.forEach(u=>oo(a,u,s,!0)),oo(a,e,s)):a=e,Wt(e)&&o.set(e,a),a}function oo(t,e,r,n=!1){const{mixins:l,extends:o}=e;o&&oo(t,o,r,!0),l&&l.forEach(s=>oo(t,s,r,!0));for(const s in e)if(!(n&&s==="expose")){const i=Rg[s]||r&&r[s];t[s]=i?i(t[s],e[s]):e[s]}return t}const Rg={data:su,props:au,emits:au,methods:Fn,computed:Fn,beforeCreate:ue,created:ue,beforeMount:ue,mounted:ue,beforeUpdate:ue,updated:ue,beforeDestroy:ue,beforeUnmount:ue,destroyed:ue,unmounted:ue,activated:ue,deactivated:ue,errorCaptured:ue,serverPrefetch:ue,components:Fn,directives:Fn,watch:function(t,e){if(!t)return e;if(!e)return t;const r=Xt(Object.create(null),t);for(const n in e)r[n]=ue(t[n],e[n]);return r},provide:su,inject:function(t,e){return Fn(Ms(t),Ms(e))}};function su(t,e){return e?t?function(){return Xt(Tt(t)?t.call(this,this):t,Tt(e)?e.call(this,this):e)}:e:t}function Ms(t){if(At(t)){const e={};for(let r=0;r(o.has(u)||(u&&Tt(u.install)?(o.add(u),u.install(a,...c)):Tt(u)&&(o.add(u),u(a,...c))),a),mixin:u=>(l.mixins.includes(u)||l.mixins.push(u),a),component:(u,c)=>c?(l.components[u]=c,a):l.components[u],directive:(u,c)=>c?(l.directives[u]=c,a):l.directives[u],mount(u,c,d){if(!i){const f=a._ceVNode||me(r,n);return f.appContext=l,d===!0?d="svg":d===!1&&(d=void 0),c&&e?e(f,u):t(f,u,d),i=!0,a._container=u,u.__vue_app__=a,Oo(f.component)}},onUnmount(u){s.push(u)},unmount(){i&&(Ue(s,a._instance,16),t(null,a._container),delete a._container.__vue_app__)},provide:(u,c)=>(l.provides[u]=c,a),runWithContext(u){const c=sn;sn=a;try{return u()}finally{sn=c}}};return a}}let sn=null;function $i(t,e){if(re){let r=re.provides;const n=re.parent&&re.parent.provides;n===r&&(r=re.provides=Object.create(n)),r[t]=e}}function Ge(t,e,r=!1){const n=re||Zt;if(n||sn){const l=sn?sn._context.provides:n?n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(l&&t in l)return l[t];if(arguments.length>1)return r&&Tt(e)?e.call(n&&n.proxy):e}}const Qh={},lu=()=>Object.create(Qh),Yh=t=>Object.getPrototypeOf(t)===Qh;function uu(t,e,r,n){const[l,o]=t.propsOptions;let s,i=!1;if(e)for(let a in e){if(Jn(a))continue;const u=e[a];let c;l&&Pt(l,c=xe(a))?o&&o.includes(c)?(s||(s={}))[c]=u:r[c]=u:so(t.emitsOptions,a)||a in n&&u===n[a]||(n[a]=u,i=!0)}if(o){const a=Ct(r),u=s||Ut;for(let c=0;c{a=!0;const[f,m]=Jh(d,e,!0);Xt(s,f),m&&i.push(...m)};!r&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}if(!o&&!a)return Wt(t)&&n.set(t,In),In;if(At(o))for(let c=0;ct[0]==="_"||t==="$stable",Al=t=>At(t)?t.map(qe):[qe(t)],Lg=(t,e,r)=>{if(e._n)return e;const n=yg((...l)=>Al(e(...l)),r);return n._c=!1,n},hu=(t,e,r)=>{const n=t._ctx;for(const l in t){if(Xh(l))continue;const o=t[l];if(Tt(o))e[l]=Lg(0,o,n);else if(o!=null){const s=Al(o);e[l]=()=>s}}},fu=(t,e)=>{const r=Al(e);t.slots.default=()=>r},pu=(t,e,r)=>{for(const n in e)(r||n!=="_")&&(t[n]=e[n])},de=function(t,e){e&&e.pendingBranch?At(t)?e.effects.push(...t):e.effects.push(t):(At(r=t)?xn.push(...r):Or&&r.id===-1?Or.splice(_n+1,0,r):1&r.flags||(xn.push(r),r.flags|=1),xh());var r};function jg(t){return function(e){eo().__VUE__=!0;const{insert:r,remove:n,patchProp:l,createElement:o,createText:s,createComment:i,setText:a,setElementText:u,parentNode:c,nextSibling:d,setScopeId:f=cr,insertStaticContent:m}=e,b=(L,A,F,h=null,p=null,y=null,O=void 0,C=null,x=!!A.dynamicChildren)=>{if(L===A)return;L&&!tn(L,A)&&(h=ut(L),T(L,p,y,!0),L=null),A.patchFlag===-2&&(x=!1,A.dynamicChildren=null);const{type:g,ref:v,shapeFlag:k}=A;switch(g){case To:_(L,A,F,h);break;case fe:S(L,A,F,h);break;case Vi:L==null&&U(A,F,h,O);break;case ge:R(L,A,F,h,p,y,O,C,x);break;default:1&k?$(L,A,F,h,p,y,O,C,x):6&k?et(L,A,F,h,p,y,O,C,x):(64&k||128&k)&&g.process(L,A,F,h,p,y,O,C,x,rt)}v!=null&&p&&Rs(v,L&&L.ref,y,A||L,!A)},_=(L,A,F,h)=>{if(L==null)r(A.el=s(A.children),F,h);else{const p=A.el=L.el;A.children!==L.children&&a(p,A.children)}},S=(L,A,F,h)=>{L==null?r(A.el=i(A.children||""),F,h):A.el=L.el},U=(L,A,F,h)=>{[L.el,L.anchor]=m(L.children,A,F,h,L.el,L.anchor)},D=({el:L,anchor:A},F,h)=>{let p;for(;L&&L!==A;)p=d(L),r(L,F,h),L=p;r(A,F,h)},K=({el:L,anchor:A})=>{let F;for(;L&&L!==A;)F=d(L),n(L),L=F;n(A)},$=(L,A,F,h,p,y,O,C,x)=>{A.type==="svg"?O="svg":A.type==="math"&&(O="mathml"),L==null?Y(A,F,h,p,y,O,C,x):E(L,A,p,y,O,C,x)},Y=(L,A,F,h,p,y,O,C)=>{let x,g;const{props:v,shapeFlag:k,transition:M,dirs:W}=L;if(x=L.el=o(L.type,y,v&&v.is,v),8&k?u(x,L.children):16&k&&I(L.children,x,null,h,p,Yo(L,y),O,C),W&&$r(L,null,h,"created"),B(x,L,L.scopeId,O,h),v){for(const at in v)at==="value"||Jn(at)||l(x,at,null,v[at],y,h);"value"in v&&l(x,"value",null,v.value,y),(g=v.onVnodeBeforeMount)&&Fe(g,h,L)}W&&$r(L,null,h,"beforeMount");const J=function(at,ot){return(!at||at&&!at.pendingBranch)&&ot&&!ot.persisted}(p,M);J&&M.beforeEnter(x),r(x,A,F),((g=v&&v.onVnodeMounted)||J||W)&&de(()=>{g&&Fe(g,h,L),J&&M.enter(x),W&&$r(L,null,h,"mounted")},p)},B=(L,A,F,h,p)=>{if(F&&f(L,F),h)for(let y=0;y{for(let g=x;g{const C=A.el=L.el;let{patchFlag:x,dynamicChildren:g,dirs:v}=A;x|=16&L.patchFlag;const k=L.props||Ut,M=A.props||Ut;let W;if(F&&Vr(F,!1),(W=M.onVnodeBeforeUpdate)&&Fe(W,F,A,L),v&&$r(A,L,F,"beforeUpdate"),F&&Vr(F,!0),(k.innerHTML&&M.innerHTML==null||k.textContent&&M.textContent==null)&&u(C,""),g?w(L.dynamicChildren,g,C,F,h,Yo(A,p),y):O||V(L,A,C,null,F,h,Yo(A,p),y,!1),x>0){if(16&x)P(C,k,M,F,p);else if(2&x&&k.class!==M.class&&l(C,"class",null,M.class,p),4&x&&l(C,"style",k.style,M.style,p),8&x){const J=A.dynamicProps;for(let at=0;at{W&&Fe(W,F,A,L),v&&$r(A,L,F,"updated")},h)},w=(L,A,F,h,p,y,O)=>{for(let C=0;C{if(A!==F){if(A!==Ut)for(const y in A)Jn(y)||y in F||l(L,y,A[y],null,p,h);for(const y in F){if(Jn(y))continue;const O=F[y],C=A[y];O!==C&&y!=="value"&&l(L,y,C,O,p,h)}"value"in F&&l(L,"value",A.value,F.value,p)}},R=(L,A,F,h,p,y,O,C,x)=>{const g=A.el=L?L.el:s(""),v=A.anchor=L?L.anchor:s("");let{patchFlag:k,dynamicChildren:M,slotScopeIds:W}=A;W&&(C=C?C.concat(W):W),L==null?(r(g,F,h),r(v,F,h),I(A.children||[],F,v,p,y,O,C,x)):k>0&&64&k&&M&&L.dynamicChildren?(w(L.dynamicChildren,M,F,p,y,O,C),(A.key!=null||p&&A===p.subTree)&&kl(L,A,!0)):V(L,A,F,v,p,y,O,C,x)},et=(L,A,F,h,p,y,O,C,x)=>{A.slotScopeIds=C,L==null?512&A.shapeFlag?p.ctx.activate(A,F,h,O,x):st(A,F,h,p,y,O,x):X(L,A,x)},st=(L,A,F,h,p,y,O)=>{const C=L.component=function(x,g,v){const k=x.type,M=(g?g.appContext:x.appContext)||Kg,W={uid:Gg++,vnode:x,type:k,parent:g,appContext:M,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ah(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:g?g.provides:Object.create(M.provides),ids:g?g.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Jh(k,M),emitsOptions:ef(k,M),emit:null,emitted:null,propsDefaults:Ut,inheritAttrs:k.inheritAttrs,ctx:Ut,data:Ut,props:Ut,attrs:Ut,slots:Ut,refs:Ut,setupState:Ut,setupContext:null,suspense:v,suspenseId:v?v.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return W.ctx={_:W},W.root=g?g.root:W,W.emit=Wg.bind(null,W),x.ce&&x.ce(W),W}(L,h,p);if(ko(L)&&(C.ctx.renderer=rt),function(x,g=!1,v=!1){g&&Ns(g);const{props:k,children:M}=x.vnode,W=lf(x);(function(at,ot,vt,bt=!1){const wt={},Ot=lu();at.propsDefaults=Object.create(null),uu(at,ot,wt,Ot);for(const kt in at.propsOptions[0])kt in wt||(wt[kt]=void 0);vt?at.props=bt?wt:Ah(wt):at.type.props?at.props=wt:at.props=Ot,at.attrs=Ot})(x,k,W,g),((at,ot,vt)=>{const bt=at.slots=lu();if(32&at.vnode.shapeFlag){const wt=ot._;wt?(pu(bt,ot,vt),vt&&nh(bt,"_",wt,!0)):hu(ot,bt)}else ot&&fu(at,ot)})(x,M,v);const J=W?function(at,ot){const vt=at.type;at.accessCache=Object.create(null),at.proxy=new Proxy(at.ctx,xg);const{setup:bt}=vt;if(bt){jr();const wt=at.setupContext=bt.length>1?function(_t){const It=yt=>{_t.exposed=yt||{}};return{attrs:new Proxy(_t.attrs,Qg),slots:_t.slots,emit:_t.emit,expose:It}}(at):null,Ot=Si(at),kt=Ei(bt,at,0,[at.props,wt]),Mt=th(kt);if(Ur(),Ot(),!Mt&&!at.sp||An(at)||Wh(at),Mt){if(kt.then(yu,yu),ot)return kt.then(_t=>{vu(at,_t,ot)}).catch(_t=>{Ao(_t,at,0)});at.asyncDep=kt}else vu(at,kt,ot)}else uf(at,ot)}(x,g):void 0;g&&Ns(!1)}(C,!1,O),C.asyncDep){if(p&&p.registerDep(C,j,O),!L.el){const x=C.subTree=me(fe);S(null,x,A,F)}}else j(C,L,A,F,p,y,O)},X=(L,A,F)=>{const h=A.component=L.component;if(function(p,y,O){const{props:C,children:x,component:g}=p,{props:v,children:k,patchFlag:M}=y,W=g.emitsOptions;if(y.dirs||y.transition)return!0;if(!(O&&M>=0))return!(!x&&!k||k&&k.$stable)||C!==v&&(C?!v||gu(C,v,W):!!v);if(1024&M)return!0;if(16&M)return C?gu(C,v,W):!!v;if(8&M){const J=y.dynamicProps;for(let at=0;at{const C=()=>{if(L.isMounted){let{next:k,bu:M,u:W,parent:J,vnode:at}=L;{const Ot=Zh(L);if(Ot)return k&&(k.el=at.el,N(L,k,O)),void Ot.asyncDep.then(()=>{L.isUnmounted||C()})}let ot,vt=k;Vr(L,!1),k?(k.el=at.el,N(L,k,O)):k=at,M&&Fo(M),(ot=k.props&&k.props.onVnodeBeforeUpdate)&&Fe(ot,J,k,at),Vr(L,!0);const bt=Jo(L),wt=L.subTree;L.subTree=bt,b(wt,bt,c(wt.el),ut(wt),L,p,y),k.el=bt.el,vt===null&&function({vnode:Ot,parent:kt},Mt){for(;kt;){const _t=kt.subTree;if(_t.suspense&&_t.suspense.activeBranch===Ot&&(_t.el=Ot.el),_t!==Ot)break;(Ot=kt.vnode).el=Mt,kt=kt.parent}}(L,bt.el),W&&de(W,p),(ot=k.props&&k.props.onVnodeUpdated)&&de(()=>Fe(ot,J,k,at),p)}else{let k;const{el:M,props:W}=A,{bm:J,m:at,parent:ot,root:vt,type:bt}=L,wt=An(A);if(Vr(L,!1),J&&Fo(J),!wt&&(k=W&&W.onVnodeBeforeMount)&&Fe(k,ot,A),Vr(L,!0),M&&dt){const Ot=()=>{L.subTree=Jo(L),dt(M,L.subTree,L,p,null)};wt&&bt.__asyncHydrate?bt.__asyncHydrate(M,L,Ot):Ot()}else{vt.ce&&vt.ce._injectChildStyle(bt);const Ot=L.subTree=Jo(L);b(null,Ot,F,h,L,p,y),A.el=Ot.el}if(at&&de(at,p),!wt&&(k=W&&W.onVnodeMounted)){const Ot=A;de(()=>Fe(k,ot,Ot),p)}(256&A.shapeFlag||ot&&An(ot.vnode)&&256&ot.vnode.shapeFlag)&&L.a&&de(L.a,p),L.isMounted=!0,A=F=h=null}};L.scope.on();const x=L.effect=new ch(C);L.scope.off();const g=L.update=x.run.bind(x),v=L.job=x.runIfDirty.bind(x);v.i=L,v.id=L.uid,x.scheduler=()=>bl(v),Vr(L,!0),g()},N=(L,A,F)=>{A.component=L;const h=L.vnode.props;L.vnode=A,L.next=null,function(p,y,O,C){const{props:x,attrs:g,vnode:{patchFlag:v}}=p,k=Ct(x),[M]=p.propsOptions;let W=!1;if(!(C||v>0)||16&v){let J;uu(p,y,x,g)&&(W=!0);for(const at in k)y&&(Pt(y,at)||(J=Dr(at))!==at&&Pt(y,J))||(M?!O||O[at]===void 0&&O[J]===void 0||(x[at]=Ls(M,k,at,void 0,p,!0)):delete x[at]);if(g!==k)for(const at in g)y&&Pt(y,at)||(delete g[at],W=!0)}else if(8&v){const J=p.vnode.dynamicProps;for(let at=0;at{const{vnode:C,slots:x}=p;let g=!0,v=Ut;if(32&C.shapeFlag){const k=y._;k?O&&k===1?g=!1:pu(x,y,O):(g=!y.$stable,hu(y,x)),v=y}else y&&(fu(p,y),v={default:1});if(g)for(const k in x)Xh(k)||v[k]!=null||delete x[k]})(L,A.children,F),jr(),Xl(L),Ur()},V=(L,A,F,h,p,y,O,C,x=!1)=>{const g=L&&L.children,v=L?L.shapeFlag:0,k=A.children,{patchFlag:M,shapeFlag:W}=A;if(M>0){if(128&M)return void Q(g,k,F,h,p,y,O,C,x);if(256&M)return void nt(g,k,F,h,p,y,O,C,x)}8&W?(16&v&<(g,p,y),k!==g&&u(F,k)):16&v?16&W?Q(g,k,F,h,p,y,O,C,x):lt(g,p,y,!0):(8&v&&u(F,""),16&W&&I(k,F,h,p,y,O,C,x))},nt=(L,A,F,h,p,y,O,C,x)=>{A=A||In;const g=(L=L||In).length,v=A.length,k=Math.min(g,v);let M;for(M=0;Mv?lt(L,p,y,!0,!1,k):I(A,F,h,p,y,O,C,x,k)},Q=(L,A,F,h,p,y,O,C,x)=>{let g=0;const v=A.length;let k=L.length-1,M=v-1;for(;g<=k&&g<=M;){const W=L[g],J=A[g]=x?Cr(A[g]):qe(A[g]);if(!tn(W,J))break;b(W,J,F,null,p,y,O,C,x),g++}for(;g<=k&&g<=M;){const W=L[k],J=A[M]=x?Cr(A[M]):qe(A[M]);if(!tn(W,J))break;b(W,J,F,null,p,y,O,C,x),k--,M--}if(g>k){if(g<=M){const W=M+1,J=WM)for(;g<=k;)T(L[g],p,y,!0),g++;else{const W=g,J=g,at=new Map;for(g=J;g<=M;g++){const _t=A[g]=x?Cr(A[g]):qe(A[g]);_t.key!=null&&at.set(_t.key,g)}let ot,vt=0;const bt=M-J+1;let wt=!1,Ot=0;const kt=new Array(bt);for(g=0;g=bt){T(_t,p,y,!0);continue}let It;if(_t.key!=null)It=at.get(_t.key);else for(ot=J;ot<=M;ot++)if(kt[ot-J]===0&&tn(_t,A[ot])){It=ot;break}It===void 0?T(_t,p,y,!0):(kt[It-J]=g+1,It>=Ot?Ot=It:wt=!0,b(_t,A[It],F,null,p,y,O,C,x),vt++)}const Mt=wt?function(_t){const It=_t.slice(),yt=[0];let xt,vr,Ht,Jt,Ee;const De=_t.length;for(xt=0;xt>1,_t[yt[Ee]]0&&(It[xt]=yt[Ht-1]),yt[Ht]=xt)}}for(Ht=yt.length,Jt=yt[Ht-1];Ht-- >0;)yt[Ht]=Jt,Jt=It[Jt];return yt}(kt):In;for(ot=Mt.length-1,g=bt-1;g>=0;g--){const _t=J+g,It=A[_t],yt=_t+1{const{el:y,type:O,transition:C,children:x,shapeFlag:g}=L;if(6&g)return void G(L.component.subTree,A,F,h);if(128&g)return void L.suspense.move(A,F,h);if(64&g)return void O.move(L,A,F,rt);if(O===ge){r(y,A,F);for(let v=0;vC.enter(y),p);else{const{leave:v,delayLeave:k,afterLeave:M}=C,W=()=>r(y,A,F),J=()=>{v(y,()=>{W(),M&&M()})};k?k(y,W,J):J()}else r(y,A,F)},T=(L,A,F,h=!1,p=!1)=>{const{type:y,props:O,ref:C,children:x,dynamicChildren:g,shapeFlag:v,patchFlag:k,dirs:M,cacheIndex:W}=L;if(k===-2&&(p=!1),C!=null&&Rs(C,null,F,L,!0),W!=null&&(A.renderCache[W]=void 0),256&v)return void A.ctx.deactivate(L);const J=1&v&&M,at=!An(L);let ot;if(at&&(ot=O&&O.onVnodeBeforeUnmount)&&Fe(ot,A,L),6&v)it(L.component,F,h);else{if(128&v)return void L.suspense.unmount(F,h);J&&$r(L,null,A,"beforeUnmount"),64&v?L.type.remove(L,A,F,rt,h):g&&!g.hasOnce&&(y!==ge||k>0&&64&k)?lt(g,A,F,!1,!0):(y===ge&&384&k||!p&&16&v)&<(x,A,F),h&&q(L)}(at&&(ot=O&&O.onVnodeUnmounted)||J)&&de(()=>{ot&&Fe(ot,A,L),J&&$r(L,null,A,"unmounted")},F)},q=L=>{const{type:A,el:F,anchor:h,transition:p}=L;if(A===ge)return void tt(F,h);if(A===Vi)return void K(L);const y=()=>{n(F),p&&!p.persisted&&p.afterLeave&&p.afterLeave()};if(1&L.shapeFlag&&p&&!p.persisted){const{leave:O,delayLeave:C}=p,x=()=>O(F,y);C?C(L.el,y,x):x()}else y()},tt=(L,A)=>{let F;for(;L!==A;)F=d(L),n(L),L=F;n(A)},it=(L,A,F)=>{const{bum:h,scope:p,job:y,subTree:O,um:C,m:x,a:g}=L;du(x),du(g),h&&Fo(h),p.stop(),y&&(y.flags|=8,T(O,L,A,F)),C&&de(C,A),de(()=>{L.isUnmounted=!0},A),A&&A.pendingBranch&&!A.isUnmounted&&L.asyncDep&&!L.asyncResolved&&L.suspenseId===A.pendingId&&(A.deps--,A.deps===0&&A.resolve())},lt=(L,A,F,h=!1,p=!1,y=0)=>{for(let O=y;O{if(6&L.shapeFlag)return ut(L.component.subTree);if(128&L.shapeFlag)return L.suspense.next();const A=d(L.anchor||L.el),F=A&&A[Bh];return F?d(F):A};let pt=!1;const H=(L,A,F)=>{L==null?A._vnode&&T(A._vnode,null,null,!0):b(A._vnode||null,L,A,null,null,null,F),A._vnode=L,pt||(pt=!0,Xl(),Ch(),pt=!1)},rt={p:b,um:T,m:G,r:q,mt:st,mc:I,pc:V,pbc:w,n:ut,o:e};let Z,dt;return{render:H,hydrate:Z,createApp:Bg(H,Z)}}(t)}function Yo({type:t,props:e},r){return r==="svg"&&t==="foreignObject"||r==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:r}function Vr({effect:t,job:e},r){r?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function kl(t,e,r=!1){const n=t.children,l=e.children;if(At(n)&&At(l))for(let o=0;oGe(Ug);function ri(t,e,r){return Il(t,e,r)}function Il(t,e,r=Ut){const{immediate:n,deep:l,flush:o,once:s}=r,i=Xt({},r),a=e&&n||!e&&o!=="post";let u;if(gi){if(o==="sync"){const m=Ng();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!a){const m=()=>{};return m.stop=cr,m.resume=cr,m.pause=cr,m}}const c=re;i.call=(m,b,_)=>Ue(m,c,b,_);let d=!1;o==="post"?i.scheduler=m=>{de(m,c&&c.suspense)}:o!=="sync"&&(d=!0,i.scheduler=(m,b)=>{b?m():bl(m)}),i.augmentJob=m=>{e&&(m.flags|=4),d&&(m.flags|=2,c&&(m.id=c.uid,m.i=c))};const f=mg(t,e,i);return gi&&(u?u.push(f):a&&f()),f}function Dg(t,e,r){const n=this.proxy,l=qt(t)?t.includes(".")?tf(n,t):()=>n[t]:t.bind(n,n);let o;Tt(e)?o=e:(o=e.handler,r=e);const s=Si(this),i=Il(l,o.bind(n),r);return s(),i}function tf(t,e){const r=e.split(".");return()=>{let n=t;for(let l=0;le==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${xe(e)}Modifiers`]||t[`${Dr(e)}Modifiers`];function Wg(t,e,...r){if(t.isUnmounted)return;const n=t.vnode.props||Ut;let l=r;const o=e.startsWith("update:"),s=o&&Fg(n,e.slice(7));let i;s&&(s.trim&&(l=r.map(c=>qt(c)?c.trim():c)),s.number&&(l=r.map($d)));let a=n[i=Do(e)]||n[i=Do(xe(e))];!a&&o&&(a=n[i=Do(Dr(e))]),a&&Ue(a,t,6,l);const u=n[i+"Once"];if(u){if(t.emitted){if(t.emitted[i])return}else t.emitted={};t.emitted[i]=!0,Ue(u,t,6,l)}}function ef(t,e,r=!1){const n=e.emitsCache,l=n.get(t);if(l!==void 0)return l;const o=t.emits;let s={},i=!1;if(!Tt(t)){const a=u=>{const c=ef(u,e,!0);c&&(i=!0,Xt(s,c))};!r&&e.mixins.length&&e.mixins.forEach(a),t.extends&&a(t.extends),t.mixins&&t.mixins.forEach(a)}return o||i?(At(o)?o.forEach(a=>s[a]=null):Xt(s,o),Wt(t)&&n.set(t,s),s):(Wt(t)&&n.set(t,null),null)}function so(t,e){return!(!t||!yo(e))&&(e=e.slice(2).replace(/Once$/,""),Pt(t,e[0].toLowerCase()+e.slice(1))||Pt(t,Dr(e))||Pt(t,e))}function Jo(t){const{type:e,vnode:r,proxy:n,withProxy:l,propsOptions:[o],slots:s,attrs:i,emit:a,render:u,renderCache:c,props:d,data:f,setupState:m,ctx:b,inheritAttrs:_}=t,S=io(t);let U,D;try{if(4&r.shapeFlag){const $=l||n,Y=$;U=qe(u.call(Y,$,c,d,m,f,b)),D=i}else{const $=e;U=qe($.length>1?$(d,{attrs:i,slots:s,emit:a}):$(d,null)),D=e.props?i:$g(i)}}catch($){ni.length=0,Ao($,t,1),U=me(fe)}let K=U;if(D&&_!==!1){const $=Object.keys(D),{shapeFlag:Y}=K;$.length&&7&Y&&(o&&$.some(ol)&&(D=Vg(D,o)),K=Nr(K,D,!1,!0))}return r.dirs&&(K=Nr(K,null,!1,!0),K.dirs=K.dirs?K.dirs.concat(r.dirs):r.dirs),r.transition&&fi(K,r.transition),U=K,io(S),U}const $g=t=>{let e;for(const r in t)(r==="class"||r==="style"||yo(r))&&((e||(e={}))[r]=t[r]);return e},Vg=(t,e)=>{const r={};for(const n in t)ol(n)&&n.slice(9)in e||(r[n]=t[n]);return r};function gu(t,e,r){const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!0;for(let l=0;lt.__isSuspense,ge=Symbol.for("v-fgt"),To=Symbol.for("v-txt"),fe=Symbol.for("v-cmt"),Vi=Symbol.for("v-stc"),ni=[];let _e=null;function js(t=!1){ni.push(_e=t?null:[])}let pi=1;function mu(t){pi+=t,t<0&&_e&&(_e.hasOnce=!0)}function nf(t){return t.dynamicChildren=pi>0?_e||In:null,ni.pop(),_e=ni[ni.length-1]||null,pi>0&&_e&&_e.push(t),t}function Ky(t,e,r,n,l,o){return nf(sf(t,e,r,n,l,o,!0))}function Us(t,e,r,n,l){return nf(me(t,e,r,n,l,!0))}function di(t){return!!t&&t.__v_isVNode===!0}function tn(t,e){return t.type===e.type&&t.key===e.key}const of=({key:t})=>t??null,qi=({ref:t,ref_key:e,ref_for:r})=>(typeof t=="number"&&(t=""+t),t!=null?qt(t)||Yt(t)||Tt(t)?{i:Zt,r:t,k:e,f:!!r}:t:null);function sf(t,e=null,r=null,n=0,l=null,o=t===ge?0:1,s=!1,i=!1){const a={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&of(e),ref:e&&qi(e),scopeId:Ph,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:n,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:Zt};return i?(Tl(a,r),128&o&&t.normalize(a)):r&&(a.shapeFlag|=qt(r)?8:16),pi>0&&!s&&_e&&(a.patchFlag>0||6&o)&&a.patchFlag!==32&&_e.push(a),a}const me=function(t,e=null,r=null,n=0,l=null,o=!1){if(t&&t!==Hh||(t=fe),di(t)){const a=Nr(t,e,!0);return r&&Tl(a,r),pi>0&&!o&&_e&&(6&a.shapeFlag?_e[_e.indexOf(t)]=a:_e.push(a)),a.patchFlag=-2,a}s=t,Tt(s)&&"__vccOpts"in s&&(t=t.__vccOpts);var s;if(e){e=qg(e);let{class:a,style:u}=e;a&&!qt(a)&&(e.class=Eo(a)),Wt(u)&&(dl(u)&&!At(u)&&(u=Xt({},u)),e.style=_o(u))}const i=qt(t)?1:rf(t)?128:Mh(t)?64:Wt(t)?4:Tt(t)?2:0;return sf(t,e,r,n,l,i,o,!0)};function qg(t){return t?dl(t)||Yh(t)?Xt({},t):t:null}function Nr(t,e,r=!1,n=!1){const{props:l,ref:o,patchFlag:s,children:i,transition:a}=t,u=e?zg(l||{},e):l,c={__v_isVNode:!0,__v_skip:!0,type:t.type,props:u,key:u&&of(u),ref:e&&e.ref?r&&o?At(o)?o.concat(qi(e)):[o,qi(e)]:qi(e):o,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:i,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==ge?s===-1?16:16|s:s,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:a,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Nr(t.ssContent),ssFallback:t.ssFallback&&Nr(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return a&&n&&fi(c,a.clone(c)),c}function Hg(t=" ",e=0){return me(To,null,t,e)}function Gy(t="",e=!1){return e?(js(),Us(fe,null,t)):me(fe,null,t)}function qe(t){return t==null||typeof t=="boolean"?me(fe):At(t)?me(ge,null,t.slice()):di(t)?Cr(t):me(To,null,String(t))}function Cr(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Nr(t)}function Tl(t,e){let r=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(At(e))r=16;else if(typeof e=="object"){if(65&n){const l=e.default;return void(l&&(l._c&&(l._d=!1),Tl(t,l()),l._c&&(l._d=!0)))}{r=32;const l=e._;l||Yh(e)?l===3&&Zt&&(Zt.slots._===1?e._=1:(e._=2,t.patchFlag|=1024)):e._ctx=Zt}}else Tt(e)?(e={default:e,_ctx:Zt},r=32):(e=String(e),64&n?(r=16,e=[Hg(e)]):r=8);t.children=e,t.shapeFlag|=r}function zg(...t){const e={};for(let r=0;rre||Zt;let ao,Ns;{const t=eo(),e=(r,n)=>{let l;return(l=t[r])||(l=t[r]=[]),l.push(n),o=>{l.length>1?l.forEach(s=>s(o)):l[0](o)}};ao=e("__VUE_INSTANCE_SETTERS__",r=>re=r),Ns=e("__VUE_SSR_SETTERS__",r=>gi=r)}const Si=t=>{const e=re;return ao(t),t.scope.on(),()=>{t.scope.off(),ao(e)}},yu=()=>{re&&re.scope.off(),ao(null)};function lf(t){return 4&t.vnode.shapeFlag}let bu,gi=!1;function vu(t,e,r){Tt(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Wt(e)&&(t.setupState=Th(e)),uf(t,r)}function uf(t,e,r){const n=t.type;if(!t.render){if(!e&&bu&&!n.render){const l=n.template||Sl(t).template;if(l){const{isCustomElement:o,compilerOptions:s}=t.appContext.config,{delimiters:i,compilerOptions:a}=n,u=Xt(Xt({isCustomElement:o,delimiters:i},s),a);n.render=bu(l,u)}}t.render=n.render||cr}{const l=Si(t);jr();try{Cg(t)}finally{Ur(),l()}}}const Qg={get:(t,e)=>(ae(t,0,""),t[e])};function Oo(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Th(gl(t.exposed)),{get:(e,r)=>r in e?e[r]:r in ei?ei[r](t):void 0,has:(e,r)=>r in e||r in ei})):t.proxy}function Yg(t,e=!0){return Tt(t)?t.displayName||t.name:t.name||e&&t.__name}const Ie=(t,e)=>function(n,l,o=!1){let s,i;return Tt(n)?s=n:(s=n.get,i=n.set),new gg(s,i,o)}(t,0,gi);function Ol(t,e,r){const n=arguments.length;return n===2?Wt(e)&&!At(e)?di(e)?me(t,null,[e]):me(t,e):me(t,null,e):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&di(r)&&(r=[r]),me(t,e,r))}const Jg="3.5.12";/** -* @vue/runtime-dom v3.5.12 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Ds;const wu=typeof window<"u"&&window.trustedTypes;if(wu)try{Ds=wu.createPolicy("vue",{createHTML:t=>t})}catch{}const cf=Ds?t=>Ds.createHTML(t):t=>t,rr=typeof document<"u"?document:null,_u=rr&&rr.createElement("template"),Xg={insert:(t,e,r)=>{e.insertBefore(t,r||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,r,n)=>{const l=e==="svg"?rr.createElementNS("http://www.w3.org/2000/svg",t):e==="mathml"?rr.createElementNS("http://www.w3.org/1998/Math/MathML",t):r?rr.createElement(t,{is:r}):rr.createElement(t);return t==="select"&&n&&n.multiple!=null&&l.setAttribute("multiple",n.multiple),l},createText:t=>rr.createTextNode(t),createComment:t=>rr.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>rr.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,r,n,l,o){const s=r?r.previousSibling:e.lastChild;if(l&&(l===o||l.nextSibling))for(;e.insertBefore(l.cloneNode(!0),r),l!==o&&(l=l.nextSibling););else{_u.innerHTML=cf(n==="svg"?`${t}`:n==="mathml"?`${t}`:t);const i=_u.content;if(n==="svg"||n==="mathml"){const a=i.firstChild;for(;a.firstChild;)i.appendChild(a.firstChild);i.removeChild(a)}e.insertBefore(i,r)}return[s?s.nextSibling:e.firstChild,r?r.previousSibling:e.lastChild]}},wr="transition",Wn="animation",mi=Symbol("_vtc"),hf={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Zg=Xt({},Lh,hf),Qy=(t=>(t.displayName="Transition",t.props=Zg,t))((t,{slots:e})=>Ol(vg,function(r){const n={};for(const X in r)X in hf||(n[X]=r[X]);if(r.css===!1)return n;const{name:l="v",type:o,duration:s,enterFromClass:i=`${l}-enter-from`,enterActiveClass:a=`${l}-enter-active`,enterToClass:u=`${l}-enter-to`,appearFromClass:c=i,appearActiveClass:d=a,appearToClass:f=u,leaveFromClass:m=`${l}-leave-from`,leaveActiveClass:b=`${l}-leave-active`,leaveToClass:_=`${l}-leave-to`}=r,S=function(X){if(X==null)return null;if(Wt(X))return[Xo(X.enter),Xo(X.leave)];{const j=Xo(X);return[j,j]}}(s),U=S&&S[0],D=S&&S[1],{onBeforeEnter:K,onEnter:$,onEnterCancelled:Y,onLeave:B,onLeaveCancelled:I,onBeforeAppear:E=K,onAppear:w=$,onAppearCancelled:P=Y}=n,R=(X,j,N)=>{Hr(X,j?f:u),Hr(X,j?d:a),N&&N()},et=(X,j)=>{X._isLeaving=!1,Hr(X,m),Hr(X,_),Hr(X,b),j&&j()},st=X=>(j,N)=>{const V=X?w:$,nt=()=>R(j,X,N);qr(V,[j,nt]),Su(()=>{Hr(j,X?c:i),_r(j,X?f:u),Eu(V)||Au(j,o,U,nt)})};return Xt(n,{onBeforeEnter(X){qr(K,[X]),_r(X,i),_r(X,a)},onBeforeAppear(X){qr(E,[X]),_r(X,c),_r(X,d)},onEnter:st(!1),onAppear:st(!0),onLeave(X,j){X._isLeaving=!0;const N=()=>et(X,j);_r(X,m),_r(X,b),document.body.offsetHeight,Su(()=>{X._isLeaving&&(Hr(X,m),_r(X,_),Eu(B)||Au(X,o,D,N))}),qr(B,[X,N])},onEnterCancelled(X){R(X,!1),qr(Y,[X])},onAppearCancelled(X){R(X,!0),qr(P,[X])},onLeaveCancelled(X){et(X),qr(I,[X])}})}(t),e)),qr=(t,e=[])=>{At(t)?t.forEach(r=>r(...e)):t&&t(...e)},Eu=t=>!!t&&(At(t)?t.some(e=>e.length>1):t.length>1);function Xo(t){return(r=>{const n=qt(r)?Number(r):NaN;return isNaN(n)?r:n})(t)}function _r(t,e){e.split(/\s+/).forEach(r=>r&&t.classList.add(r)),(t[mi]||(t[mi]=new Set)).add(e)}function Hr(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.remove(n));const r=t[mi];r&&(r.delete(e),r.size||(t[mi]=void 0))}function Su(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let tm=0;function Au(t,e,r,n){const l=t._endId=++tm,o=()=>{l===t._endId&&n()};if(r!=null)return setTimeout(o,r);const{type:s,timeout:i,propCount:a}=function(m,b){const _=window.getComputedStyle(m),S=R=>(_[R]||"").split(", "),U=S(`${wr}Delay`),D=S(`${wr}Duration`),K=ku(U,D),$=S(`${Wn}Delay`),Y=S(`${Wn}Duration`),B=ku($,Y);let I=null,E=0,w=0;b===wr?K>0&&(I=wr,E=K,w=D.length):b===Wn?B>0&&(I=Wn,E=B,w=Y.length):(E=Math.max(K,B),I=E>0?K>B?wr:Wn:null,w=I?I===wr?D.length:Y.length:0);const P=I===wr&&/\b(transform|all)(,|$)/.test(S(`${wr}Property`).toString());return{type:I,timeout:E,propCount:w,hasTransform:P}}(t,e);if(!s)return n();const u=s+"end";let c=0;const d=()=>{t.removeEventListener(u,f),o()},f=m=>{m.target===t&&++c>=a&&d()};setTimeout(()=>{cIu(r)+Iu(t[n])))}function Iu(t){return t==="auto"?0:1e3*Number(t.slice(0,-1).replace(",","."))}const lo=Symbol("_vod"),ff=Symbol("_vsh"),Yy={beforeMount(t,{value:e},{transition:r}){t[lo]=t.style.display==="none"?"":t.style.display,r&&e?r.beforeEnter(t):$n(t,e)},mounted(t,{value:e},{transition:r}){r&&e&&r.enter(t)},updated(t,{value:e,oldValue:r},{transition:n}){!e!=!r&&(n?e?(n.beforeEnter(t),$n(t,!0),n.enter(t)):n.leave(t,()=>{$n(t,!1)}):$n(t,e))},beforeUnmount(t,{value:e}){$n(t,e)}};function $n(t,e){t.style.display=e?t[lo]:"none",t[ff]=!e}const pf=Symbol("");function Jy(t){const e=af();if(!e)return;const r=e.ut=(l=t(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(o=>uo(o,l))},n=()=>{const l=t(e.proxy);e.ce?uo(e.ce,l):Fs(e.subTree,l),r(l)};Vh(()=>{Il(n,null,{flush:"post"})}),vl(()=>{const l=new MutationObserver(n);l.observe(e.subTree.el.parentNode,{childList:!0}),wl(()=>l.disconnect())})}function Fs(t,e){if(128&t.shapeFlag){const r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{Fs(r.activeBranch,e)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)uo(t.el,e);else if(t.type===ge)t.children.forEach(r=>Fs(r,e));else if(t.type===Vi){let{el:r,anchor:n}=t;for(;r&&(uo(r,e),r!==n);)r=r.nextSibling}}function uo(t,e){if(t.nodeType===1){const r=t.style;let n="";for(const l in e)r.setProperty(`--${l}`,e[l]),n+=`--${l}: ${e[l]};`;r[pf]=n}}const em=/(^|;)\s*display\s*:/,Tu=/\s*!important$/;function Hi(t,e,r){if(At(r))r.forEach(n=>Hi(t,e,n));else if(r==null&&(r=""),e.startsWith("--"))t.setProperty(e,r);else{const n=function(l,o){const s=Zo[o];if(s)return s;let i=xe(o);if(i!=="filter"&&i in l)return Zo[o]=i;i=wo(i);for(let a=0;a{if(m._vts){if(m._vts<=f.attached)return}else m._vts=Date.now();Ue(function(b,_){if(At(_)){const S=b.stopImmediatePropagation;return b.stopImmediatePropagation=()=>{S.call(b),b._stopped=!0},_.map(U=>D=>!D._stopped&&U&&U(D))}return _}(m,f.value),d,5,[m])};return f.value=c,f.attached=im(),f}(n,l);(function(c,d,f,m){c.addEventListener(d,f,m)})(t,i,u,a)}else s&&(function(u,c,d,f){u.removeEventListener(c,d,f)}(t,i,s,a),o[e]=void 0)}}const Bu=/(?:Once|Passive|Capture)$/;let ts=0;const nm=Promise.resolve(),im=()=>ts||(nm.then(()=>ts=0),ts=Date.now()),Mu=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,om=["ctrl","shift","alt","meta"],sm={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>om.some(r=>t[`${r}Key`]&&!e.includes(r))},Xy=(t,e)=>{const r=t._withMods||(t._withMods={}),n=e.join(".");return r[n]||(r[n]=(l,...o)=>{for(let s=0;s{const r=t._withKeys||(t._withKeys={}),n=e.join(".");return r[n]||(r[n]=l=>{if(!("key"in l))return;const o=Dr(l.key);return e.some(s=>s===o||am[s]===o)?t(l):void 0})},lm=Xt({patchProp:(t,e,r,n,l,o)=>{const s=l==="svg";e==="class"?function(i,a,u){const c=i[mi];c&&(a=(a?[a,...c]:[...c]).join(" ")),a==null?i.removeAttribute("class"):u?i.setAttribute("class",a):i.className=a}(t,n,s):e==="style"?function(i,a,u){const c=i.style,d=qt(u);let f=!1;if(u&&!d){if(a)if(qt(a))for(const m of a.split(";")){const b=m.slice(0,m.indexOf(":")).trim();u[b]==null&&Hi(c,b,"")}else for(const m in a)u[m]==null&&Hi(c,m,"");for(const m in u)m==="display"&&(f=!0),Hi(c,m,u[m])}else if(d){if(a!==u){const m=c[pf];m&&(u+=";"+m),c.cssText=u,f=em.test(u)}}else a&&i.removeAttribute("style");lo in i&&(i[lo]=f?c.display:"",i[ff]&&(c.display="none"))}(t,r,n):yo(e)?ol(e)||rm(t,e,0,n,o):(e[0]==="."?(e=e.slice(1),1):e[0]==="^"?(e=e.slice(1),0):function(i,a,u,c){if(c)return a==="innerHTML"||a==="textContent"||!!(a in i&&Mu(a)&&Tt(u));if(a==="spellcheck"||a==="draggable"||a==="translate"||a==="form"||a==="list"&&i.tagName==="INPUT"||a==="type"&&i.tagName==="TEXTAREA")return!1;if(a==="width"||a==="height"){const d=i.tagName;if(d==="IMG"||d==="VIDEO"||d==="CANVAS"||d==="SOURCE")return!1}return Mu(a)&&qt(u)?!1:a in i}(t,e,n,s))?(Ru(t,e,n),t.tagName.includes("-")||e!=="value"&&e!=="checked"&&e!=="selected"||Cu(t,e,n,s,0,e!=="value")):!t._isVueCE||!/[A-Z]/.test(e)&&qt(n)?(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),Cu(t,e,n,s)):Ru(t,xe(e),n,0,e)}},Xg);let Lu;const tb=(...t)=>{const e=(Lu||(Lu=jg(lm))).createApp(...t),{mount:r}=e;return e.mount=n=>{const l=function(i){return qt(i)?document.querySelector(i):i}(n);if(!l)return;const o=e._component;Tt(o)||o.render||o.template||(o.template=l.innerHTML),l.nodeType===1&&(l.textContent="");const s=r(l,!1,function(i){if(i instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&i instanceof MathMLElement)return"mathml"}(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),s},e};let df;const xo=t=>df=t,gf=Symbol();function Ws(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var ii,es;function eb(){const t=lh(!0),e=t.run(()=>ml({}));let r=[],n=[];const l=gl({install(o){xo(l),l._a=o,o.provide(gf,l),o.config.globalProperties.$pinia=l,n.forEach(s=>r.push(s)),n=[]},use(o){return this._a?r.push(o):n.push(o),this},_p:r,_a:null,_e:t,_s:new Map,state:e});return l}(es=ii||(ii={})).direct="direct",es.patchObject="patch object",es.patchFunction="patch function";const mf=()=>{};function ju(t,e,r,n=mf){t.push(e);const l=()=>{const o=t.indexOf(e);o>-1&&(t.splice(o,1),n())};return!r&&uh()&&function(o){ce&&ce.cleanups.push(o)}(l),l}function bn(t,...e){t.slice().forEach(r=>{r(...e)})}const um=t=>t(),Uu=Symbol(),rs=Symbol();function $s(t,e){t instanceof Map&&e instanceof Map?e.forEach((r,n)=>t.set(n,r)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const r in e){if(!e.hasOwnProperty(r))continue;const n=e[r],l=t[r];Ws(l)&&Ws(n)&&t.hasOwnProperty(r)&&!Yt(n)&&!Mr(n)?t[r]=$s(l,n):t[r]=n}return t}const cm=Symbol(),{assign:Sr}=Object;function hm(t,e,r,n){const{state:l,actions:o,getters:s}=e,i=r.state.value[t];let a;return a=yf(t,function(){i||(r.state.value[t]=l?l():{});const u=function(c){const d=At(c)?new Array(c.length):{};for(const f in c)d[f]=dg(c,f);return d}(r.state.value[t]);return Sr(u,o,Object.keys(s||{}).reduce((c,d)=>(c[d]=gl(Ie(()=>{xo(r);const f=r._s.get(t);return s[d].call(f,f)})),c),{}))},e,r,n,!0),a}function yf(t,e,r={},n,l,o){let s;const i=Sr({actions:{}},r),a={deep:!0};let u,c,d,f=[],m=[];const b=n.state.value[t];let _;function S(I){let E;u=c=!1,typeof I=="function"?(I(n.state.value[t]),E={type:ii.patchFunction,storeId:t,events:d}):($s(n.state.value[t],I),E={type:ii.patchObject,payload:I,storeId:t,events:d});const w=_=Symbol();yl().then(()=>{_===w&&(u=!0)}),c=!0,bn(f,E,n.state.value[t])}o||b||(n.state.value[t]={}),ml({});const U=o?function(){const{state:I}=r,E=I?I():{};this.$patch(w=>{Sr(w,E)})}:mf,D=(I,E="")=>{if(Uu in I)return I[rs]=E,I;const w=function(){xo(n);const P=Array.from(arguments),R=[],et=[];let st;bn(m,{args:P,name:w[rs],store:K,after:function(X){R.push(X)},onError:function(X){et.push(X)}});try{st=I.apply(this&&this.$id===t?this:K,P)}catch(X){throw bn(et,X),X}return st instanceof Promise?st.then(X=>(bn(R,X),X)).catch(X=>(bn(et,X),Promise.reject(X))):(bn(R,st),st)};return w[Uu]=!0,w[rs]=E,w},K=_i({_p:n,$id:t,$onAction:ju.bind(null,m),$patch:S,$reset:U,$subscribe(I,E={}){const w=ju(f,I,E.detached,()=>P()),P=s.run(()=>ri(()=>n.state.value[t],R=>{(E.flush==="sync"?c:u)&&I({storeId:t,type:ii.direct,events:d},R)},Sr({},a,E)));return w},$dispose:function(){s.stop(),f=[],m=[],n._s.delete(t)}});n._s.set(t,K);const $=(n._a&&n._a.runWithContext||um)(()=>n._e.run(()=>(s=lh()).run(()=>e({action:D}))));for(const I in $){const E=$[I];if(Yt(E)&&(!Yt(B=E)||!B.effect)||Mr(E))o||(!b||Ws(Y=E)&&Y.hasOwnProperty(cm)||(Yt(E)?E.value=b[I]:$s(E,b[I])),n.state.value[t][I]=E);else if(typeof E=="function"){const w=D(E,I);$[I]=w,i.actions[I]=E}}var Y,B;return Sr(K,$),Sr(Ct(K),$),Object.defineProperty(K,"$state",{get:()=>n.state.value[t],set:I=>{S(E=>{Sr(E,I)})}}),n._p.forEach(I=>{Sr(K,s.run(()=>I({store:K,app:n._a,pinia:n,options:i})))}),b&&o&&r.hydrate&&r.hydrate(K.$state,b),u=!0,c=!0,K}/*! #__NO_SIDE_EFFECTS__ */function rb(t,e,r){let n,l;const o=typeof e=="function";function s(i,a){return(i=i||(re||Zt||sn?Ge(gf,null):null))&&xo(i),(i=df)._s.has(n)||(o?yf(n,e,l,i):hm(n,l,i)),i._s.get(n)}return n=t,l=o?r:e,s.$id=n,s}/*! - * vue-router v4.4.5 - * (c) 2024 Eduardo San Martin Morote - * @license MIT - */const En=typeof document<"u";function Nu(t){return typeof t=="object"||"displayName"in t||"props"in t||"__vccOpts"in t}const Bt=Object.assign;function ns(t,e){const r={};for(const n in e){const l=e[n];r[n]=Ne(l)?l.map(t):t(l)}return r}const oi=()=>{},Ne=Array.isArray,bf=/#/g,fm=/&/g,pm=/\//g,dm=/=/g,gm=/\?/g,vf=/\+/g,mm=/%5B/g,ym=/%5D/g,wf=/%5E/g,bm=/%60/g,_f=/%7B/g,vm=/%7C/g,Ef=/%7D/g,wm=/%20/g;function xl(t){return encodeURI(""+t).replace(vm,"|").replace(mm,"[").replace(ym,"]")}function is(t){return xl(t).replace(vf,"%2B").replace(wm,"+").replace(bf,"%23").replace(fm,"%26").replace(bm,"`").replace(_f,"{").replace(Ef,"}").replace(wf,"^")}function _m(t){return t==null?"":function(e){return xl(e).replace(bf,"%23").replace(gm,"%3F")}(t).replace(pm,"%2F")}function yi(t){try{return decodeURIComponent(""+t)}catch{}return""+t}const Em=/\/$/;function os(t,e,r="/"){let n,l={},o="",s="";const i=e.indexOf("#");let a=e.indexOf("?");return i=0&&(a=-1),a>-1&&(n=e.slice(0,a),o=e.slice(a+1,i>-1?i:e.length),l=t(o)),i>-1&&(n=n||e.slice(0,i),s=e.slice(i,e.length)),n=function(u,c){if(u.startsWith("/"))return u;if(!u)return c;const d=c.split("/"),f=u.split("/"),m=f[f.length-1];m!==".."&&m!=="."||f.push("");let b,_,S=d.length-1;for(b=0;b1&&S--}return d.slice(0,S).join("/")+"/"+f.slice(b).join("/")}(n??e,r),{fullPath:n+(o&&"?")+o+s,path:n,query:l,hash:yi(s)}}function Du(t,e){return e&&t.toLowerCase().startsWith(e.toLowerCase())?t.slice(e.length)||"/":t}function Cn(t,e){return(t.aliasOf||t)===(e.aliasOf||e)}function Sf(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const r in t)if(!Sm(t[r],e[r]))return!1;return!0}function Sm(t,e){return Ne(t)?Fu(t,e):Ne(e)?Fu(e,t):t===e}function Fu(t,e){return Ne(e)?t.length===e.length&&t.every((r,n)=>r===e[n]):t.length===1&&t[0]===e}const Er={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var bi,Wu,si,ss;function Am(t){if(!t)if(En){const e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else t="/";return t[0]!=="/"&&t[0]!=="#"&&(t="/"+t),t.replace(Em,"")}(Wu=bi||(bi={})).pop="pop",Wu.push="push",(ss=si||(si={})).back="back",ss.forward="forward",ss.unknown="";const km=/^[^#]+#/;function Im(t,e){return t.replace(km,"#")+e}const Co=()=>({left:window.scrollX,top:window.scrollY});function Tm(t){let e;if("el"in t){const r=t.el,n=typeof r=="string"&&r.startsWith("#"),l=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!l)return;e=function(o,s){const i=document.documentElement.getBoundingClientRect(),a=o.getBoundingClientRect();return{behavior:s.behavior,left:a.left-i.left-(s.left||0),top:a.top-i.top-(s.top||0)}}(l,t)}else e=t;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function $u(t,e){return(history.state?history.state.position-e:-1)+t}const as=new Map;function Af(t,e){const{pathname:r,search:n,hash:l}=e,o=t.indexOf("#");if(o>-1){let s=l.includes(t.slice(o))?t.slice(o).length:1,i=l.slice(s);return i[0]!=="/"&&(i="/"+i),Du(i,"")}return Du(r,t)+n+l}function Vu(t,e,r,n=!1,l=!1){return{back:t,current:e,forward:r,replaced:n,position:window.history.length,scroll:l?Co():null}}function Om(t){const{history:e,location:r}=window,n={value:Af(t,r)},l={value:e.state};function o(s,i,a){const u=t.indexOf("#"),c=u>-1?(r.host&&document.querySelector("base")?t:t.slice(u))+s:location.protocol+"//"+location.host+t+s;try{e[a?"replaceState":"pushState"](i,"",c),l.value=i}catch{r[a?"replace":"assign"](c)}}return l.value||o(n.value,{back:null,current:n.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0),{location:n,state:l,push:function(s,i){const a=Bt({},l.value,e.state,{forward:s,scroll:Co()});o(a.current,a,!0),o(s,Bt({},Vu(n.value,s,null),{position:a.position+1},i),!1),n.value=s},replace:function(s,i){o(s,Bt({},e.state,Vu(l.value.back,s,l.value.forward,!0),i,{position:l.value.position}),!0),n.value=s}}}function xm(t){const e=Om(t=Am(t)),r=function(l,o,s,i){let a=[],u=[],c=null;const d=({state:m})=>{const b=Af(l,location),_=s.value,S=o.value;let U=0;if(m){if(s.value=b,o.value=m,c&&c===_)return void(c=null);U=S?m.position-S.position:0}else i(b);a.forEach(D=>{D(s.value,_,{delta:U,type:bi.pop,direction:U?U>0?si.forward:si.back:si.unknown})})};function f(){const{history:m}=window;m.state&&m.replaceState(Bt({},m.state,{scroll:Co()}),"")}return window.addEventListener("popstate",d),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:function(){c=s.value},listen:function(m){a.push(m);const b=()=>{const _=a.indexOf(m);_>-1&&a.splice(_,1)};return u.push(b),b},destroy:function(){for(const m of u)m();u=[],window.removeEventListener("popstate",d),window.removeEventListener("beforeunload",f)}}}(t,e.state,e.location,e.replace),n=Bt({location:"",base:t,go:function(l,o=!0){o||r.pauseListeners(),history.go(l)},createHref:Im.bind(null,t)},e,r);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>e.state.value}),n}function nb(t){return(t=location.host?t||location.pathname+location.search:"").includes("#")||(t+="#"),xm(t)}function kf(t){return typeof t=="string"||typeof t=="symbol"}const If=Symbol("");var qu,vn;function Rn(t,e){return Bt(new Error,{type:t,[If]:!0},e)}function Xe(t,e){return t instanceof Error&&If in t&&(e==null||!!(t.type&e))}(vn=qu||(qu={}))[vn.aborted=4]="aborted",vn[vn.cancelled=8]="cancelled",vn[vn.duplicated=16]="duplicated";const Hu="[^/]+?",Cm={sensitive:!1,strict:!1,start:!0,end:!0},Rm=/[.+*?^${}()[\]/\\]/g;function Pm(t,e){let r=0;for(;re.length?e.length===1&&e[0]===80?1:-1:0}function zu(t,e){let r=0;const n=t.score,l=e.score;for(;r0&&e[e.length-1]<0}const Bm={type:0,value:""},Mm=/[a-zA-Z0-9_]/;function Lm(t,e,r){const n=function(o,s){const i=Bt({},Cm,s),a=[];let u=i.start?"^":"";const c=[];for(const f of o){const m=f.length?[]:[90];i.strict&&!f.length&&(u+="/");for(let b=0;b1&&(f==="*"||f==="+")&&s(`A repeatable param (${b}) must be alone in its segment. eg: '/:ids+.`),c.push({type:1,value:b,regexp:_,repeatable:f==="*"||f==="+",optional:f==="*"||f==="?"})):s("Invalid state to consume buffer"),b="")}function U(){b+=f}for(;m{o(_)}:oi}function o(i){if(kf(i)){const a=n.get(i);a&&(n.delete(i),r.splice(r.indexOf(a),1),a.children.forEach(o),a.alias.forEach(o))}else{const a=r.indexOf(i);a>-1&&(r.splice(a,1),i.record.name&&n.delete(i.record.name),i.children.forEach(o),i.alias.forEach(o))}}function s(i){const a=function(u,c){let d=0,f=c.length;for(;d!==f;){const b=d+f>>1;zu(u,c[b])<0?f=b:d=b+1}const m=function(b){let _=b;for(;_=_.parent;)if(Xu(_)&&zu(b,_)===0)return _}(u);return m&&(f=c.lastIndexOf(m,f-1)),f}(i,r);r.splice(a,0,i),i.record.name&&!Yu(i)&&n.set(i.record.name,i)}return e=Ju({strict:!1,end:!0,sensitive:!1},e),t.forEach(i=>l(i)),{addRoute:l,resolve:function(i,a){let u,c,d,f={};if("name"in i&&i.name){if(u=n.get(i.name),!u)throw Rn(1,{location:i});d=u.record.name,f=Bt(Gu(a.params,u.keys.filter(_=>!_.optional).concat(u.parent?u.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),i.params&&Gu(i.params,u.keys.map(_=>_.name))),c=u.stringify(f)}else if(i.path!=null)c=i.path,u=r.find(_=>_.re.test(c)),u&&(f=u.parse(c),d=u.record.name);else{if(u=a.name?n.get(a.name):r.find(_=>_.re.test(a.path)),!u)throw Rn(1,{location:i,currentLocation:a});d=u.record.name,f=Bt({},a.params,i.params),c=u.stringify(f)}const m=[];let b=u;for(;b;)m.unshift(b.record),b=b.parent;return{name:d,path:c,params:f,matched:m,meta:Nm(m)}},removeRoute:o,clearRoutes:function(){r.length=0,n.clear()},getRoutes:function(){return r},getRecordMatcher:function(i){return n.get(i)}}}function Gu(t,e){const r={};for(const n of e)n in t&&(r[n]=t[n]);return r}function Qu(t){const e={path:t.path,redirect:t.redirect,name:t.name,meta:t.meta||{},aliasOf:t.aliasOf,beforeEnter:t.beforeEnter,props:Um(t),children:t.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in t?t.components||null:t.component&&{default:t.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function Um(t){const e={},r=t.props||!1;if("component"in t)e.default=r;else for(const n in t.components)e[n]=typeof r=="object"?r[n]:r;return e}function Yu(t){for(;t;){if(t.record.aliasOf)return!0;t=t.parent}return!1}function Nm(t){return t.reduce((e,r)=>Bt(e,r.meta),{})}function Ju(t,e){const r={};for(const n in t)r[n]=n in e?e[n]:t[n];return r}function Xu({record:t}){return!!(t.name||t.components&&Object.keys(t.components).length||t.redirect)}function Dm(t){const e={};if(t===""||t==="?")return e;const r=(t[0]==="?"?t.slice(1):t).split("&");for(let n=0;no&&is(o)):[n&&is(n)]).forEach(o=>{o!==void 0&&(e+=(e.length?"&":"")+r,o!=null&&(e+="="+o))})}return e}function Fm(t){const e={};for(const r in t){const n=t[r];n!==void 0&&(e[r]=Ne(n)?n.map(l=>l==null?null:""+l):n==null?n:""+n)}return e}const Wm=Symbol(""),tc=Symbol(""),Cl=Symbol(""),Tf=Symbol(""),Vs=Symbol("");function Vn(){let t=[];return{add:function(e){return t.push(e),()=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)}},list:()=>t.slice(),reset:function(){t=[]}}}function Rr(t,e,r,n,l,o=s=>s()){const s=n&&(n.enterCallbacks[l]=n.enterCallbacks[l]||[]);return()=>new Promise((i,a)=>{const u=f=>{var m;f===!1?a(Rn(4,{from:r,to:e})):f instanceof Error?a(f):typeof(m=f)=="string"||m&&typeof m=="object"?a(Rn(2,{from:e,to:f})):(s&&n.enterCallbacks[l]===s&&typeof f=="function"&&s.push(f),i())},c=o(()=>t.call(n&&n.instances[l],e,r,u));let d=Promise.resolve(c);t.length<3&&(d=d.then(u)),d.catch(f=>a(f))})}function ls(t,e,r,n,l=o=>o()){const o=[];for(const s of t)for(const i in s.components){let a=s.components[i];if(e==="beforeRouteEnter"||s.instances[i])if(Nu(a)){const u=(a.__vccOpts||a)[e];u&&o.push(Rr(u,r,n,s,i,l))}else{let u=a();o.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${i}" at "${s.path}"`);const d=(f=c).__esModule||f[Symbol.toStringTag]==="Module"||f.default&&Nu(f.default)?c.default:c;var f;s.mods[i]=c,s.components[i]=d;const m=(d.__vccOpts||d)[e];return m&&Rr(m,r,n,s,i,l)()}))}}return o}function ec(t){const e=Ge(Cl),r=Ge(Tf),n=Ie(()=>{const i=On(t.to);return e.resolve(i)}),l=Ie(()=>{const{matched:i}=n.value,{length:a}=i,u=i[a-1],c=r.matched;if(!u||!c.length)return-1;const d=c.findIndex(Cn.bind(null,u));if(d>-1)return d;const f=rc(i[a-2]);return a>1&&rc(u)===f&&c[c.length-1].path!==f?c.findIndex(Cn.bind(null,i[a-2])):d}),o=Ie(()=>l.value>-1&&function(i,a){for(const u in a){const c=a[u],d=i[u];if(typeof c=="string"){if(c!==d)return!1}else if(!Ne(d)||d.length!==c.length||c.some((f,m)=>f!==d[m]))return!1}return!0}(r.params,n.value.params)),s=Ie(()=>l.value>-1&&l.value===r.matched.length-1&&Sf(r.params,n.value.params));return{route:n,href:Ie(()=>n.value.href),isActive:o,isExactActive:s,navigate:function(i={}){return function(a){if(!(a.metaKey||a.altKey||a.ctrlKey||a.shiftKey)&&!a.defaultPrevented&&!(a.button!==void 0&&a.button!==0)){if(a.currentTarget&&a.currentTarget.getAttribute){const u=a.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(u))return}return a.preventDefault&&a.preventDefault(),!0}}(i)?e[On(t.replace)?"replace":"push"](On(t.to)).catch(oi):Promise.resolve()}}}const $m=Fh({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"}},useLink:ec,setup(t,{slots:e}){const r=_i(ec(t)),{options:n}=Ge(Cl),l=Ie(()=>({[nc(t.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[nc(t.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const o=e.default&&e.default(r);return t.custom?o:Ol("a",{"aria-current":r.isExactActive?t.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:l.value},o)}}});function rc(t){return t?t.aliasOf?t.aliasOf.path:t.path:""}const nc=(t,e,r)=>t??e??r;function ic(t,e){if(!t)return null;const r=t(e);return r.length===1?r[0]:r}const Vm=Fh({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(t,{attrs:e,slots:r}){const n=Ge(Vs),l=Ie(()=>t.route||n.value),o=Ge(tc,0),s=Ie(()=>{let u=On(o);const{matched:c}=l.value;let d;for(;(d=c[u])&&!d.components;)u++;return u}),i=Ie(()=>l.value.matched[s.value]);$i(tc,Ie(()=>s.value+1)),$i(Wm,i),$i(Vs,l);const a=ml();return ri(()=>[a.value,i.value,t.name],([u,c,d],[f,m,b])=>{c&&(c.instances[d]=u,m&&m!==c&&u&&u===f&&(c.leaveGuards.size||(c.leaveGuards=m.leaveGuards),c.updateGuards.size||(c.updateGuards=m.updateGuards))),!u||!c||m&&Cn(c,m)&&f||(c.enterCallbacks[d]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=l.value,c=t.name,d=i.value,f=d&&d.components[c];if(!f)return ic(r.default,{Component:f,route:u});const m=d.props[c],b=m?m===!0?u.params:typeof m=="function"?m(u):m:null,_=Ol(f,Bt({},b,e,{onVnodeUnmounted:S=>{S.component.isUnmounted&&(d.instances[c]=null)},ref:a}));return ic(r.default,{Component:_,route:u})||_}}});function ib(t){const e=jm(t.routes,t),r=t.parseQuery||Dm,n=t.stringifyQuery||Zu,l=t.history,o=Vn(),s=Vn(),i=Vn(),a=Ih(Er,!0);let u=Er;En&&t.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=ns.bind(null,T=>""+T),d=ns.bind(null,_m),f=ns.bind(null,yi);function m(T,q){if(q=Bt({},q||a.value),typeof T=="string"){const rt=os(r,T,q.path),Z=e.resolve({path:rt.path},q),dt=l.createHref(rt.fullPath);return Bt(rt,Z,{params:f(Z.params),hash:yi(rt.hash),redirectedFrom:void 0,href:dt})}let tt;if(T.path!=null)tt=Bt({},T,{path:os(r,T.path,q.path).path});else{const rt=Bt({},T.params);for(const Z in rt)rt[Z]==null&&delete rt[Z];tt=Bt({},T,{params:d(rt)}),q.params=d(q.params)}const it=e.resolve(tt,q),lt=T.hash||"";it.params=c(f(it.params));const ut=function(rt,Z){const dt=Z.query?rt(Z.query):"";return Z.path+(dt&&"?")+dt+(Z.hash||"")}(n,Bt({},T,{hash:(pt=lt,xl(pt).replace(_f,"{").replace(Ef,"}").replace(wf,"^")),path:it.path}));var pt;const H=l.createHref(ut);return Bt({fullPath:ut,hash:lt,query:n===Zu?Fm(T.query):T.query||{}},it,{redirectedFrom:void 0,href:H})}function b(T){return typeof T=="string"?os(r,T,a.value.path):Bt({},T)}function _(T,q){if(u!==T)return Rn(8,{from:q,to:T})}function S(T){return D(T)}function U(T){const q=T.matched[T.matched.length-1];if(q&&q.redirect){const{redirect:tt}=q;let it=typeof tt=="function"?tt(T):tt;return typeof it=="string"&&(it=it.includes("?")||it.includes("#")?it=b(it):{path:it},it.params={}),Bt({query:T.query,hash:T.hash,params:it.path!=null?{}:T.params},it)}}function D(T,q){const tt=u=m(T),it=a.value,lt=T.state,ut=T.force,pt=T.replace===!0,H=U(tt);if(H)return D(Bt(b(H),{state:typeof H=="object"?Bt({},lt,H.state):lt,force:ut,replace:pt}),q||tt);const rt=tt;let Z;return rt.redirectedFrom=q,!ut&&function(dt,L,A){const F=L.matched.length-1,h=A.matched.length-1;return F>-1&&F===h&&Cn(L.matched[F],A.matched[h])&&Sf(L.params,A.params)&&dt(L.query)===dt(A.query)&&L.hash===A.hash}(n,it,tt)&&(Z=Rn(16,{to:rt,from:it}),j(it,it,!0,!1)),(Z?Promise.resolve(Z):Y(rt,it)).catch(dt=>Xe(dt)?Xe(dt,2)?dt:X(dt):st(dt,rt,it)).then(dt=>{if(dt){if(Xe(dt,2))return D(Bt({replace:pt},b(dt.to),{state:typeof dt.to=="object"?Bt({},lt,dt.to.state):lt,force:ut}),q||rt)}else dt=I(rt,it,!0,pt,lt);return B(rt,it,dt),dt})}function K(T,q){const tt=_(T,q);return tt?Promise.reject(tt):Promise.resolve()}function $(T){const q=nt.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(T):T()}function Y(T,q){let tt;const[it,lt,ut]=function(H,rt){const Z=[],dt=[],L=[],A=Math.max(rt.matched.length,H.matched.length);for(let F=0;FCn(y,h))?dt.push(h):Z.push(h));const p=H.matched[F];p&&(rt.matched.find(y=>Cn(y,p))||L.push(p))}return[Z,dt,L]}(T,q);tt=ls(it.reverse(),"beforeRouteLeave",T,q);for(const H of it)H.leaveGuards.forEach(rt=>{tt.push(Rr(rt,T,q))});const pt=K.bind(null,T,q);return tt.push(pt),G(tt).then(()=>{tt=[];for(const H of o.list())tt.push(Rr(H,T,q));return tt.push(pt),G(tt)}).then(()=>{tt=ls(lt,"beforeRouteUpdate",T,q);for(const H of lt)H.updateGuards.forEach(rt=>{tt.push(Rr(rt,T,q))});return tt.push(pt),G(tt)}).then(()=>{tt=[];for(const H of ut)if(H.beforeEnter)if(Ne(H.beforeEnter))for(const rt of H.beforeEnter)tt.push(Rr(rt,T,q));else tt.push(Rr(H.beforeEnter,T,q));return tt.push(pt),G(tt)}).then(()=>(T.matched.forEach(H=>H.enterCallbacks={}),tt=ls(ut,"beforeRouteEnter",T,q,$),tt.push(pt),G(tt))).then(()=>{tt=[];for(const H of s.list())tt.push(Rr(H,T,q));return tt.push(pt),G(tt)}).catch(H=>Xe(H,8)?H:Promise.reject(H))}function B(T,q,tt){i.list().forEach(it=>$(()=>it(T,q,tt)))}function I(T,q,tt,it,lt){const ut=_(T,q);if(ut)return ut;const pt=q===Er,H=En?history.state:{};tt&&(it||pt?l.replace(T.fullPath,Bt({scroll:pt&&H&&H.scroll},lt)):l.push(T.fullPath,lt)),a.value=T,j(T,q,tt,pt),X()}let E;function w(){E||(E=l.listen((T,q,tt)=>{if(!Q.listening)return;const it=m(T),lt=U(it);if(lt)return void D(Bt(lt,{replace:!0}),it).catch(oi);u=it;const ut=a.value;var pt,H;En&&(pt=$u(ut.fullPath,tt.delta),H=Co(),as.set(pt,H)),Y(it,ut).catch(rt=>Xe(rt,12)?rt:Xe(rt,2)?(D(rt.to,it).then(Z=>{Xe(Z,20)&&!tt.delta&&tt.type===bi.pop&&l.go(-1,!1)}).catch(oi),Promise.reject()):(tt.delta&&l.go(-tt.delta,!1),st(rt,it,ut))).then(rt=>{(rt=rt||I(it,ut,!1))&&(tt.delta&&!Xe(rt,8)?l.go(-tt.delta,!1):tt.type===bi.pop&&Xe(rt,20)&&l.go(-1,!1)),B(it,ut,rt)}).catch(oi)}))}let P,R=Vn(),et=Vn();function st(T,q,tt){X(T);const it=et.list();return it.length&&it.forEach(lt=>lt(T,q,tt)),Promise.reject(T)}function X(T){return P||(P=!T,w(),R.list().forEach(([q,tt])=>T?tt(T):q()),R.reset()),T}function j(T,q,tt,it){const{scrollBehavior:lt}=t;if(!En||!lt)return Promise.resolve();const ut=!tt&&function(pt){const H=as.get(pt);return as.delete(pt),H}($u(T.fullPath,0))||(it||!tt)&&history.state&&history.state.scroll||null;return yl().then(()=>lt(T,q,ut)).then(pt=>pt&&Tm(pt)).catch(pt=>st(pt,T,q))}const N=T=>l.go(T);let V;const nt=new Set,Q={currentRoute:a,listening:!0,addRoute:function(T,q){let tt,it;return kf(T)?(tt=e.getRecordMatcher(T),it=q):it=T,e.addRoute(it,tt)},removeRoute:function(T){const q=e.getRecordMatcher(T);q&&e.removeRoute(q)},clearRoutes:e.clearRoutes,hasRoute:function(T){return!!e.getRecordMatcher(T)},getRoutes:function(){return e.getRoutes().map(T=>T.record)},resolve:m,options:t,push:S,replace:function(T){return S(Bt(b(T),{replace:!0}))},go:N,back:()=>N(-1),forward:()=>N(1),beforeEach:o.add,beforeResolve:s.add,afterEach:i.add,onError:et.add,isReady:function(){return P&&a.value!==Er?Promise.resolve():new Promise((T,q)=>{R.add([T,q])})},install(T){T.component("RouterLink",$m),T.component("RouterView",Vm),T.config.globalProperties.$router=this,Object.defineProperty(T.config.globalProperties,"$route",{enumerable:!0,get:()=>On(a)}),En&&!V&&a.value===Er&&(V=!0,S(l.location).catch(it=>{}));const q={};for(const it in Er)Object.defineProperty(q,it,{get:()=>a.value[it],enumerable:!0});T.provide(Cl,this),T.provide(Tf,Ah(q)),T.provide(Vs,a);const tt=T.unmount;nt.add(T),T.unmount=function(){nt.delete(T),nt.size<1&&(u=Er,E&&E(),E=null,a.value=Er,V=!1,P=!1),tt()}}};function G(T){return T.reduce((q,tt)=>q.then(()=>$(tt)),Promise.resolve())}return Q}var qs=Object.defineProperty,qm=Object.getOwnPropertyDescriptor,Hm=Object.getOwnPropertyNames,zm=Object.prototype.hasOwnProperty,ne=(t,e)=>()=>(t&&(e=t(t=0)),e),mt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),pn=(t,e)=>{for(var r in e)qs(t,r,{get:e[r],enumerable:!0})},Dt=t=>((e,r,n,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Hm(r))!zm.call(e,o)&&o!==n&&qs(e,o,{get:()=>r[o],enumerable:!(l=qm(r,o))||l.enumerable});return e})(qs({},"__esModule",{value:!0}),t),ct=ne(()=>{}),Nt={};function Rl(t){throw new Error("Node.js process "+t+" is not supported by JSPM core outside of Node.js")}function Km(){!an||!rn||(an=!1,rn.length?He=rn.concat(He):ai=-1,He.length&&Of())}function Of(){if(!an){var t=setTimeout(Km,0);an=!0;for(var e=He.length;e;){for(rn=He,He=[];++ai1)for(var r=1;rSa,_debugProcess:()=>Ea,_events:()=>Ff,_eventsCount:()=>Wf,_exiting:()=>la,_fatalExceptions:()=>va,_getActiveHandles:()=>Mf,_getActiveRequests:()=>Bf,_kill:()=>ha,_linkedBinding:()=>Rf,_maxListeners:()=>Df,_preload_modules:()=>La,_rawDebug:()=>oa,_startProfilerIdleNotifier:()=>Aa,_stopProfilerIdleNotifier:()=>ka,_tickCallback:()=>_a,abort:()=>xa,addListener:()=>$f,allowedNodeEnvironmentFlags:()=>ya,arch:()=>zs,argv:()=>Qs,argv0:()=>Ma,assert:()=>Lf,binding:()=>ta,chdir:()=>na,config:()=>ua,cpuUsage:()=>Ki,cwd:()=>ra,debugPort:()=>Ba,default:()=>Pl,dlopen:()=>Pf,domain:()=>aa,emit:()=>Kf,emitWarning:()=>Zs,env:()=>Gs,execArgv:()=>Ys,execPath:()=>Pa,exit:()=>ga,features:()=>ba,hasUncaughtExceptionCaptureCallback:()=>jf,hrtime:()=>zi,kill:()=>da,listeners:()=>Nf,memoryUsage:()=>pa,moduleLoadList:()=>sa,nextTick:()=>xf,off:()=>qf,on:()=>tr,once:()=>Vf,openStdin:()=>ma,pid:()=>Ca,platform:()=>Ks,ppid:()=>Ra,prependListener:()=>Gf,prependOnceListener:()=>Qf,reallyExit:()=>ca,release:()=>ia,removeAllListeners:()=>zf,removeListener:()=>Hf,resourceUsage:()=>fa,setSourceMapsEnabled:()=>ja,setUncaughtExceptionCaptureCallback:()=>wa,stderr:()=>Ta,stdin:()=>Oa,stdout:()=>Ia,title:()=>Hs,umask:()=>ea,uptime:()=>Uf,version:()=>Js,versions:()=>Xs});var He,an,rn,ai,Hs,zs,Ks,Gs,Qs,Ys,Js,Xs,Zs,ta,ea,ra,na,ia,oa,sa,aa,la,ua,ca,ha,Ki,fa,pa,da,ga,ma,ya,ba,va,wa,_a,Ea,Sa,Aa,ka,Ia,Ta,Oa,xa,Ca,Ra,Pa,Ba,Ma,La,ja,Pr,us,Gi,Df,Ff,Wf,$f,Vf,qf,Hf,zf,Kf,Gf,Qf,Pl,Gm=ne(()=>{ct(),ft(),ht(),He=[],an=!1,ai=-1,Cf.prototype.run=function(){this.fun.apply(null,this.array)},Hs="browser",zs="x64",Ks="browser",Gs={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},Qs=["/usr/bin/node"],Ys=[],Js="v16.8.0",Xs={},Zs=function(t,e){},ta=function(t){Rl("binding")},ea=function(t){return 0},ra=function(){return"/"},na=function(t){},ia={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},oa=se,sa=[],aa={},la=!1,ua={},ca=se,ha=se,fa=Ki=function(){return{}},pa=Ki,da=se,ga=se,ma=se,ya={},ba={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},va=se,wa=se,_a=se,Ea=se,Sa=se,Aa=se,ka=se,Ia=void 0,Ta=void 0,Oa=void 0,xa=se,Ca=2,Ra=1,Pa="/bin/usr/node",Ba=9229,Ma="node",La=[],ja=se,(Pr={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0}).now===void 0&&(us=Date.now(),Pr.timing&&Pr.timing.navigationStart&&(us=Pr.timing.navigationStart),Pr.now=()=>Date.now()-us),Gi=1e9,zi.bigint=function(t){var e=zi(t);return typeof BigInt>"u"?e[0]*Gi+e[1]:BigInt(e[0]*Gi)+BigInt(e[1])},Pl={version:Js,versions:Xs,arch:zs,platform:Ks,release:ia,_rawDebug:oa,moduleLoadList:sa,binding:ta,_linkedBinding:Rf,_events:Ff={},_eventsCount:Wf=0,_maxListeners:Df=10,on:tr,addListener:$f=tr,once:Vf=tr,off:qf=tr,removeListener:Hf=tr,removeAllListeners:zf=tr,emit:Kf=se,prependListener:Gf=tr,prependOnceListener:Qf=tr,listeners:Nf,domain:aa,_exiting:la,config:ua,dlopen:Pf,uptime:Uf,_getActiveRequests:Bf,_getActiveHandles:Mf,reallyExit:ca,_kill:ha,cpuUsage:Ki,resourceUsage:fa,memoryUsage:pa,kill:da,exit:ga,openStdin:ma,allowedNodeEnvironmentFlags:ya,assert:Lf,features:ba,_fatalExceptions:va,setUncaughtExceptionCaptureCallback:wa,hasUncaughtExceptionCaptureCallback:jf,emitWarning:Zs,nextTick:xf,_tickCallback:_a,_debugProcess:Ea,_debugEnd:Sa,_startProfilerIdleNotifier:Aa,_stopProfilerIdleNotifier:ka,stdout:Ia,stdin:Oa,stderr:Ta,abort:xa,umask:ea,chdir:na,cwd:ra,env:Gs,title:Hs,argv:Qs,execArgv:Ys,pid:Ca,ppid:Ra,execPath:Pa,debugPort:Ba,hrtime:zi,argv0:Ma,_preload_modules:La,setSourceMapsEnabled:ja}}),ht=ne(()=>{Gm()}),ie={};function Qm(){if(Da)return Ar;Da=!0;let t=function(){if(Ua)return Sn;Ua=!0,Sn.byteLength=function(k){var M=x(k),W=M[0],J=M[1];return 3*(W+J)/4-J},Sn.toByteArray=function(k){var M,W,J=x(k),at=J[0],ot=J[1],vt=new y(function(Ot,kt,Mt){return 3*(kt+Mt)/4-Mt}(0,at,ot)),bt=0,wt=ot>0?at-4:at;for(W=0;W>16&255,vt[bt++]=M>>8&255,vt[bt++]=255&M;return ot===2&&(M=p[k.charCodeAt(W)]<<2|p[k.charCodeAt(W+1)]>>4,vt[bt++]=255&M),ot===1&&(M=p[k.charCodeAt(W)]<<10|p[k.charCodeAt(W+1)]<<4|p[k.charCodeAt(W+2)]>>2,vt[bt++]=M>>8&255,vt[bt++]=255&M),vt},Sn.fromByteArray=function(k){for(var M,W=k.length,J=W%3,at=[],ot=16383,vt=0,bt=W-J;vtbt?bt:vt+ot));return J===1?(M=k[W-1],at.push(h[M>>2]+h[M<<4&63]+"==")):J===2&&(M=(k[W-2]<<8)+k[W-1],at.push(h[M>>10]+h[M>>4&63]+h[M<<2&63]+"=")),at.join("")};for(var h=[],p=[],y=typeof Uint8Array<"u"?Uint8Array:Array,O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",C=0;C<64;++C)h[C]=O[C],p[O.charCodeAt(C)]=C;function x(k){var M=k.length;if(M%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var W=k.indexOf("=");return W===-1&&(W=M),[W,W===M?0:4-W%4]}function g(k){return h[k>>18&63]+h[k>>12&63]+h[k>>6&63]+h[63&k]}function v(k,M,W){for(var J,at=[],ot=M;ot>1,W=-7,J=y?C-1:0,at=y?-1:1,ot=h[p+J];for(J+=at,x=ot&(1<<-W)-1,ot>>=-W,W+=v;W>0;x=256*x+h[p+J],J+=at,W-=8);for(g=x&(1<<-W)-1,x>>=-W,W+=O;W>0;g=256*g+h[p+J],J+=at,W-=8);if(x===0)x=1-M;else{if(x===k)return g?NaN:1/0*(ot?-1:1);g+=Math.pow(2,O),x-=M}return(ot?-1:1)*g*Math.pow(2,x-O)},Qi.write=function(h,p,y,O,C,x){var g,v,k,M=8*x-C-1,W=(1<>1,at=C===23?Math.pow(2,-24)-Math.pow(2,-77):0,ot=O?0:x-1,vt=O?1:-1,bt=p<0||p===0&&1/p<0?1:0;for(p=Math.abs(p),isNaN(p)||p===1/0?(v=isNaN(p)?1:0,g=W):(g=Math.floor(Math.log(p)/Math.LN2),p*(k=Math.pow(2,-g))<1&&(g--,k*=2),(p+=g+J>=1?at/k:at*Math.pow(2,1-J))*k>=2&&(g++,k/=2),g+J>=W?(v=0,g=W):g+J>=1?(v=(p*k-1)*Math.pow(2,C),g+=J):(v=p*Math.pow(2,J-1)*Math.pow(2,C),g=0));C>=8;h[y+ot]=255&v,ot+=vt,v/=256,C-=8);for(g=g<0;h[y+ot]=255&g,ot+=vt,g/=256,M-=8);h[y+ot-vt]|=128*bt}),Qi),r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ar.Buffer=o,Ar.SlowBuffer=function(h){return+h!=h&&(h=0),o.alloc(+h)},Ar.INSPECT_MAX_BYTES=50;let n=2147483647;function l(h){if(h>n)throw new RangeError('The value "'+h+'" is invalid for option "size"');let p=new Uint8Array(h);return Object.setPrototypeOf(p,o.prototype),p}function o(h,p,y){if(typeof h=="number"){if(typeof p=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return a(h)}return s(h,p,y)}function s(h,p,y){if(typeof h=="string")return function(x,g){if((typeof g!="string"||g==="")&&(g="utf8"),!o.isEncoding(g))throw new TypeError("Unknown encoding: "+g);let v=0|f(x,g),k=l(v),M=k.write(x,g);return M!==v&&(k=k.slice(0,M)),k}(h,p);if(ArrayBuffer.isView(h))return function(x){if(Z(x,Uint8Array)){let g=new Uint8Array(x);return c(g.buffer,g.byteOffset,g.byteLength)}return u(x)}(h);if(h==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h);if(Z(h,ArrayBuffer)||h&&Z(h.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Z(h,SharedArrayBuffer)||h&&Z(h.buffer,SharedArrayBuffer)))return c(h,p,y);if(typeof h=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let O=h.valueOf&&h.valueOf();if(O!=null&&O!==h)return o.from(O,p,y);let C=function(x){if(o.isBuffer(x)){let g=0|d(x.length),v=l(g);return v.length===0||x.copy(v,0,0,g),v}if(x.length!==void 0)return typeof x.length!="number"||dt(x.length)?l(0):u(x);if(x.type==="Buffer"&&Array.isArray(x.data))return u(x.data)}(h);if(C)return C;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof h[Symbol.toPrimitive]=="function")return o.from(h[Symbol.toPrimitive]("string"),p,y);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h)}function i(h){if(typeof h!="number")throw new TypeError('"size" argument must be of type number');if(h<0)throw new RangeError('The value "'+h+'" is invalid for option "size"')}function a(h){return i(h),l(h<0?0:0|d(h))}function u(h){let p=h.length<0?0:0|d(h.length),y=l(p);for(let O=0;O=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return 0|h}function f(h,p){if(o.isBuffer(h))return h.length;if(ArrayBuffer.isView(h)||Z(h,ArrayBuffer))return h.byteLength;if(typeof h!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof h);let y=h.length,O=arguments.length>2&&arguments[2]===!0;if(!O&&y===0)return 0;let C=!1;for(;;)switch(p){case"ascii":case"latin1":case"binary":return y;case"utf8":case"utf-8":return pt(h).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*y;case"hex":return y>>>1;case"base64":return H(h).length;default:if(C)return O?-1:pt(h).length;p=(""+p).toLowerCase(),C=!0}}function m(h,p,y){let O=!1;if((p===void 0||p<0)&&(p=0),p>this.length||((y===void 0||y>this.length)&&(y=this.length),y<=0)||(y>>>=0)<=(p>>>=0))return"";for(h||(h="utf8");;)switch(h){case"hex":return R(this,p,y);case"utf8":case"utf-8":return I(this,p,y);case"ascii":return w(this,p,y);case"latin1":case"binary":return P(this,p,y);case"base64":return B(this,p,y);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return et(this,p,y);default:if(O)throw new TypeError("Unknown encoding: "+h);h=(h+"").toLowerCase(),O=!0}}function b(h,p,y){let O=h[p];h[p]=h[y],h[y]=O}function _(h,p,y,O,C){if(h.length===0)return-1;if(typeof y=="string"?(O=y,y=0):y>2147483647?y=2147483647:y<-2147483648&&(y=-2147483648),dt(y=+y)&&(y=C?0:h.length-1),y<0&&(y=h.length+y),y>=h.length){if(C)return-1;y=h.length-1}else if(y<0){if(!C)return-1;y=0}if(typeof p=="string"&&(p=o.from(p,O)),o.isBuffer(p))return p.length===0?-1:S(h,p,y,O,C);if(typeof p=="number")return p&=255,typeof Uint8Array.prototype.indexOf=="function"?C?Uint8Array.prototype.indexOf.call(h,p,y):Uint8Array.prototype.lastIndexOf.call(h,p,y):S(h,[p],y,O,C);throw new TypeError("val must be string, number or Buffer")}function S(h,p,y,O,C){let x,g=1,v=h.length,k=p.length;if(O!==void 0&&((O=String(O).toLowerCase())==="ucs2"||O==="ucs-2"||O==="utf16le"||O==="utf-16le")){if(h.length<2||p.length<2)return-1;g=2,v/=2,k/=2,y/=2}function M(W,J){return g===1?W[J]:W.readUInt16BE(J*g)}if(C){let W=-1;for(x=y;xv&&(y=v-k),x=y;x>=0;x--){let W=!0;for(let J=0;JC&&(O=C):O=C;let x,g=p.length;for(O>g/2&&(O=g/2),x=0;x>8,k=g%256,M.push(k),M.push(v);return M}(p,h.length-y),h,y,O)}function B(h,p,y){return p===0&&y===h.length?t.fromByteArray(h):t.fromByteArray(h.slice(p,y))}function I(h,p,y){y=Math.min(h.length,y);let O=[],C=p;for(;C239?4:x>223?3:x>191?2:1;if(C+v<=y){let k,M,W,J;switch(v){case 1:x<128&&(g=x);break;case 2:k=h[C+1],(192&k)==128&&(J=(31&x)<<6|63&k,J>127&&(g=J));break;case 3:k=h[C+1],M=h[C+2],(192&k)==128&&(192&M)==128&&(J=(15&x)<<12|(63&k)<<6|63&M,J>2047&&(J<55296||J>57343)&&(g=J));break;case 4:k=h[C+1],M=h[C+2],W=h[C+3],(192&k)==128&&(192&M)==128&&(192&W)==128&&(J=(15&x)<<18|(63&k)<<12|(63&M)<<6|63&W,J>65535&&J<1114112&&(g=J))}}g===null?(g=65533,v=1):g>65535&&(g-=65536,O.push(g>>>10&1023|55296),g=56320|1023&g),O.push(g),C+=v}return function(x){let g=x.length;if(g<=E)return String.fromCharCode.apply(String,x);let v="",k=0;for(;kO.length?(o.isBuffer(x)||(x=o.from(x)),x.copy(O,C)):Uint8Array.prototype.set.call(O,x,C);else{if(!o.isBuffer(x))throw new TypeError('"list" argument must be an Array of Buffers');x.copy(O,C)}C+=x.length}return O},o.byteLength=f,o.prototype._isBuffer=!0,o.prototype.swap16=function(){let h=this.length;if(h%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let p=0;pp&&(h+=" ... "),""},r&&(o.prototype[r]=o.prototype.inspect),o.prototype.compare=function(h,p,y,O,C){if(Z(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),!o.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(p===void 0&&(p=0),y===void 0&&(y=h?h.length:0),O===void 0&&(O=0),C===void 0&&(C=this.length),p<0||y>h.length||O<0||C>this.length)throw new RangeError("out of range index");if(O>=C&&p>=y)return 0;if(O>=C)return-1;if(p>=y)return 1;if(this===h)return 0;let x=(C>>>=0)-(O>>>=0),g=(y>>>=0)-(p>>>=0),v=Math.min(x,g),k=this.slice(O,C),M=h.slice(p,y);for(let W=0;W>>=0,isFinite(y)?(y>>>=0,O===void 0&&(O="utf8")):(O=y,y=void 0)}let C=this.length-p;if((y===void 0||y>C)&&(y=C),h.length>0&&(y<0||p<0)||p>this.length)throw new RangeError("Attempt to write outside buffer bounds");O||(O="utf8");let x=!1;for(;;)switch(O){case"hex":return U(this,h,p,y);case"utf8":case"utf-8":return D(this,h,p,y);case"ascii":case"latin1":case"binary":return K(this,h,p,y);case"base64":return $(this,h,p,y);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Y(this,h,p,y);default:if(x)throw new TypeError("Unknown encoding: "+O);O=(""+O).toLowerCase(),x=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};let E=4096;function w(h,p,y){let O="";y=Math.min(h.length,y);for(let C=p;CO)&&(y=O);let C="";for(let x=p;xy)throw new RangeError("Trying to access beyond buffer length")}function X(h,p,y,O,C,x){if(!o.isBuffer(h))throw new TypeError('"buffer" argument must be a Buffer instance');if(p>C||ph.length)throw new RangeError("Index out of range")}function j(h,p,y,O,C){tt(p,O,C,h,y,7);let x=Number(p&BigInt(4294967295));h[y++]=x,x>>=8,h[y++]=x,x>>=8,h[y++]=x,x>>=8,h[y++]=x;let g=Number(p>>BigInt(32)&BigInt(4294967295));return h[y++]=g,g>>=8,h[y++]=g,g>>=8,h[y++]=g,g>>=8,h[y++]=g,y}function N(h,p,y,O,C){tt(p,O,C,h,y,7);let x=Number(p&BigInt(4294967295));h[y+7]=x,x>>=8,h[y+6]=x,x>>=8,h[y+5]=x,x>>=8,h[y+4]=x;let g=Number(p>>BigInt(32)&BigInt(4294967295));return h[y+3]=g,g>>=8,h[y+2]=g,g>>=8,h[y+1]=g,g>>=8,h[y]=g,y+8}function V(h,p,y,O,C,x){if(y+O>h.length)throw new RangeError("Index out of range");if(y<0)throw new RangeError("Index out of range")}function nt(h,p,y,O,C){return p=+p,y>>>=0,C||V(h,0,y,4),e.write(h,p,y,O,23,4),y+4}function Q(h,p,y,O,C){return p=+p,y>>>=0,C||V(h,0,y,8),e.write(h,p,y,O,52,8),y+8}o.prototype.slice=function(h,p){let y=this.length;(h=~~h)<0?(h+=y)<0&&(h=0):h>y&&(h=y),(p=p===void 0?y:~~p)<0?(p+=y)<0&&(p=0):p>y&&(p=y),p>>=0,p>>>=0,y||st(h,p,this.length);let O=this[h],C=1,x=0;for(;++x>>=0,p>>>=0,y||st(h,p,this.length);let O=this[h+--p],C=1;for(;p>0&&(C*=256);)O+=this[h+--p]*C;return O},o.prototype.readUint8=o.prototype.readUInt8=function(h,p){return h>>>=0,p||st(h,1,this.length),this[h]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(h,p){return h>>>=0,p||st(h,2,this.length),this[h]|this[h+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(h,p){return h>>>=0,p||st(h,2,this.length),this[h]<<8|this[h+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(h,p){return h>>>=0,p||st(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+16777216*this[h+3]},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(h,p){return h>>>=0,p||st(h,4,this.length),16777216*this[h]+(this[h+1]<<16|this[h+2]<<8|this[h+3])},o.prototype.readBigUInt64LE=A(function(h){it(h>>>=0,"offset");let p=this[h],y=this[h+7];(p===void 0||y===void 0)&<(h,this.length-8);let O=p+256*this[++h]+65536*this[++h]+this[++h]*2**24,C=this[++h]+256*this[++h]+65536*this[++h]+y*2**24;return BigInt(O)+(BigInt(C)<>>=0,"offset");let p=this[h],y=this[h+7];(p===void 0||y===void 0)&<(h,this.length-8);let O=p*2**24+65536*this[++h]+256*this[++h]+this[++h],C=this[++h]*2**24+65536*this[++h]+256*this[++h]+y;return(BigInt(O)<>>=0,p>>>=0,y||st(h,p,this.length);let O=this[h],C=1,x=0;for(;++x=C&&(O-=Math.pow(2,8*p)),O},o.prototype.readIntBE=function(h,p,y){h>>>=0,p>>>=0,y||st(h,p,this.length);let O=p,C=1,x=this[h+--O];for(;O>0&&(C*=256);)x+=this[h+--O]*C;return C*=128,x>=C&&(x-=Math.pow(2,8*p)),x},o.prototype.readInt8=function(h,p){return h>>>=0,p||st(h,1,this.length),128&this[h]?-1*(255-this[h]+1):this[h]},o.prototype.readInt16LE=function(h,p){h>>>=0,p||st(h,2,this.length);let y=this[h]|this[h+1]<<8;return 32768&y?4294901760|y:y},o.prototype.readInt16BE=function(h,p){h>>>=0,p||st(h,2,this.length);let y=this[h+1]|this[h]<<8;return 32768&y?4294901760|y:y},o.prototype.readInt32LE=function(h,p){return h>>>=0,p||st(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},o.prototype.readInt32BE=function(h,p){return h>>>=0,p||st(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},o.prototype.readBigInt64LE=A(function(h){it(h>>>=0,"offset");let p=this[h],y=this[h+7];(p===void 0||y===void 0)&<(h,this.length-8);let O=this[h+4]+256*this[h+5]+65536*this[h+6]+(y<<24);return(BigInt(O)<>>=0,"offset");let p=this[h],y=this[h+7];(p===void 0||y===void 0)&<(h,this.length-8);let O=(p<<24)+65536*this[++h]+256*this[++h]+this[++h];return(BigInt(O)<>>=0,p||st(h,4,this.length),e.read(this,h,!0,23,4)},o.prototype.readFloatBE=function(h,p){return h>>>=0,p||st(h,4,this.length),e.read(this,h,!1,23,4)},o.prototype.readDoubleLE=function(h,p){return h>>>=0,p||st(h,8,this.length),e.read(this,h,!0,52,8)},o.prototype.readDoubleBE=function(h,p){return h>>>=0,p||st(h,8,this.length),e.read(this,h,!1,52,8)},o.prototype.writeUintLE=o.prototype.writeUIntLE=function(h,p,y,O){h=+h,p>>>=0,y>>>=0,!O&&X(this,h,p,y,Math.pow(2,8*y)-1,0);let C=1,x=0;for(this[p]=255&h;++x>>=0,y>>>=0,!O&&X(this,h,p,y,Math.pow(2,8*y)-1,0);let C=y-1,x=1;for(this[p+C]=255&h;--C>=0&&(x*=256);)this[p+C]=h/x&255;return p+y},o.prototype.writeUint8=o.prototype.writeUInt8=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,1,255,0),this[p]=255&h,p+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,2,65535,0),this[p]=255&h,this[p+1]=h>>>8,p+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,2,65535,0),this[p]=h>>>8,this[p+1]=255&h,p+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,4,4294967295,0),this[p+3]=h>>>24,this[p+2]=h>>>16,this[p+1]=h>>>8,this[p]=255&h,p+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,4,4294967295,0),this[p]=h>>>24,this[p+1]=h>>>16,this[p+2]=h>>>8,this[p+3]=255&h,p+4},o.prototype.writeBigUInt64LE=A(function(h,p=0){return j(this,h,p,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=A(function(h,p=0){return N(this,h,p,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(h,p,y,O){if(h=+h,p>>>=0,!O){let v=Math.pow(2,8*y-1);X(this,h,p,y,v-1,-v)}let C=0,x=1,g=0;for(this[p]=255&h;++C>>=0,!O){let v=Math.pow(2,8*y-1);X(this,h,p,y,v-1,-v)}let C=y-1,x=1,g=0;for(this[p+C]=255&h;--C>=0&&(x*=256);)h<0&&g===0&&this[p+C+1]!==0&&(g=1),this[p+C]=(h/x|0)-g&255;return p+y},o.prototype.writeInt8=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,1,127,-128),h<0&&(h=255+h+1),this[p]=255&h,p+1},o.prototype.writeInt16LE=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,2,32767,-32768),this[p]=255&h,this[p+1]=h>>>8,p+2},o.prototype.writeInt16BE=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,2,32767,-32768),this[p]=h>>>8,this[p+1]=255&h,p+2},o.prototype.writeInt32LE=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,4,2147483647,-2147483648),this[p]=255&h,this[p+1]=h>>>8,this[p+2]=h>>>16,this[p+3]=h>>>24,p+4},o.prototype.writeInt32BE=function(h,p,y){return h=+h,p>>>=0,y||X(this,h,p,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[p]=h>>>24,this[p+1]=h>>>16,this[p+2]=h>>>8,this[p+3]=255&h,p+4},o.prototype.writeBigInt64LE=A(function(h,p=0){return j(this,h,p,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=A(function(h,p=0){return N(this,h,p,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeFloatLE=function(h,p,y){return nt(this,h,p,!0,y)},o.prototype.writeFloatBE=function(h,p,y){return nt(this,h,p,!1,y)},o.prototype.writeDoubleLE=function(h,p,y){return Q(this,h,p,!0,y)},o.prototype.writeDoubleBE=function(h,p,y){return Q(this,h,p,!1,y)},o.prototype.copy=function(h,p,y,O){if(!o.isBuffer(h))throw new TypeError("argument should be a Buffer");if(y||(y=0),!O&&O!==0&&(O=this.length),p>=h.length&&(p=h.length),p||(p=0),O>0&&O=this.length)throw new RangeError("Index out of range");if(O<0)throw new RangeError("sourceEnd out of bounds");O>this.length&&(O=this.length),h.length-p>>=0,y=y===void 0?this.length:y>>>0,h||(h=0),typeof h=="number")for(C=p;C=O+4;y-=3)p=`_${h.slice(y-3,y)}${p}`;return`${h.slice(0,y)}${p}`}function tt(h,p,y,O,C,x){if(h>y||h= 0${v} and < 2${v} ** ${8*(x+1)}${v}`:`>= -(2${v} ** ${8*(x+1)-1}${v}) and < 2 ** ${8*(x+1)-1}${v}`,new G.ERR_OUT_OF_RANGE("value",g,h)}(function(g,v,k){it(v,"offset"),(g[v]===void 0||g[v+k]===void 0)&<(v,g.length-(k+1))})(O,C,x)}function it(h,p){if(typeof h!="number")throw new G.ERR_INVALID_ARG_TYPE(p,"number",h)}function lt(h,p,y){throw Math.floor(h)!==h?(it(h,y),new G.ERR_OUT_OF_RANGE("offset","an integer",h)):p<0?new G.ERR_BUFFER_OUT_OF_BOUNDS:new G.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${p}`,h)}T("ERR_BUFFER_OUT_OF_BOUNDS",function(h){return h?`${h} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),T("ERR_INVALID_ARG_TYPE",function(h,p){return`The "${h}" argument must be of type number. Received type ${typeof p}`},TypeError),T("ERR_OUT_OF_RANGE",function(h,p,y){let O=`The value of "${h}" is out of range.`,C=y;return Number.isInteger(y)&&Math.abs(y)>2**32?C=q(String(y)):typeof y=="bigint"&&(C=String(y),(y>BigInt(2)**BigInt(32)||y<-(BigInt(2)**BigInt(32)))&&(C=q(C)),C+="n"),O+=` It must be ${p}. Received ${C}`,O},RangeError);let ut=/[^+/0-9A-Za-z-_]/g;function pt(h,p){p=p||1/0;let y,O=h.length,C=null,x=[];for(let g=0;g55295&&y<57344){if(!C){if(y>56319){(p-=3)>-1&&x.push(239,191,189);continue}if(g+1===O){(p-=3)>-1&&x.push(239,191,189);continue}C=y;continue}if(y<56320){(p-=3)>-1&&x.push(239,191,189),C=y;continue}y=65536+(C-55296<<10|y-56320)}else C&&(p-=3)>-1&&x.push(239,191,189);if(C=null,y<128){if((p-=1)<0)break;x.push(y)}else if(y<2048){if((p-=2)<0)break;x.push(y>>6|192,63&y|128)}else if(y<65536){if((p-=3)<0)break;x.push(y>>12|224,y>>6&63|128,63&y|128)}else{if(!(y<1114112))throw new Error("Invalid code point");if((p-=4)<0)break;x.push(y>>18|240,y>>12&63|128,y>>6&63|128,63&y|128)}}return x}function H(h){return t.toByteArray(function(p){if((p=(p=p.split("=")[0]).trim().replace(ut,"")).length<2)return"";for(;p.length%4!=0;)p+="=";return p}(h))}function rt(h,p,y,O){let C;for(C=0;C=p.length||C>=h.length);++C)p[C+y]=h[C];return C}function Z(h,p){return h instanceof p||h!=null&&h.constructor!=null&&h.constructor.name!=null&&h.constructor.name===p.name}function dt(h){return h!=h}let L=function(){let h="0123456789abcdef",p=new Array(256);for(let y=0;y<16;++y){let O=16*y;for(let C=0;C<16;++C)p[O+C]=h[y]+h[C]}return p}();function A(h){return typeof BigInt>"u"?F:h}function F(){throw new Error("BigInt not supported")}return Ar}pn(ie,{Buffer:()=>co,INSPECT_MAX_BYTES:()=>Yf,default:()=>kr,kMaxLength:()=>Jf});var Sn,Ua,Qi,Na,Ar,Da,kr,co,Yf,Jf,oe=ne(()=>{ct(),ft(),ht(),Sn={},Ua=!1,Qi={},Na=!1,Ar={},Da=!1,(kr=Qm()).Buffer,kr.SlowBuffer,kr.INSPECT_MAX_BYTES,kr.kMaxLength,co=kr.Buffer,Yf=kr.INSPECT_MAX_BYTES,Jf=kr.kMaxLength}),ft=ne(()=>{oe()}),Ym=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e){this.aliasToTopic={},this.max=e}put(e,r){return!(r===0||r>this.max)&&(this.aliasToTopic[r]=e,this.length=Object.keys(this.aliasToTopic).length,!0)}getTopicByAlias(e){return this.aliasToTopic[e]}clear(){this.aliasToTopic={}}}}),te=mt((t,e)=>{ct(),ft(),ht(),e.exports={ArrayIsArray:r=>Array.isArray(r),ArrayPrototypeIncludes:(r,n)=>r.includes(n),ArrayPrototypeIndexOf:(r,n)=>r.indexOf(n),ArrayPrototypeJoin:(r,n)=>r.join(n),ArrayPrototypeMap:(r,n)=>r.map(n),ArrayPrototypePop:(r,n)=>r.pop(n),ArrayPrototypePush:(r,n)=>r.push(n),ArrayPrototypeSlice:(r,n,l)=>r.slice(n,l),Error,FunctionPrototypeCall:(r,n,...l)=>r.call(n,...l),FunctionPrototypeSymbolHasInstance:(r,n)=>Function.prototype[Symbol.hasInstance].call(r,n),MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties:(r,n)=>Object.defineProperties(r,n),ObjectDefineProperty:(r,n,l)=>Object.defineProperty(r,n,l),ObjectGetOwnPropertyDescriptor:(r,n)=>Object.getOwnPropertyDescriptor(r,n),ObjectKeys:r=>Object.keys(r),ObjectSetPrototypeOf:(r,n)=>Object.setPrototypeOf(r,n),Promise,PromisePrototypeCatch:(r,n)=>r.catch(n),PromisePrototypeThen:(r,n,l)=>r.then(n,l),PromiseReject:r=>Promise.reject(r),ReflectApply:Reflect.apply,RegExpPrototypeTest:(r,n)=>r.test(n),SafeSet:Set,String,StringPrototypeSlice:(r,n,l)=>r.slice(n,l),StringPrototypeToLowerCase:r=>r.toLowerCase(),StringPrototypeToUpperCase:r=>r.toUpperCase(),StringPrototypeTrim:r=>r.trim(),Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet:(r,n,l)=>r.set(n,l),Uint8Array}}),hr=mt((t,e)=>{ct(),ft(),ht();var r=(oe(),Dt(ie)),n=Object.getPrototypeOf(async function(){}).constructor,l=globalThis.Blob||r.Blob,o=typeof l<"u"?function(i){return i instanceof l}:function(i){return!1},s=class extends Error{constructor(i){if(!Array.isArray(i))throw new TypeError("Expected input to be an Array, got "+typeof i);let a="";for(let u=0;u{i=u,a=c}),resolve:i,reject:a}},promisify:i=>new Promise((a,u)=>{i((c,...d)=>c?u(c):a(...d))}),debuglog:()=>function(){},format:(i,...a)=>i.replace(/%([sdifj])/g,function(...[u,c]){let d=a.shift();return c==="f"?d.toFixed(6):c==="j"?JSON.stringify(d):c==="s"&&typeof d=="object"?`${d.constructor!==Object?d.constructor.name:""} {}`.trim():d.toString()}),inspect(i){switch(typeof i){case"string":if(i.includes("'")){if(!i.includes('"'))return`"${i}"`;if(!i.includes("`")&&!i.includes("${"))return`\`${i}\``}return`'${i}'`;case"number":return isNaN(i)?"NaN":Object.is(i,-0)?String(i):i;case"bigint":return`${String(i)}n`;case"boolean":case"undefined":return String(i);case"object":return"{}"}},types:{isAsyncFunction:i=>i instanceof n,isArrayBufferView:i=>ArrayBuffer.isView(i)},isBlob:o},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}),Bl=mt((t,e)=>{ct(),ft(),ht();var{AbortController:r,AbortSignal:n}=typeof self<"u"?self:typeof window<"u"?window:void 0;e.exports=r,e.exports.AbortSignal=n,e.exports.default=r}),ve=mt((t,e)=>{ct(),ft(),ht();var{format:r,inspect:n,AggregateError:l}=hr(),o=globalThis.AggregateError||l,s=Symbol("kIsNodeError"),i=["string","function","number","object","Function","Object","boolean","bigint","symbol"],a=/^([A-Z][a-z0-9]*)+$/,u={};function c(_,S){if(!_)throw new u.ERR_INTERNAL_ASSERTION(S)}function d(_){let S="",U=_.length,D=_[0]==="-"?1:0;for(;U>=D+4;U-=3)S=`_${_.slice(U-3,U)}${S}`;return`${_.slice(0,U)}${S}`}function f(_,S,U){U||(U=Error);class D extends U{constructor(...$){super(function(Y,B,I){if(typeof B=="function")return c(B.length<=I.length,`Code: ${Y}; The provided arguments length (${I.length}) does not match the required ones (${B.length}).`),B(...I);let E=(B.match(/%[dfijoOs]/g)||[]).length;return c(E===I.length,`Code: ${Y}; The provided arguments length (${I.length}) does not match the required ones (${E}).`),I.length===0?B:r(B,...I)}(_,S,$))}toString(){return`${this.name} [${_}]: ${this.message}`}}Object.defineProperties(D.prototype,{name:{value:U.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${_}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),D.prototype.code=_,D.prototype[s]=!0,u[_]=D}function m(_){let S="__node_internal_"+_.name;return Object.defineProperty(_,"name",{value:S}),_}var b=class extends Error{constructor(_="The operation was aborted",S=void 0){if(S!==void 0&&typeof S!="object")throw new u.ERR_INVALID_ARG_TYPE("options","Object",S);super(_,S),this.code="ABORT_ERR",this.name="AbortError"}};f("ERR_ASSERTION","%s",Error),f("ERR_INVALID_ARG_TYPE",(_,S,U)=>{c(typeof _=="string","'name' must be a string"),Array.isArray(S)||(S=[S]);let D="The ";_.endsWith(" argument")?D+=`${_} `:D+=`"${_}" ${_.includes(".")?"property":"argument"} `,D+="must be ";let K=[],$=[],Y=[];for(let I of S)c(typeof I=="string","All expected entries have to be of type string"),i.includes(I)?K.push(I.toLowerCase()):a.test(I)?$.push(I):(c(I!=="object",'The value "object" should be written as "Object"'),Y.push(I));if($.length>0){let I=K.indexOf("object");I!==-1&&(K.splice(K,I,1),$.push("Object"))}if(K.length>0){switch(K.length){case 1:D+=`of type ${K[0]}`;break;case 2:D+=`one of type ${K[0]} or ${K[1]}`;break;default:{let I=K.pop();D+=`one of type ${K.join(", ")}, or ${I}`}}($.length>0||Y.length>0)&&(D+=" or ")}if($.length>0){switch($.length){case 1:D+=`an instance of ${$[0]}`;break;case 2:D+=`an instance of ${$[0]} or ${$[1]}`;break;default:{let I=$.pop();D+=`an instance of ${$.join(", ")}, or ${I}`}}Y.length>0&&(D+=" or ")}switch(Y.length){case 0:break;case 1:Y[0].toLowerCase()!==Y[0]&&(D+="an "),D+=`${Y[0]}`;break;case 2:D+=`one of ${Y[0]} or ${Y[1]}`;break;default:{let I=Y.pop();D+=`one of ${Y.join(", ")}, or ${I}`}}if(U==null)D+=`. Received ${U}`;else if(typeof U=="function"&&U.name)D+=`. Received function ${U.name}`;else if(typeof U=="object"){var B;(B=U.constructor)!==null&&B!==void 0&&B.name?D+=`. Received an instance of ${U.constructor.name}`:D+=`. Received ${n(U,{depth:-1})}`}else{let I=n(U,{colors:!1});I.length>25&&(I=`${I.slice(0,25)}...`),D+=`. Received type ${typeof U} (${I})`}return D},TypeError),f("ERR_INVALID_ARG_VALUE",(_,S,U="is invalid")=>{let D=n(S);return D.length>128&&(D=D.slice(0,128)+"..."),`The ${_.includes(".")?"property":"argument"} '${_}' ${U}. Received ${D}`},TypeError),f("ERR_INVALID_RETURN_VALUE",(_,S,U)=>{var D;return`Expected ${_} to be returned from the "${S}" function but got ${U!=null&&(D=U.constructor)!==null&&D!==void 0&&D.name?`instance of ${U.constructor.name}`:"type "+typeof U}.`},TypeError),f("ERR_MISSING_ARGS",(..._)=>{c(_.length>0,"At least one arg needs to be specified");let S,U=_.length;switch(_=(Array.isArray(_)?_:[_]).map(D=>`"${D}"`).join(" or "),U){case 1:S+=`The ${_[0]} argument`;break;case 2:S+=`The ${_[0]} and ${_[1]} arguments`;break;default:{let D=_.pop();S+=`The ${_.join(", ")}, and ${D} arguments`}}return`${S} must be specified`},TypeError),f("ERR_OUT_OF_RANGE",(_,S,U)=>{let D;return c(S,'Missing "range" argument'),Number.isInteger(U)&&Math.abs(U)>2**32?D=d(String(U)):typeof U=="bigint"?(D=String(U),(U>2n**32n||U<-(2n**32n))&&(D=d(D)),D+="n"):D=n(U),`The value of "${_}" is out of range. It must be ${S}. Received ${D}`},RangeError),f("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),f("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),f("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),f("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),f("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),f("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),f("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),f("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),f("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),f("ERR_STREAM_WRITE_AFTER_END","write after end",Error),f("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),e.exports={AbortError:b,aggregateTwoErrors:m(function(_,S){if(_&&S&&_!==S){if(Array.isArray(S.errors))return S.errors.push(_),S;let U=new o([S,_],S.message);return U.code=S.code,U}return _||S}),hideStackFrames:m,codes:u}}),Ro=mt((t,e)=>{ct(),ft(),ht();var{ArrayIsArray:r,ArrayPrototypeIncludes:n,ArrayPrototypeJoin:l,ArrayPrototypeMap:o,NumberIsInteger:s,NumberIsNaN:i,NumberMAX_SAFE_INTEGER:a,NumberMIN_SAFE_INTEGER:u,NumberParseInt:c,ObjectPrototypeHasOwnProperty:d,RegExpPrototypeExec:f,String:m,StringPrototypeToUpperCase:b,StringPrototypeTrim:_}=te(),{hideStackFrames:S,codes:{ERR_SOCKET_BAD_PORT:U,ERR_INVALID_ARG_TYPE:D,ERR_INVALID_ARG_VALUE:K,ERR_OUT_OF_RANGE:$,ERR_UNKNOWN_SIGNAL:Y}}=ve(),{normalizeEncoding:B}=hr(),{isAsyncFunction:I,isArrayBufferView:E}=hr().types,w={},P=/^[0-7]+$/,R=S((H,rt,Z=u,dt=a)=>{if(typeof H!="number")throw new D(rt,"number",H);if(!s(H))throw new $(rt,"an integer",H);if(Hdt)throw new $(rt,`>= ${Z} && <= ${dt}`,H)}),et=S((H,rt,Z=-2147483648,dt=2147483647)=>{if(typeof H!="number")throw new D(rt,"number",H);if(!s(H))throw new $(rt,"an integer",H);if(Hdt)throw new $(rt,`>= ${Z} && <= ${dt}`,H)}),st=S((H,rt,Z=!1)=>{if(typeof H!="number")throw new D(rt,"number",H);if(!s(H))throw new $(rt,"an integer",H);let dt=Z?1:0,L=4294967295;if(HL)throw new $(rt,`>= ${dt} && <= ${L}`,H)});function X(H,rt){if(typeof H!="string")throw new D(rt,"string",H)}var j=S((H,rt,Z)=>{if(!n(Z,H)){let dt="must be one of: "+l(o(Z,L=>typeof L=="string"?`'${L}'`:m(L)),", ");throw new K(rt,H,dt)}});function N(H,rt){if(typeof H!="boolean")throw new D(rt,"boolean",H)}function V(H,rt,Z){return H!=null&&d(H,rt)?H[rt]:Z}var nt=S((H,rt,Z=null)=>{let dt=V(Z,"allowArray",!1),L=V(Z,"allowFunction",!1);if(!V(Z,"nullable",!1)&&H===null||!dt&&r(H)||typeof H!="object"&&(!L||typeof H!="function"))throw new D(rt,"Object",H)}),Q=S((H,rt)=>{if(H!=null&&typeof H!="object"&&typeof H!="function")throw new D(rt,"a dictionary",H)}),G=S((H,rt,Z=0)=>{if(!r(H))throw new D(rt,"Array",H);if(H.length{if(!E(H))throw new D(rt,["Buffer","TypedArray","DataView"],H)}),q=S((H,rt)=>{if(H!==void 0&&(H===null||typeof H!="object"||!("aborted"in H)))throw new D(rt,"AbortSignal",H)}),tt=S((H,rt)=>{if(typeof H!="function")throw new D(rt,"Function",H)}),it=S((H,rt)=>{if(typeof H!="function"||I(H))throw new D(rt,"Function",H)}),lt=S((H,rt)=>{if(H!==void 0)throw new D(rt,"undefined",H)}),ut=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function pt(H,rt){if(typeof H>"u"||!f(ut,H))throw new K(rt,H,'must be an array or string of format "; rel=preload; as=style"')}e.exports={isInt32:function(H){return H===(0|H)},isUint32:function(H){return H===H>>>0},parseFileMode:function(H,rt,Z){if(typeof H>"u"&&(H=Z),typeof H=="string"){if(f(P,H)===null)throw new K(rt,H,"must be a 32-bit unsigned integer or an octal string");H=c(H,8)}return st(H,rt),H},validateArray:G,validateStringArray:function(H,rt){G(H,rt);for(let Z=0;Zdt||(Z!=null||dt!=null)&&i(H))throw new $(rt,`${Z!=null?`>= ${Z}`:""}${Z!=null&&dt!=null?" && ":""}${dt!=null?`<= ${dt}`:""}`,H)},validateObject:nt,validateOneOf:j,validatePlainFunction:it,validatePort:function(H,rt="Port",Z=!0){if(typeof H!="number"&&typeof H!="string"||typeof H=="string"&&_(H).length===0||+H!=+H>>>0||H>65535||H===0&&!Z)throw new U(rt,H,Z);return 0|H},validateSignalName:function(H,rt="signal"){if(X(H,rt),w[H]===void 0)throw w[b(H)]!==void 0?new Y(H+" (signals must use all capital letters)"):new Y(H)},validateString:X,validateUint32:st,validateUndefined:lt,validateUnion:function(H,rt,Z){if(!n(Z,H))throw new D(rt,`('${l(Z,"|")}')`,H)},validateAbortSignal:q,validateLinkHeaderValue:function(H){if(typeof H=="string")return pt(H,"hints"),H;if(r(H)){let rt=H.length,Z="";if(rt===0)return Z;for(let dt=0;dt; rel=preload; as=style"')}}}),dn=mt((t,e)=>{ct(),ft(),ht();var r,n,l=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function i(S){if(r===setTimeout)return setTimeout(S,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(S,0);try{return r(S,0)}catch{try{return r.call(null,S,0)}catch{return r.call(this,S,0)}}}(function(){try{r=typeof setTimeout=="function"?setTimeout:o}catch{r=o}try{n=typeof clearTimeout=="function"?clearTimeout:s}catch{n=s}})();var a,u=[],c=!1,d=-1;function f(){!c||!a||(c=!1,a.length?u=a.concat(u):d=-1,u.length&&m())}function m(){if(!c){var S=i(f);c=!0;for(var U=u.length;U;){for(a=u,u=[];++d1)for(var D=1;D{ct(),ft(),ht();var{Symbol:r,SymbolAsyncIterator:n,SymbolIterator:l,SymbolFor:o}=te(),s=r("kDestroyed"),i=r("kIsErrored"),a=r("kIsReadable"),u=r("kIsDisturbed"),c=o("nodejs.webstream.isClosedPromise"),d=o("nodejs.webstream.controllerErrorFunction");function f(w,P=!1){var R;return!(!w||typeof w.pipe!="function"||typeof w.on!="function"||P&&(typeof w.pause!="function"||typeof w.resume!="function")||w._writableState&&((R=w._readableState)===null||R===void 0?void 0:R.readable)===!1||w._writableState&&!w._readableState)}function m(w){var P;return!(!w||typeof w.write!="function"||typeof w.on!="function"||w._readableState&&((P=w._writableState)===null||P===void 0?void 0:P.writable)===!1)}function b(w){return w&&(w._readableState||w._writableState||typeof w.write=="function"&&typeof w.on=="function"||typeof w.pipe=="function"&&typeof w.on=="function")}function _(w){return!(!w||b(w)||typeof w.pipeThrough!="function"||typeof w.getReader!="function"||typeof w.cancel!="function")}function S(w){return!(!w||b(w)||typeof w.getWriter!="function"||typeof w.abort!="function")}function U(w){return!(!w||b(w)||typeof w.readable!="object"||typeof w.writable!="object")}function D(w){if(!b(w))return null;let P=w._writableState,R=w._readableState,et=P||R;return!!(w.destroyed||w[s]||et!=null&&et.destroyed)}function K(w){if(!m(w))return null;if(w.writableEnded===!0)return!0;let P=w._writableState;return(P==null||!P.errored)&&(typeof(P==null?void 0:P.ended)!="boolean"?null:P.ended)}function $(w,P){if(!f(w))return null;let R=w._readableState;return(R==null||!R.errored)&&(typeof(R==null?void 0:R.endEmitted)!="boolean"?null:!!(R.endEmitted||P===!1&&R.ended===!0&&R.length===0))}function Y(w){return w&&w[a]!=null?w[a]:typeof(w==null?void 0:w.readable)!="boolean"?null:!D(w)&&f(w)&&w.readable&&!$(w)}function B(w){return typeof(w==null?void 0:w.writable)!="boolean"?null:!D(w)&&m(w)&&w.writable&&!K(w)}function I(w){return typeof w._closed=="boolean"&&typeof w._defaultKeepAlive=="boolean"&&typeof w._removedConnection=="boolean"&&typeof w._removedContLen=="boolean"}function E(w){return typeof w._sent100=="boolean"&&I(w)}e.exports={kDestroyed:s,isDisturbed:function(w){var P;return!(!w||!((P=w[u])!==null&&P!==void 0?P:w.readableDidRead||w.readableAborted))},kIsDisturbed:u,isErrored:function(w){var P,R,et,st,X,j,N,V,nt,Q;return!(!w||!((P=(R=(et=(st=(X=(j=w[i])!==null&&j!==void 0?j:w.readableErrored)!==null&&X!==void 0?X:w.writableErrored)!==null&&st!==void 0?st:(N=w._readableState)===null||N===void 0?void 0:N.errorEmitted)!==null&&et!==void 0?et:(V=w._writableState)===null||V===void 0?void 0:V.errorEmitted)!==null&&R!==void 0?R:(nt=w._readableState)===null||nt===void 0?void 0:nt.errored)!==null&&P!==void 0?P:(Q=w._writableState)!==null&&Q!==void 0&&Q.errored))},kIsErrored:i,isReadable:Y,kIsReadable:a,kIsClosedPromise:c,kControllerErrorFunction:d,isClosed:function(w){if(!b(w))return null;if(typeof w.closed=="boolean")return w.closed;let P=w._writableState,R=w._readableState;return typeof(P==null?void 0:P.closed)=="boolean"||typeof(R==null?void 0:R.closed)=="boolean"?(P==null?void 0:P.closed)||(R==null?void 0:R.closed):typeof w._closed=="boolean"&&I(w)?w._closed:null},isDestroyed:D,isDuplexNodeStream:function(w){return!(!w||typeof w.pipe!="function"||!w._readableState||typeof w.on!="function"||typeof w.write!="function")},isFinished:function(w,P){return b(w)?!!D(w)||!((P==null?void 0:P.readable)!==!1&&Y(w)||(P==null?void 0:P.writable)!==!1&&B(w)):null},isIterable:function(w,P){return w!=null&&(P===!0?typeof w[n]=="function":P===!1?typeof w[l]=="function":typeof w[n]=="function"||typeof w[l]=="function")},isReadableNodeStream:f,isReadableStream:_,isReadableEnded:function(w){if(!f(w))return null;if(w.readableEnded===!0)return!0;let P=w._readableState;return!(!P||P.errored)&&(typeof(P==null?void 0:P.ended)!="boolean"?null:P.ended)},isReadableFinished:$,isReadableErrored:function(w){var P,R;return b(w)?w.readableErrored?w.readableErrored:(P=(R=w._readableState)===null||R===void 0?void 0:R.errored)!==null&&P!==void 0?P:null:null},isNodeStream:b,isWebStream:function(w){return _(w)||S(w)||U(w)},isWritable:B,isWritableNodeStream:m,isWritableStream:S,isWritableEnded:K,isWritableFinished:function(w,P){if(!m(w))return null;if(w.writableFinished===!0)return!0;let R=w._writableState;return(R==null||!R.errored)&&(typeof(R==null?void 0:R.finished)!="boolean"?null:!!(R.finished||P===!1&&R.ended===!0&&R.length===0))},isWritableErrored:function(w){var P,R;return b(w)?w.writableErrored?w.writableErrored:(P=(R=w._writableState)===null||R===void 0?void 0:R.errored)!==null&&P!==void 0?P:null:null},isServerRequest:function(w){var P;return typeof w._consuming=="boolean"&&typeof w._dumped=="boolean"&&((P=w.req)===null||P===void 0?void 0:P.upgradeOrConnect)===void 0},isServerResponse:E,willEmitClose:function(w){if(!b(w))return null;let P=w._writableState,R=w._readableState,et=P||R;return!et&&E(w)||!!(et&&et.autoDestroy&&et.emitClose&&et.closed===!1)},isTransformStream:U}}),Fr=mt((t,e)=>{ct(),ft(),ht();var r=dn(),{AbortError:n,codes:l}=ve(),{ERR_INVALID_ARG_TYPE:o,ERR_STREAM_PREMATURE_CLOSE:s}=l,{kEmptyObject:i,once:a}=hr(),{validateAbortSignal:u,validateFunction:c,validateObject:d,validateBoolean:f}=Ro(),{Promise:m,PromisePrototypeThen:b}=te(),{isClosed:_,isReadable:S,isReadableNodeStream:U,isReadableStream:D,isReadableFinished:K,isReadableErrored:$,isWritable:Y,isWritableNodeStream:B,isWritableStream:I,isWritableFinished:E,isWritableErrored:w,isNodeStream:P,willEmitClose:R,kIsClosedPromise:et}=mr(),st=()=>{};function X(j,N,V){var nt,Q;if(arguments.length===2?(V=N,N=i):N==null?N=i:d(N,"options"),c(V,"callback"),u(N.signal,"options.signal"),V=a(V),D(j)||I(j))return function(p,y,O){let C=!1,x=st;if(y.signal)if(x=()=>{C=!0,O.call(p,new n(void 0,{cause:y.signal.reason}))},y.signal.aborted)r.nextTick(x);else{let v=O;O=a((...k)=>{y.signal.removeEventListener("abort",x),v.apply(p,k)}),y.signal.addEventListener("abort",x)}let g=(...v)=>{C||r.nextTick(()=>O.apply(p,v))};return b(p[et].promise,g,g),st}(j,N,V);if(!P(j))throw new o("stream",["ReadableStream","WritableStream","Stream"],j);let G=(nt=N.readable)!==null&&nt!==void 0?nt:U(j),T=(Q=N.writable)!==null&&Q!==void 0?Q:B(j),q=j._writableState,tt=j._readableState,it=()=>{j.writable||pt()},lt=R(j)&&U(j)===G&&B(j)===T,ut=E(j,!1),pt=()=>{ut=!0,j.destroyed&&(lt=!1),(!lt||j.readable&&!G)&&(!G||H)&&V.call(j)},H=K(j,!1),rt=()=>{H=!0,j.destroyed&&(lt=!1),(!lt||j.writable&&!T)&&(!T||ut)&&V.call(j)},Z=p=>{V.call(j,p)},dt=_(j),L=()=>{dt=!0;let p=w(j)||$(j);return p&&typeof p!="boolean"?V.call(j,p):G&&!H&&U(j,!0)&&!K(j,!1)?V.call(j,new s):!T||ut||E(j,!1)?void V.call(j):V.call(j,new s)},A=()=>{dt=!0;let p=w(j)||$(j);if(p&&typeof p!="boolean")return V.call(j,p);V.call(j)},F=()=>{j.req.on("finish",pt)};(function(p){return p.setHeader&&typeof p.abort=="function"})(j)?(j.on("complete",pt),lt||j.on("abort",L),j.req?F():j.on("request",F)):T&&!q&&(j.on("end",it),j.on("close",it)),!lt&&typeof j.aborted=="boolean"&&j.on("aborted",L),j.on("end",rt),j.on("finish",pt),N.error!==!1&&j.on("error",Z),j.on("close",L),dt?r.nextTick(L):q!=null&&q.errorEmitted||tt!=null&&tt.errorEmitted?lt||r.nextTick(A):(!G&&(!lt||S(j))&&(ut||Y(j)===!1)||!T&&(!lt||Y(j))&&(H||S(j)===!1)||tt&&j.req&&j.aborted)&&r.nextTick(A);let h=()=>{V=st,j.removeListener("aborted",L),j.removeListener("complete",pt),j.removeListener("abort",L),j.removeListener("request",F),j.req&&j.req.removeListener("finish",pt),j.removeListener("end",it),j.removeListener("close",it),j.removeListener("finish",pt),j.removeListener("end",rt),j.removeListener("error",Z),j.removeListener("close",L)};if(N.signal&&!dt){let p=()=>{let y=V;h(),y.call(j,new n(void 0,{cause:N.signal.reason}))};if(N.signal.aborted)r.nextTick(p);else{let y=V;V=a((...O)=>{N.signal.removeEventListener("abort",p),y.apply(j,O)}),N.signal.addEventListener("abort",p)}}return h}e.exports=X,e.exports.finished=function(j,N){var V;let nt=!1;return N===null&&(N=i),(V=N)!==null&&V!==void 0&&V.cleanup&&(f(N.cleanup,"cleanup"),nt=N.cleanup),new m((Q,G)=>{let T=X(j,N,q=>{nt&&T(),q?G(q):Q()})})}}),jn=mt((t,e)=>{ct(),ft(),ht();var r=dn(),{aggregateTwoErrors:n,codes:{ERR_MULTIPLE_CALLBACK:l},AbortError:o}=ve(),{Symbol:s}=te(),{kDestroyed:i,isDestroyed:a,isFinished:u,isServerRequest:c}=mr(),d=s("kDestroy"),f=s("kConstruct");function m(E,w,P){E&&(E.stack,w&&!w.errored&&(w.errored=E),P&&!P.errored&&(P.errored=E))}function b(E,w,P){let R=!1;function et(st){if(R)return;R=!0;let X=E._readableState,j=E._writableState;m(st,j,X),j&&(j.closed=!0),X&&(X.closed=!0),typeof P=="function"&&P(st),st?r.nextTick(_,E,st):r.nextTick(S,E)}try{E._destroy(w||null,et)}catch(st){et(st)}}function _(E,w){U(E,w),S(E)}function S(E){let w=E._readableState,P=E._writableState;P&&(P.closeEmitted=!0),w&&(w.closeEmitted=!0),(P!=null&&P.emitClose||w!=null&&w.emitClose)&&E.emit("close")}function U(E,w){let P=E._readableState,R=E._writableState;R!=null&&R.errorEmitted||P!=null&&P.errorEmitted||(R&&(R.errorEmitted=!0),P&&(P.errorEmitted=!0),E.emit("error",w))}function D(E,w,P){let R=E._readableState,et=E._writableState;if(et!=null&&et.destroyed||R!=null&&R.destroyed)return this;R!=null&&R.autoDestroy||et!=null&&et.autoDestroy?E.destroy(w):w&&(w.stack,et&&!et.errored&&(et.errored=w),R&&!R.errored&&(R.errored=w),P?r.nextTick(U,E,w):U(E,w))}function K(E){let w=!1;function P(R){if(w)return void D(E,R??new l);w=!0;let et=E._readableState,st=E._writableState,X=st||et;et&&(et.constructed=!0),st&&(st.constructed=!0),X.destroyed?E.emit(d,R):R?D(E,R,!0):r.nextTick($,E)}try{E._construct(R=>{r.nextTick(P,R)})}catch(R){r.nextTick(P,R)}}function $(E){E.emit(f)}function Y(E){return(E==null?void 0:E.setHeader)&&typeof E.abort=="function"}function B(E){E.emit("close")}function I(E,w){E.emit("error",w),r.nextTick(B,E)}e.exports={construct:function(E,w){if(typeof E._construct!="function")return;let P=E._readableState,R=E._writableState;P&&(P.constructed=!1),R&&(R.constructed=!1),E.once(f,w),!(E.listenerCount(f)>1)&&r.nextTick(K,E)},destroyer:function(E,w){!E||a(E)||(!w&&!u(E)&&(w=new o),c(E)?(E.socket=null,E.destroy(w)):Y(E)?E.abort():Y(E.req)?E.req.abort():typeof E.destroy=="function"?E.destroy(w):typeof E.close=="function"?E.close():w?r.nextTick(I,E,w):r.nextTick(B,E),E.destroyed||(E[i]=!0))},destroy:function(E,w){let P=this._readableState,R=this._writableState,et=R||P;return R!=null&&R.destroyed||P!=null&&P.destroyed?(typeof w=="function"&&w(),this):(m(E,R,P),R&&(R.destroyed=!0),P&&(P.destroyed=!0),et.constructed?b(this,E,w):this.once(d,function(st){b(this,n(st,E),w)}),this)},undestroy:function(){let E=this._readableState,w=this._writableState;E&&(E.constructed=!0,E.closed=!1,E.closeEmitted=!1,E.destroyed=!1,E.errored=null,E.errorEmitted=!1,E.reading=!1,E.ended=E.readable===!1,E.endEmitted=E.readable===!1),w&&(w.constructed=!0,w.destroyed=!1,w.closed=!1,w.closeEmitted=!1,w.errored=null,w.errorEmitted=!1,w.finalCalled=!1,w.prefinished=!1,w.ended=w.writable===!1,w.ending=w.writable===!1,w.finished=w.writable===!1)},errorOrDestroy:D}});function Lt(){Lt.init.call(this)}function Yi(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function Xf(t){return t._maxListeners===void 0?Lt.defaultMaxListeners:t._maxListeners}function oc(t,e,r,n){var l,o,s;if(Yi(r),(o=t._events)===void 0?(o=t._events=Object.create(null),t._eventsCount=0):(o.newListener!==void 0&&(t.emit("newListener",e,r.listener?r.listener:r),o=t._events),s=o[e]),s===void 0)s=o[e]=r,++t._eventsCount;else if(typeof s=="function"?s=o[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),(l=Xf(t))>0&&s.length>l&&!s.warned){s.warned=!0;var i=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");i.name="MaxListenersExceededWarning",i.emitter=t,i.type=e,i.count=s.length}return t}function Jm(){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 sc(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},l=Jm.bind(n);return l.listener=r,n.wrapFn=l,l}function ac(t,e,r){var n=t._events;if(n===void 0)return[];var l=n[e];return l===void 0?[]:typeof l=="function"?r?[l.listener||l]:[l]:r?function(o){for(var s=new Array(o.length),i=0;i{ct(),ft(),ht(),zr=typeof Reflect=="object"?Reflect:null,cs=zr&&typeof zr.apply=="function"?zr.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)},cc=zr&&typeof zr.ownKeys=="function"?zr.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)},hs=Number.isNaN||function(t){return t!=t},uc=Lt,Lt.EventEmitter=Lt,Lt.prototype._events=void 0,Lt.prototype._eventsCount=0,Lt.prototype._maxListeners=void 0,fs=10,Object.defineProperty(Lt,"defaultMaxListeners",{enumerable:!0,get:function(){return fs},set:function(t){if(typeof t!="number"||t<0||hs(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");fs=t}}),Lt.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},Lt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||hs(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},Lt.prototype.getMaxListeners=function(){return Xf(this)},Lt.prototype.emit=function(t){for(var e=[],r=1;r0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var i=l[t];if(i===void 0)return!1;if(typeof i=="function")cs(i,this,e);else{var a=i.length,u=Zf(i,a);for(r=0;r=0;o--)if(r[o]===e||r[o].listener===e){s=r[o].listener,l=o;break}if(l<0)return this;l===0?r.shift():function(i,a){for(;a+1=0;n--)this.removeListener(t,e[n]);return this},Lt.prototype.listeners=function(t){return ac(this,t,!0)},Lt.prototype.rawListeners=function(t){return ac(this,t,!1)},Lt.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):lc.call(t,e)},Lt.prototype.listenerCount=lc,Lt.prototype.eventNames=function(){return this._eventsCount>0?cc(this._events):[]},(ke=uc).EventEmitter,ke.defaultMaxListeners,ke.init,ke.listenerCount,ke.EventEmitter,ke.defaultMaxListeners,ke.init,ke.listenerCount}),gn={};pn(gn,{EventEmitter:()=>tp,default:()=>ke,defaultMaxListeners:()=>ep,init:()=>rp,listenerCount:()=>np,on:()=>ip,once:()=>op});var tp,ep,rp,np,ip,op,Un=ne(()=>{ct(),ft(),ht(),hc(),hc(),ke.once=function(t,e){return new Promise((r,n)=>{function l(...s){o!==void 0&&t.removeListener("error",o),r(s)}let o;e!=="error"&&(o=s=>{t.removeListener(name,l),n(s)},t.once("error",o)),t.once(e,l)})},ke.on=function(t,e){let r=[],n=[],l=null,o=!1,s={async next(){let u=r.shift();if(u)return createIterResult(u,!1);if(l){let c=Promise.reject(l);return l=null,c}return o?createIterResult(void 0,!0):new Promise((c,d)=>n.push({resolve:c,reject:d}))},async return(){t.removeListener(e,i),t.removeListener("error",a),o=!0;for(let u of n)u.resolve(createIterResult(void 0,!0));return createIterResult(void 0,!0)},throw(u){l=u,t.removeListener(e,i),t.removeListener("error",a)},[Symbol.asyncIterator](){return this}};return t.on(e,i),t.on("error",a),s;function i(...u){let c=n.shift();c?c.resolve(createIterResult(u,!1)):r.push(u)}function a(u){o=!0;let c=n.shift();c?c.reject(u):l=u,s.return()}},{EventEmitter:tp,defaultMaxListeners:ep,init:rp,listenerCount:np,on:ip,once:op}=ke}),Ml=mt((t,e)=>{ct(),ft(),ht();var{ArrayIsArray:r,ObjectSetPrototypeOf:n}=te(),{EventEmitter:l}=(Un(),Dt(gn));function o(i){l.call(this,i)}function s(i,a,u){if(typeof i.prependListener=="function")return i.prependListener(a,u);i._events&&i._events[a]?r(i._events[a])?i._events[a].unshift(u):i._events[a]=[u,i._events[a]]:i.on(a,u)}n(o.prototype,l.prototype),n(o,l),o.prototype.pipe=function(i,a){let u=this;function c(U){i.writable&&i.write(U)===!1&&u.pause&&u.pause()}function d(){u.readable&&u.resume&&u.resume()}u.on("data",c),i.on("drain",d),!i._isStdio&&(!a||a.end!==!1)&&(u.on("end",m),u.on("close",b));let f=!1;function m(){f||(f=!0,i.end())}function b(){f||(f=!0,typeof i.destroy=="function"&&i.destroy())}function _(U){S(),l.listenerCount(this,"error")===0&&this.emit("error",U)}function S(){u.removeListener("data",c),i.removeListener("drain",d),u.removeListener("end",m),u.removeListener("close",b),u.removeListener("error",_),i.removeListener("error",_),u.removeListener("end",S),u.removeListener("close",S),i.removeListener("close",S)}return s(u,"error",_),s(i,"error",_),u.on("end",S),u.on("close",S),i.on("close",S),i.emit("pipe",u),i},e.exports={Stream:o,prependListener:s}}),Po=mt((t,e)=>{ct(),ft(),ht();var{AbortError:r,codes:n}=ve(),{isNodeStream:l,isWebStream:o,kControllerErrorFunction:s}=mr(),i=Fr(),{ERR_INVALID_ARG_TYPE:a}=n;e.exports.addAbortSignal=function(u,c){if(((d,f)=>{if(typeof d!="object"||!("aborted"in d))throw new a(f,"AbortSignal",d)})(u,"signal"),!l(c)&&!o(c))throw new a("stream",["ReadableStream","WritableStream","Stream"],c);return e.exports.addAbortSignalNoValidate(u,c)},e.exports.addAbortSignalNoValidate=function(u,c){if(typeof u!="object"||!("aborted"in u))return c;let d=l(c)?()=>{c.destroy(new r(void 0,{cause:u.reason}))}:()=>{c[s](new r(void 0,{cause:u.reason}))};return u.aborted?d():(u.addEventListener("abort",d),i(c,()=>u.removeEventListener("abort",d))),c}}),Xm=mt((t,e)=>{ct(),ft(),ht();var{StringPrototypeSlice:r,SymbolIterator:n,TypedArrayPrototypeSet:l,Uint8Array:o}=te(),{Buffer:s}=(oe(),Dt(ie)),{inspect:i}=hr();e.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(a){let u={data:a,next:null};this.length>0?this.tail.next=u:this.head=u,this.tail=u,++this.length}unshift(a){let u={data:a,next:this.head};this.length===0&&(this.tail=u),this.head=u,++this.length}shift(){if(this.length===0)return;let a=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,a}clear(){this.head=this.tail=null,this.length=0}join(a){if(this.length===0)return"";let u=this.head,c=""+u.data;for(;(u=u.next)!==null;)c+=a+u.data;return c}concat(a){if(this.length===0)return s.alloc(0);let u=s.allocUnsafe(a>>>0),c=this.head,d=0;for(;c;)l(u,c.data,d),d+=c.data.length,c=c.next;return u}consume(a,u){let c=this.head.data;if(af.length)){a===f.length?(u+=f,++d,c.next?this.head=c.next:this.head=this.tail=null):(u+=r(f,0,a),this.head=c,c.data=r(f,a));break}u+=f,a-=f.length,++d}while((c=c.next)!==null);return this.length-=d,u}_getBuffer(a){let u=s.allocUnsafe(a),c=a,d=this.head,f=0;do{let m=d.data;if(!(a>m.length)){a===m.length?(l(u,m,c-a),++f,d.next?this.head=d.next:this.head=this.tail=null):(l(u,new o(m.buffer,m.byteOffset,a),c-a),this.head=d,d.data=m.slice(a));break}l(u,m,c-a),a-=m.length,++f}while((d=d.next)!==null);return this.length-=f,u}[Symbol.for("nodejs.util.inspect.custom")](a,u){return i(this,{...u,depth:0,customInspect:!1})}}}),Ll=mt((t,e)=>{ct(),ft(),ht();var{MathFloor:r,NumberIsInteger:n}=te(),{ERR_INVALID_ARG_VALUE:l}=ve().codes;function o(s){return s?16:16384}e.exports={getHighWaterMark:function(s,i,a,u){let c=function(d,f,m){return d.highWaterMark!=null?d.highWaterMark:f?d[m]:null}(i,u,a);if(c!=null){if(!n(c)||c<0)throw new l(u?`options.${a}`:"options.highWaterMark",c);return r(c)}return o(s.objectMode)},getDefaultHighWaterMark:o}});function fc(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return r===-1&&(r=e),[r,r===e?0:4-r%4]}function Zm(t,e,r){for(var n,l,o=[],s=e;s>18&63]+Le[l>>12&63]+Le[l>>6&63]+Le[63&l]);return o.join("")}function ar(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,gt.prototype),e}function gt(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return Fa(t)}return sp(t,e,r)}function sp(t,e,r){if(typeof t=="string")return function(o,s){if(typeof s=="string"&&s!==""||(s="utf8"),!gt.isEncoding(s))throw new TypeError("Unknown encoding: "+s);var i=0|lp(o,s),a=ar(i),u=a.write(o,s);return u!==i&&(a=a.slice(0,u)),a}(t,e);if(ArrayBuffer.isView(t))return ps(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(lr(t,ArrayBuffer)||t&&lr(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(lr(t,SharedArrayBuffer)||t&&lr(t.buffer,SharedArrayBuffer)))return function(o,s,i){if(s<0||o.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|t}function lp(t,e){if(gt.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||lr(t,ArrayBuffer))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;for(var l=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Wa(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return fp(t).length;default:if(l)return n?-1:Wa(t).length;e=(""+e).toLowerCase(),l=!0}}function t0(t,e,r){var n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return u0(this,e,r);case"utf8":case"utf-8":return cp(this,e,r);case"ascii":return a0(this,e,r);case"latin1":case"binary":return l0(this,e,r);case"base64":return s0(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return c0(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function Kr(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function pc(t,e,r,n,l){if(t.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Ul(r=+r)&&(r=l?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(l)return-1;r=t.length-1}else if(r<0){if(!l)return-1;r=0}if(typeof e=="string"&&(e=gt.from(e,n)),gt.isBuffer(e))return e.length===0?-1:dc(t,e,r,n,l);if(typeof e=="number")return e&=255,typeof Uint8Array.prototype.indexOf=="function"?l?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):dc(t,[e],r,n,l);throw new TypeError("val must be string, number or Buffer")}function dc(t,e,r,n,l){var o,s=1,i=t.length,a=e.length;if(n!==void 0&&((n=String(n).toLowerCase())==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(t.length<2||e.length<2)return-1;s=2,i/=2,a/=2,r/=2}function u(m,b){return s===1?m[b]:m.readUInt16BE(b*s)}if(l){var c=-1;for(o=r;oi&&(r=i-a),o=r;o>=0;o--){for(var d=!0,f=0;fl&&(n=l):n=l;var o=e.length;n>o/2&&(n=o/2);for(var s=0;s>8,a=s%256,u.push(a),u.push(i);return u}(e,t.length-r),t,r,n)}function s0(t,e,r){return e===0&&r===t.length?ho.fromByteArray(t):ho.fromByteArray(t.slice(e,r))}function cp(t,e,r){r=Math.min(t.length,r);for(var n=[],l=e;l239?4:u>223?3:u>191?2:1;if(l+d<=r)switch(d){case 1:u<128&&(c=u);break;case 2:(192&(o=t[l+1]))==128&&(a=(31&u)<<6|63&o)>127&&(c=a);break;case 3:o=t[l+1],s=t[l+2],(192&o)==128&&(192&s)==128&&(a=(15&u)<<12|(63&o)<<6|63&s)>2047&&(a<55296||a>57343)&&(c=a);break;case 4:o=t[l+1],s=t[l+2],i=t[l+3],(192&o)==128&&(192&s)==128&&(192&i)==128&&(a=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&i)>65535&&a<1114112&&(c=a)}c===null?(c=65533,d=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),l+=d}return function(f){var m=f.length;if(m<=4096)return String.fromCharCode.apply(String,f);for(var b="",_=0;_n)&&(r=n);for(var l="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function pe(t,e,r,n,l,o){if(!gt.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>l||et.length)throw new RangeError("Index out of range")}function hp(t,e,r,n,l,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function gc(t,e,r,n,l){return e=+e,r>>>=0,l||hp(t,0,r,4),en.write(t,e,r,n,23,4),r+4}function mc(t,e,r,n,l){return e=+e,r>>>=0,l||hp(t,0,r,8),en.write(t,e,r,n,52,8),r+8}function Wa(t,e){var r;e=e||1/0;for(var n=t.length,l=null,o=[],s=0;s55295&&r<57344){if(!l){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}l=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),l=r;continue}r=65536+(l-55296<<10|r-56320)}else l&&(e-=3)>-1&&o.push(239,191,189);if(l=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function fp(t){return ho.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(pp,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(t))}function Bo(t,e,r,n){for(var l=0;l=e.length||l>=t.length);++l)e[l+r]=t[l];return l}function lr(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function Ul(t){return t!=t}function yc(t,e){for(var r in t)e[r]=t[r]}function Gr(t,e,r){return $e(t,e,r)}function qn(t){var e;switch(this.encoding=function(r){var n=function(l){if(!l)return"utf8";for(var o;;)switch(l){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 l;default:if(o)return;l=(""+l).toLowerCase(),o=!0}}(r);if(typeof n!="string"&&(fo.isEncoding===$a||!$a(r)))throw new Error("Unknown encoding: "+r);return n||r}(t),this.encoding){case"utf16le":this.text=f0,this.end=p0,e=4;break;case"utf8":this.fillLast=h0,e=4;break;case"base64":this.text=d0,this.end=g0,e=3;break;default:return this.write=m0,void(this.end=y0)}this.lastNeed=0,this.lastTotal=0,this.lastChar=fo.allocUnsafe(e)}function ds(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function h0(t){var e=this.lastTotal-this.lastNeed,r=function(n,l){if((192&l[0])!=128)return n.lastNeed=0,"�";if(n.lastNeed>1&&l.length>1){if((192&l[1])!=128)return n.lastNeed=1,"�";if(n.lastNeed>2&&l.length>2&&(192&l[2])!=128)return n.lastNeed=2,"�"}}(this,t);return r!==void 0?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function f0(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function p0(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function d0(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function g0(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function m0(t){return t.toString(this.encoding)}function y0(t){return t&&t.length?this.write(t):""}var bc,Le,we,vc,gs,Qr,wc,We,ho,en,ms,pp,dp,Hn,Mi,$e,kn,fo,$a,_c=ne(()=>{for(ct(),ft(),ht(),bc={byteLength:function(t){var e=fc(t),r=e[0],n=e[1];return 3*(r+n)/4-n},toByteArray:function(t){var e,r,n=fc(t),l=n[0],o=n[1],s=new vc(function(u,c,d){return 3*(c+d)/4-d}(0,l,o)),i=0,a=o>0?l-4:l;for(r=0;r>16&255,s[i++]=e>>8&255,s[i++]=255&e;return o===2&&(e=we[t.charCodeAt(r)]<<2|we[t.charCodeAt(r+1)]>>4,s[i++]=255&e),o===1&&(e=we[t.charCodeAt(r)]<<10|we[t.charCodeAt(r+1)]<<4|we[t.charCodeAt(r+2)]>>2,s[i++]=e>>8&255,s[i++]=255&e),s},fromByteArray:function(t){for(var e,r=t.length,n=r%3,l=[],o=0,s=r-n;os?s:o+16383));return n===1?(e=t[r-1],l.push(Le[e>>2]+Le[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],l.push(Le[e>>10]+Le[e>>4&63]+Le[e<<2&63]+"=")),l.join("")}},Le=[],we=[],vc=typeof Uint8Array<"u"?Uint8Array:Array,gs="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qr=0,64;Qr<64;++Qr)Le[Qr]=gs[Qr],we[gs.charCodeAt(Qr)]=Qr;we[45]=62,we[95]=63,wc={read:function(t,e,r,n,l){var o,s,i=8*l-n-1,a=(1<>1,c=-7,d=r?l-1:0,f=r?-1:1,m=t[e+d];for(d+=f,o=m&(1<<-c)-1,m>>=-c,c+=i;c>0;o=256*o+t[e+d],d+=f,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=n;c>0;s=256*s+t[e+d],d+=f,c-=8);if(o===0)o=1-u;else{if(o===a)return s?NaN:1/0*(m?-1:1);s+=Math.pow(2,n),o-=u}return(m?-1:1)*s*Math.pow(2,o-n)},write:function(t,e,r,n,l,o){var s,i,a,u=8*o-l-1,c=(1<>1,f=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,m=n?0:o-1,b=n?1:-1,_=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(i=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(a=Math.pow(2,-s))<1&&(s--,a*=2),(e+=s+d>=1?f/a:f*Math.pow(2,1-d))*a>=2&&(s++,a/=2),s+d>=c?(i=0,s=c):s+d>=1?(i=(e*a-1)*Math.pow(2,l),s+=d):(i=e*Math.pow(2,d-1)*Math.pow(2,l),s=0));l>=8;t[r+m]=255&i,m+=b,i/=256,l-=8);for(s=s<0;t[r+m]=255&s,m+=b,s/=256,u-=8);t[r+m-b]|=128*_}},We={},ho=bc,en=wc,ms=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null,We.Buffer=gt,We.SlowBuffer=function(t){return+t!=t&&(t=0),gt.alloc(+t)},We.INSPECT_MAX_BYTES=50,We.kMaxLength=2147483647,gt.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}(),gt.TYPED_ARRAY_SUPPORT||typeof console>"u",Object.defineProperty(gt.prototype,"parent",{enumerable:!0,get:function(){if(gt.isBuffer(this))return this.buffer}}),Object.defineProperty(gt.prototype,"offset",{enumerable:!0,get:function(){if(gt.isBuffer(this))return this.byteOffset}}),gt.poolSize=8192,gt.from=function(t,e,r){return sp(t,e,r)},Object.setPrototypeOf(gt.prototype,Uint8Array.prototype),Object.setPrototypeOf(gt,Uint8Array),gt.alloc=function(t,e,r){return l=e,o=r,ap(n=t),n<=0?ar(n):l!==void 0?typeof o=="string"?ar(n).fill(l,o):ar(n).fill(l):ar(n);var n,l,o},gt.allocUnsafe=function(t){return Fa(t)},gt.allocUnsafeSlow=function(t){return Fa(t)},gt.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==gt.prototype},gt.compare=function(t,e){if(lr(t,Uint8Array)&&(t=gt.from(t,t.offset,t.byteLength)),lr(e,Uint8Array)&&(e=gt.from(e,e.offset,e.byteLength)),!gt.isBuffer(t)||!gt.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,n=e.length,l=0,o=Math.min(r,n);le&&(t+=" ... "),""},ms&&(gt.prototype[ms]=gt.prototype.inspect),gt.prototype.compare=function(t,e,r,n,l){if(lr(t,Uint8Array)&&(t=gt.from(t,t.offset,t.byteLength)),!gt.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(e===void 0&&(e=0),r===void 0&&(r=t?t.length:0),n===void 0&&(n=0),l===void 0&&(l=this.length),e<0||r>t.length||n<0||l>this.length)throw new RangeError("out of range index");if(n>=l&&e>=r)return 0;if(n>=l)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(l>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),i=Math.min(o,s),a=this.slice(n,l),u=t.slice(e,r),c=0;c>>=0,isFinite(r)?(r>>>=0,n===void 0&&(n="utf8")):(n=r,r=void 0)}var l=this.length-e;if((r===void 0||r>l)&&(r=l),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return e0(this,t,e,r);case"utf8":case"utf-8":return r0(this,t,e,r);case"ascii":return up(this,t,e,r);case"latin1":case"binary":return n0(this,t,e,r);case"base64":return i0(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o0(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},gt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},gt.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=e===void 0?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||ee(t,e,this.length);for(var n=this[t],l=1,o=0;++o>>=0,e>>>=0,r||ee(t,e,this.length);for(var n=this[t+--e],l=1;e>0&&(l*=256);)n+=this[t+--e]*l;return n},gt.prototype.readUInt8=function(t,e){return t>>>=0,e||ee(t,1,this.length),this[t]},gt.prototype.readUInt16LE=function(t,e){return t>>>=0,e||ee(t,2,this.length),this[t]|this[t+1]<<8},gt.prototype.readUInt16BE=function(t,e){return t>>>=0,e||ee(t,2,this.length),this[t]<<8|this[t+1]},gt.prototype.readUInt32LE=function(t,e){return t>>>=0,e||ee(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},gt.prototype.readUInt32BE=function(t,e){return t>>>=0,e||ee(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},gt.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||ee(t,e,this.length);for(var n=this[t],l=1,o=0;++o=(l*=128)&&(n-=Math.pow(2,8*e)),n},gt.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||ee(t,e,this.length);for(var n=e,l=1,o=this[t+--n];n>0&&(l*=256);)o+=this[t+--n]*l;return o>=(l*=128)&&(o-=Math.pow(2,8*e)),o},gt.prototype.readInt8=function(t,e){return t>>>=0,e||ee(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},gt.prototype.readInt16LE=function(t,e){t>>>=0,e||ee(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},gt.prototype.readInt16BE=function(t,e){t>>>=0,e||ee(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},gt.prototype.readInt32LE=function(t,e){return t>>>=0,e||ee(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},gt.prototype.readInt32BE=function(t,e){return t>>>=0,e||ee(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},gt.prototype.readFloatLE=function(t,e){return t>>>=0,e||ee(t,4,this.length),en.read(this,t,!0,23,4)},gt.prototype.readFloatBE=function(t,e){return t>>>=0,e||ee(t,4,this.length),en.read(this,t,!1,23,4)},gt.prototype.readDoubleLE=function(t,e){return t>>>=0,e||ee(t,8,this.length),en.read(this,t,!0,52,8)},gt.prototype.readDoubleBE=function(t,e){return t>>>=0,e||ee(t,8,this.length),en.read(this,t,!1,52,8)},gt.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||pe(this,t,e,r,Math.pow(2,8*r)-1,0);var l=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,n||pe(this,t,e,r,Math.pow(2,8*r)-1,0);var l=r-1,o=1;for(this[e+l]=255&t;--l>=0&&(o*=256);)this[e+l]=t/o&255;return e+r},gt.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,1,255,0),this[e]=255&t,e+1},gt.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},gt.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},gt.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},gt.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},gt.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var l=Math.pow(2,8*r-1);pe(this,t,e,r,l-1,-l)}var o=0,s=1,i=0;for(this[e]=255&t;++o>>=0,!n){var l=Math.pow(2,8*r-1);pe(this,t,e,r,l-1,-l)}var o=r-1,s=1,i=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&i===0&&this[e+o+1]!==0&&(i=1),this[e+o]=(t/s|0)-i&255;return e+r},gt.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},gt.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},gt.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},gt.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},gt.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||pe(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},gt.prototype.writeFloatLE=function(t,e,r){return gc(this,t,e,!0,r)},gt.prototype.writeFloatBE=function(t,e,r){return gc(this,t,e,!1,r)},gt.prototype.writeDoubleLE=function(t,e,r){return mc(this,t,e,!0,r)},gt.prototype.writeDoubleBE=function(t,e,r){return mc(this,t,e,!1,r)},gt.prototype.copy=function(t,e,r,n){if(!gt.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||n===0||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--o)t[o+e]=this[o+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return l},gt.prototype.fill=function(t,e,r,n){if(typeof t=="string"){if(typeof e=="string"?(n=e,e=0,r=this.length):typeof r=="string"&&(n=r,r=this.length),n!==void 0&&typeof n!="string")throw new TypeError("encoding must be a string");if(typeof n=="string"&&!gt.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(t.length===1){var l=t.charCodeAt(0);(n==="utf8"&&l<128||n==="latin1")&&(t=l)}}else typeof t=="number"?t&=255:typeof t=="boolean"&&(t=Number(t));if(e<0||this.length>>=0,r=r===void 0?this.length:r>>>0,t||(t=0),typeof t=="number")for(o=e;o=0?(a>0&&(l.lastNeed=a-1),a):--i=0?(a>0&&(l.lastNeed=a-2),a):--i=0?(a>0&&(a===2?a=0:l.lastNeed=a-3),a):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},qn.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length},kn.StringDecoder,kn.StringDecoder}),gp={};pn(gp,{StringDecoder:()=>mp,default:()=>kn});var mp,b0=ne(()=>{ct(),ft(),ht(),_c(),_c(),mp=kn.StringDecoder}),yp=mt((t,e)=>{ct(),ft(),ht();var r=dn(),{PromisePrototypeThen:n,SymbolAsyncIterator:l,SymbolIterator:o}=te(),{Buffer:s}=(oe(),Dt(ie)),{ERR_INVALID_ARG_TYPE:i,ERR_STREAM_NULL_VALUES:a}=ve().codes;e.exports=function(u,c,d){let f,m;if(typeof c=="string"||c instanceof s)return new u({objectMode:!0,...d,read(){this.push(c),this.push(null)}});if(c&&c[l])m=!0,f=c[l]();else{if(!c||!c[o])throw new i("iterable",["Iterable"],c);m=!1,f=c[o]()}let b=new u({objectMode:!0,highWaterMark:1,...d}),_=!1;return b._read=function(){_||(_=!0,async function(){for(;;){try{let{value:S,done:U}=m?await f.next():f.next();if(U)b.push(null);else{let D=S&&typeof S.then=="function"?await S:S;if(D===null)throw _=!1,new a;if(b.push(D))continue;_=!1}}catch(S){b.destroy(S)}break}}())},b._destroy=function(S,U){n(async function(D){let K=D!=null,$=typeof f.throw=="function";if(K&&$){let{value:Y,done:B}=await f.throw(D);if(await Y,B)return}if(typeof f.return=="function"){let{value:Y}=await f.return();await Y}}(S),()=>r.nextTick(U,S),D=>r.nextTick(U,D||S))},b}}),Mo=mt((t,e)=>{ct(),ft(),ht();var r=dn(),{ArrayPrototypeIndexOf:n,NumberIsInteger:l,NumberIsNaN:o,NumberParseInt:s,ObjectDefineProperties:i,ObjectKeys:a,ObjectSetPrototypeOf:u,Promise:c,SafeSet:d,SymbolAsyncIterator:f,Symbol:m}=te();e.exports=q,q.ReadableState=T;var{EventEmitter:b}=(Un(),Dt(gn)),{Stream:_,prependListener:S}=Ml(),{Buffer:U}=(oe(),Dt(ie)),{addAbortSignal:D}=Po(),K=Fr(),$=hr().debuglog("stream",g=>{$=g}),Y=Xm(),B=jn(),{getHighWaterMark:I,getDefaultHighWaterMark:E}=Ll(),{aggregateTwoErrors:w,codes:{ERR_INVALID_ARG_TYPE:P,ERR_METHOD_NOT_IMPLEMENTED:R,ERR_OUT_OF_RANGE:et,ERR_STREAM_PUSH_AFTER_EOF:st,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:X}}=ve(),{validateObject:j}=Ro(),N=m("kPaused"),{StringDecoder:V}=(b0(),Dt(gp)),nt=yp();u(q.prototype,_.prototype),u(q,_);var Q=()=>{},{errorOrDestroy:G}=B;function T(g,v,k){typeof k!="boolean"&&(k=v instanceof fr()),this.objectMode=!(!g||!g.objectMode),k&&(this.objectMode=this.objectMode||!(!g||!g.readableObjectMode)),this.highWaterMark=g?I(this,g,"readableHighWaterMark",k):E(!1),this.buffer=new Y,this.length=0,this.pipes=[],this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.constructed=!0,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this[N]=null,this.errorEmitted=!1,this.emitClose=!g||g.emitClose!==!1,this.autoDestroy=!g||g.autoDestroy!==!1,this.destroyed=!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this.defaultEncoding=g&&g.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.multiAwaitDrain=!1,this.readingMore=!1,this.dataEmitted=!1,this.decoder=null,this.encoding=null,g&&g.encoding&&(this.decoder=new V(g.encoding),this.encoding=g.encoding)}function q(g){if(!(this instanceof q))return new q(g);let v=this instanceof fr();this._readableState=new T(g,this,v),g&&(typeof g.read=="function"&&(this._read=g.read),typeof g.destroy=="function"&&(this._destroy=g.destroy),typeof g.construct=="function"&&(this._construct=g.construct),g.signal&&!v&&D(g.signal,this)),_.call(this,g),B.construct(this,()=>{this._readableState.needReadable&&rt(this,this._readableState)})}function tt(g,v,k,M){$("readableAddChunk",v);let W,J=g._readableState;if(J.objectMode||(typeof v=="string"?(k=k||J.defaultEncoding,J.encoding!==k&&(M&&J.encoding?v=U.from(v,k).toString(J.encoding):(v=U.from(v,k),k=""))):v instanceof U?k="":_._isUint8Array(v)?(v=_._uint8ArrayToBuffer(v),k=""):v!=null&&(W=new P("chunk",["string","Buffer","Uint8Array"],v))),W)G(g,W);else if(v===null)J.reading=!1,function(at,ot){if($("onEofChunk"),!ot.ended){if(ot.decoder){let vt=ot.decoder.end();vt&&vt.length&&(ot.buffer.push(vt),ot.length+=ot.objectMode?1:vt.length)}ot.ended=!0,ot.sync?pt(at):(ot.needReadable=!1,ot.emittedReadable=!0,H(at))}}(g,J);else if(J.objectMode||v&&v.length>0)if(M)if(J.endEmitted)G(g,new X);else{if(J.destroyed||J.errored)return!1;it(g,J,v,!0)}else if(J.ended)G(g,new st);else{if(J.destroyed||J.errored)return!1;J.reading=!1,J.decoder&&!k?(v=J.decoder.write(v),J.objectMode||v.length!==0?it(g,J,v,!1):rt(g,J)):it(g,J,v,!1)}else M||(J.reading=!1,rt(g,J));return!J.ended&&(J.length0?(v.multiAwaitDrain?v.awaitDrainWriters.clear():v.awaitDrainWriters=null,v.dataEmitted=!0,g.emit("data",k)):(v.length+=v.objectMode?1:k.length,M?v.buffer.unshift(k):v.buffer.push(k),v.needReadable&&pt(g)),rt(g,v)}q.prototype.destroy=B.destroy,q.prototype._undestroy=B.undestroy,q.prototype._destroy=function(g,v){v(g)},q.prototype[b.captureRejectionSymbol]=function(g){this.destroy(g)},q.prototype.push=function(g,v){return tt(this,g,v,!1)},q.prototype.unshift=function(g,v){return tt(this,g,v,!0)},q.prototype.isPaused=function(){let g=this._readableState;return g[N]===!0||g.flowing===!1},q.prototype.setEncoding=function(g){let v=new V(g);this._readableState.decoder=v,this._readableState.encoding=this._readableState.decoder.encoding;let k=this._readableState.buffer,M="";for(let W of k)M+=v.write(W);return k.clear(),M!==""&&k.push(M),this._readableState.length=M.length,this};var lt;function ut(g,v){return g<=0||v.length===0&&v.ended?0:v.objectMode?1:o(g)?v.flowing&&v.length?v.buffer.first().length:v.length:g<=v.length?g:v.ended?v.length:0}function pt(g){let v=g._readableState;$("emitReadable",v.needReadable,v.emittedReadable),v.needReadable=!1,v.emittedReadable||($("emitReadable",v.flowing),v.emittedReadable=!0,r.nextTick(H,g))}function H(g){let v=g._readableState;$("emitReadable_",v.destroyed,v.length,v.ended),!v.destroyed&&!v.errored&&(v.length||v.ended)&&(g.emit("readable"),v.emittedReadable=!1),v.needReadable=!v.flowing&&!v.ended&&v.length<=v.highWaterMark,F(g)}function rt(g,v){!v.readingMore&&v.constructed&&(v.readingMore=!0,r.nextTick(Z,g,v))}function Z(g,v){for(;!v.reading&&!v.ended&&(v.length0,v.resumeScheduled&&v[N]===!1?v.flowing=!0:g.listenerCount("data")>0?g.resume():v.readableListening||(v.flowing=null)}function L(g){$("readable nexttick read 0"),g.read(0)}function A(g,v){$("resume",v.reading),v.reading||g.read(0),v.resumeScheduled=!1,g.emit("resume"),F(g),v.flowing&&!v.reading&&g.read(0)}function F(g){let v=g._readableState;for($("flow",v.flowing);v.flowing&&g.read()!==null;);}function h(g,v){typeof g.read!="function"&&(g=q.wrap(g,{objectMode:!0}));let k=async function*(M,W){let J=Q;function at(bt){this===M?(J(),J=Q):J=bt}M.on("readable",at);let ot,vt=K(M,{writable:!1},bt=>{ot=bt?w(ot,bt):null,J(),J=Q});try{for(;;){let bt=M.destroyed?null:M.read();if(bt!==null)yield bt;else{if(ot)throw ot;if(ot===null)return;await new c(at)}}}catch(bt){throw ot=w(ot,bt),ot}finally{!ot&&(W==null?void 0:W.destroyOnReturn)===!1||ot!==void 0&&!M._readableState.autoDestroy?(M.off("readable",at),vt()):B.destroyer(M,null)}}(g,v);return k.stream=g,k}function p(g,v){if(v.length===0)return null;let k;return v.objectMode?k=v.buffer.shift():!g||g>=v.length?(k=v.decoder?v.buffer.join(""):v.buffer.length===1?v.buffer.first():v.buffer.concat(v.length),v.buffer.clear()):k=v.buffer.consume(g,v.decoder),k}function y(g){let v=g._readableState;$("endReadable",v.endEmitted),v.endEmitted||(v.ended=!0,r.nextTick(O,v,g))}function O(g,v){if($("endReadableNT",g.endEmitted,g.length),!g.errored&&!g.closeEmitted&&!g.endEmitted&&g.length===0){if(g.endEmitted=!0,v.emit("end"),v.writable&&v.allowHalfOpen===!1)r.nextTick(C,v);else if(g.autoDestroy){let k=v._writableState;(!k||k.autoDestroy&&(k.finished||k.writable===!1))&&v.destroy()}}}function C(g){g.writable&&!g.writableEnded&&!g.destroyed&&g.end()}function x(){return lt===void 0&&(lt={}),lt}q.prototype.read=function(g){$("read",g),g===void 0?g=NaN:l(g)||(g=s(g,10));let v=this._readableState,k=g;if(g>v.highWaterMark&&(v.highWaterMark=function(J){if(J>1073741824)throw new et("size","<= 1GiB",J);return J--,J|=J>>>1,J|=J>>>2,J|=J>>>4,J|=J>>>8,J|=J>>>16,++J}(g)),g!==0&&(v.emittedReadable=!1),g===0&&v.needReadable&&((v.highWaterMark!==0?v.length>=v.highWaterMark:v.length>0)||v.ended))return $("read: emitReadable",v.length,v.ended),v.length===0&&v.ended?y(this):pt(this),null;if((g=ut(g,v))===0&&v.ended)return v.length===0&&y(this),null;let M,W=v.needReadable;if($("need readable",W),(v.length===0||v.length-g0?p(g,v):null,M===null?(v.needReadable=v.length<=v.highWaterMark,g=0):(v.length-=g,v.multiAwaitDrain?v.awaitDrainWriters.clear():v.awaitDrainWriters=null),v.length===0&&(v.ended||(v.needReadable=!0),k!==g&&v.ended&&y(this)),M!==null&&!v.errorEmitted&&!v.closeEmitted&&(v.dataEmitted=!0,this.emit("data",M)),M},q.prototype._read=function(g){throw new R("_read()")},q.prototype.pipe=function(g,v){let k=this,M=this._readableState;M.pipes.length===1&&(M.multiAwaitDrain||(M.multiAwaitDrain=!0,M.awaitDrainWriters=new d(M.awaitDrainWriters?[M.awaitDrainWriters]:[]))),M.pipes.push(g),$("pipe count=%d opts=%j",M.pipes.length,v);let W=v&&v.end===!1||g===r.stdout||g===r.stderr?_t:at;function J(It,yt){$("onunpipe"),It===k&&yt&&yt.hasUnpiped===!1&&(yt.hasUnpiped=!0,$("cleanup"),g.removeListener("close",kt),g.removeListener("finish",Mt),ot&&g.removeListener("drain",ot),g.removeListener("error",Ot),g.removeListener("unpipe",J),k.removeListener("end",at),k.removeListener("end",_t),k.removeListener("data",wt),vt=!0,ot&&M.awaitDrainWriters&&(!g._writableState||g._writableState.needDrain)&&ot())}function at(){$("onend"),g.end()}M.endEmitted?r.nextTick(W):k.once("end",W),g.on("unpipe",J);let ot,vt=!1;function bt(){vt||(M.pipes.length===1&&M.pipes[0]===g?($("false write response, pause",0),M.awaitDrainWriters=g,M.multiAwaitDrain=!1):M.pipes.length>1&&M.pipes.includes(g)&&($("false write response, pause",M.awaitDrainWriters.size),M.awaitDrainWriters.add(g)),k.pause()),ot||(ot=function(It,yt){return function(){let xt=It._readableState;xt.awaitDrainWriters===yt?($("pipeOnDrain",1),xt.awaitDrainWriters=null):xt.multiAwaitDrain&&($("pipeOnDrain",xt.awaitDrainWriters.size),xt.awaitDrainWriters.delete(yt)),(!xt.awaitDrainWriters||xt.awaitDrainWriters.size===0)&&It.listenerCount("data")&&It.resume()}}(k,g),g.on("drain",ot))}function wt(It){$("ondata");let yt=g.write(It);$("dest.write",yt),yt===!1&&bt()}function Ot(It){if($("onerror",It),_t(),g.removeListener("error",Ot),g.listenerCount("error")===0){let yt=g._writableState||g._readableState;yt&&!yt.errorEmitted?G(g,It):g.emit("error",It)}}function kt(){g.removeListener("finish",Mt),_t()}function Mt(){$("onfinish"),g.removeListener("close",kt),_t()}function _t(){$("unpipe"),k.unpipe(g)}return k.on("data",wt),S(g,"error",Ot),g.once("close",kt),g.once("finish",Mt),g.emit("pipe",k),g.writableNeedDrain===!0?M.flowing&&bt():M.flowing||($("pipe resume"),k.resume()),g},q.prototype.unpipe=function(g){let v=this._readableState;if(v.pipes.length===0)return this;if(!g){let M=v.pipes;v.pipes=[],this.pause();for(let W=0;W0,M.flowing!==!1&&this.resume()):g==="readable"&&!M.endEmitted&&!M.readableListening&&(M.readableListening=M.needReadable=!0,M.flowing=!1,M.emittedReadable=!1,$("on readable",M.length,M.reading),M.length?pt(this):M.reading||r.nextTick(L,this)),k},q.prototype.addListener=q.prototype.on,q.prototype.removeListener=function(g,v){let k=_.prototype.removeListener.call(this,g,v);return g==="readable"&&r.nextTick(dt,this),k},q.prototype.off=q.prototype.removeListener,q.prototype.removeAllListeners=function(g){let v=_.prototype.removeAllListeners.apply(this,arguments);return(g==="readable"||g===void 0)&&r.nextTick(dt,this),v},q.prototype.resume=function(){let g=this._readableState;return g.flowing||($("resume"),g.flowing=!g.readableListening,function(v,k){k.resumeScheduled||(k.resumeScheduled=!0,r.nextTick(A,v,k))}(this,g)),g[N]=!1,this},q.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[N]=!0,this},q.prototype.wrap=function(g){let v=!1;g.on("data",M=>{!this.push(M)&&g.pause&&(v=!0,g.pause())}),g.on("end",()=>{this.push(null)}),g.on("error",M=>{G(this,M)}),g.on("close",()=>{this.destroy()}),g.on("destroy",()=>{this.destroy()}),this._read=()=>{v&&g.resume&&(v=!1,g.resume())};let k=a(g);for(let M=1;M{ct(),ft(),ht();var r=dn(),{ArrayPrototypeSlice:n,Error:l,FunctionPrototypeSymbolHasInstance:o,ObjectDefineProperty:s,ObjectDefineProperties:i,ObjectSetPrototypeOf:a,StringPrototypeToLowerCase:u,Symbol:c,SymbolHasInstance:d}=te();e.exports=V,V.WritableState=j;var{EventEmitter:f}=(Un(),Dt(gn)),m=Ml().Stream,{Buffer:b}=(oe(),Dt(ie)),_=jn(),{addAbortSignal:S}=Po(),{getHighWaterMark:U,getDefaultHighWaterMark:D}=Ll(),{ERR_INVALID_ARG_TYPE:K,ERR_METHOD_NOT_IMPLEMENTED:$,ERR_MULTIPLE_CALLBACK:Y,ERR_STREAM_CANNOT_PIPE:B,ERR_STREAM_DESTROYED:I,ERR_STREAM_ALREADY_FINISHED:E,ERR_STREAM_NULL_VALUES:w,ERR_STREAM_WRITE_AFTER_END:P,ERR_UNKNOWN_ENCODING:R}=ve().codes,{errorOrDestroy:et}=_;function st(){}a(V.prototype,m.prototype),a(V,m);var X=c("kOnFinished");function j(A,F,h){typeof h!="boolean"&&(h=F instanceof fr()),this.objectMode=!(!A||!A.objectMode),h&&(this.objectMode=this.objectMode||!(!A||!A.writableObjectMode)),this.highWaterMark=A?U(this,A,"writableHighWaterMark",h):D(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let p=!(!A||A.decodeStrings!==!1);this.decodeStrings=!p,this.defaultEncoding=A&&A.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=T.bind(void 0,F),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,N(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!A||A.emitClose!==!1,this.autoDestroy=!A||A.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[X]=[]}function N(A){A.buffered=[],A.bufferedIndex=0,A.allBuffers=!0,A.allNoop=!0}function V(A){let F=this instanceof fr();if(!F&&!o(V,this))return new V(A);this._writableState=new j(A,this,F),A&&(typeof A.write=="function"&&(this._write=A.write),typeof A.writev=="function"&&(this._writev=A.writev),typeof A.destroy=="function"&&(this._destroy=A.destroy),typeof A.final=="function"&&(this._final=A.final),typeof A.construct=="function"&&(this._construct=A.construct),A.signal&&S(A.signal,this)),m.call(this,A),_.construct(this,()=>{let h=this._writableState;h.writing||lt(this,h),H(this,h)})}function nt(A,F,h,p){let y,O=A._writableState;if(typeof h=="function")p=h,h=O.defaultEncoding;else{if(h){if(h!=="buffer"&&!b.isEncoding(h))throw new R(h)}else h=O.defaultEncoding;typeof p!="function"&&(p=st)}if(F===null)throw new w;if(!O.objectMode)if(typeof F=="string")O.decodeStrings!==!1&&(F=b.from(F,h),h="buffer");else if(F instanceof b)h="buffer";else{if(!m._isUint8Array(F))throw new K("chunk",["string","Buffer","Uint8Array"],F);F=m._uint8ArrayToBuffer(F),h="buffer"}return O.ending?y=new P:O.destroyed&&(y=new I("write")),y?(r.nextTick(p,y),et(A,y,!0),y):(O.pendingcb++,function(C,x,g,v,k){let M=x.objectMode?1:g.length;x.length+=M;let W=x.lengthh.bufferedIndex&<(A,h),p?h.afterWriteTickInfo!==null&&h.afterWriteTickInfo.cb===y?h.afterWriteTickInfo.count++:(h.afterWriteTickInfo={count:1,cb:y,stream:A,state:h},r.nextTick(q,h.afterWriteTickInfo)):tt(A,h,1,y))):et(A,new Y)}function q({stream:A,state:F,count:h,cb:p}){return F.afterWriteTickInfo=null,tt(A,F,h,p)}function tt(A,F,h,p){for(!F.ending&&!A.destroyed&&F.length===0&&F.needDrain&&(F.needDrain=!1,A.emit("drain"));h-- >0;)F.pendingcb--,p();F.destroyed&&it(F),H(A,F)}function it(A){if(A.writing)return;for(let y=A.bufferedIndex;y1&&A._writev){F.pendingcb-=O-1;let x=F.allNoop?st:v=>{for(let k=C;k256?(h.splice(0,C),F.bufferedIndex=0):F.bufferedIndex=C}F.bufferProcessing=!1}function ut(A){return A.ending&&!A.destroyed&&A.constructed&&A.length===0&&!A.errored&&A.buffered.length===0&&!A.finished&&!A.writing&&!A.errorEmitted&&!A.closeEmitted}function pt(A,F){!F.prefinished&&!F.finalCalled&&(typeof A._final!="function"||F.destroyed?(F.prefinished=!0,A.emit("prefinish")):(F.finalCalled=!0,function(h,p){let y=!1;function O(C){if(y)et(h,C??Y());else if(y=!0,p.pendingcb--,C){let x=p[X].splice(0);for(let g=0;g{ut(y)?rt(p,y):y.pendingcb--},A,F)):ut(F)&&(F.pendingcb++,rt(A,F))))}function rt(A,F){F.pendingcb--,F.finished=!0;let h=F[X].splice(0);for(let p=0;p{ct(),ft(),ht();var r=dn(),n=(oe(),Dt(ie)),{isReadable:l,isWritable:o,isIterable:s,isNodeStream:i,isReadableNodeStream:a,isWritableNodeStream:u,isDuplexNodeStream:c}=mr(),d=Fr(),{AbortError:f,codes:{ERR_INVALID_ARG_TYPE:m,ERR_INVALID_RETURN_VALUE:b}}=ve(),{destroyer:_}=jn(),S=fr(),U=Mo(),{createDeferredPromise:D}=hr(),K=yp(),$=globalThis.Blob||n.Blob,Y=typeof $<"u"?function(P){return P instanceof $}:function(P){return!1},B=globalThis.AbortController||Bl().AbortController,{FunctionPrototypeCall:I}=te(),E=class extends S{constructor(P){super(P),(P==null?void 0:P.readable)===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),(P==null?void 0:P.writable)===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)}};function w(P){let R,et,st,X,j,N=P.readable&&typeof P.readable.read!="function"?U.wrap(P.readable):P.readable,V=P.writable,nt=!!l(N),Q=!!o(V);function G(T){let q=X;X=null,q?q(T):T&&j.destroy(T)}return j=new E({readableObjectMode:!(N==null||!N.readableObjectMode),writableObjectMode:!(V==null||!V.writableObjectMode),readable:nt,writable:Q}),Q&&(d(V,T=>{Q=!1,T&&_(N,T),G(T)}),j._write=function(T,q,tt){V.write(T,q)?tt():R=tt},j._final=function(T){V.end(),et=T},V.on("drain",function(){if(R){let T=R;R=null,T()}}),V.on("finish",function(){if(et){let T=et;et=null,T()}})),nt&&(d(N,T=>{nt=!1,T&&_(N,T),G(T)}),N.on("readable",function(){if(st){let T=st;st=null,T()}}),N.on("end",function(){j.push(null)}),j._read=function(){for(;;){let T=N.read();if(T===null)return void(st=j._read);if(!j.push(T))return}}),j._destroy=function(T,q){!T&&X!==null&&(T=new f),st=null,R=null,et=null,X===null?q(T):(X=q,_(V,T),_(N,T))},j}e.exports=function P(R,et){if(c(R))return R;if(a(R))return w({readable:R});if(u(R))return w({writable:R});if(i(R))return w({writable:!1,readable:!1});if(typeof R=="function"){let{value:X,write:j,final:N,destroy:V}=function(Q){let{promise:G,resolve:T}=D(),q=new B,tt=q.signal;return{value:Q(async function*(){for(;;){let it=G;G=null;let{chunk:lt,done:ut,cb:pt}=await it;if(r.nextTick(pt),ut)return;if(tt.aborted)throw new f(void 0,{cause:tt.reason});({promise:G,resolve:T}=D()),yield lt}}(),{signal:tt}),write(it,lt,ut){let pt=T;T=null,pt({chunk:it,done:!1,cb:ut})},final(it){let lt=T;T=null,lt({done:!0,cb:it})},destroy(it,lt){q.abort(),lt(it)}}}(R);if(s(X))return K(E,X,{objectMode:!0,write:j,final:N,destroy:V});let nt=X==null?void 0:X.then;if(typeof nt=="function"){let Q,G=I(nt,X,T=>{if(T!=null)throw new b("nully","body",T)},T=>{_(Q,T)});return Q=new E({objectMode:!0,readable:!1,write:j,final(T){N(async()=>{try{await G,r.nextTick(T,null)}catch(q){r.nextTick(T,q)}})},destroy:V})}throw new b("Iterable, AsyncIterable or AsyncFunction",et,X)}if(Y(R))return P(R.arrayBuffer());if(s(R))return K(E,R,{objectMode:!0,writable:!1});if(typeof(R==null?void 0:R.writable)=="object"||typeof(R==null?void 0:R.readable)=="object")return w({readable:R!=null&&R.readable?a(R==null?void 0:R.readable)?R==null?void 0:R.readable:P(R.readable):void 0,writable:R!=null&&R.writable?u(R==null?void 0:R.writable)?R==null?void 0:R.writable:P(R.writable):void 0});let st=R==null?void 0:R.then;if(typeof st=="function"){let X;return I(st,R,j=>{j!=null&&X.push(j),X.push(null)},j=>{_(X,j)}),X=new E({objectMode:!0,writable:!1,read(){}})}throw new m(et,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],R)}}),fr=mt((t,e)=>{ct(),ft(),ht();var{ObjectDefineProperties:r,ObjectGetOwnPropertyDescriptor:n,ObjectKeys:l,ObjectSetPrototypeOf:o}=te();e.exports=c;var s,i,a=Mo(),u=bp();o(c.prototype,a.prototype),o(c,a);{let f=l(u.prototype);for(let m=0;m{ct(),ft(),ht();var{ObjectSetPrototypeOf:r,Symbol:n}=te();e.exports=a;var{ERR_METHOD_NOT_IMPLEMENTED:l}=ve().codes,o=fr(),{getHighWaterMark:s}=Ll();r(a.prototype,o.prototype),r(a,o);var i=n("kCallback");function a(d){if(!(this instanceof a))return new a(d);let f=d?s(this,d,"readableHighWaterMark",!0):null;f===0&&(d={...d,highWaterMark:null,readableHighWaterMark:f,writableHighWaterMark:d.writableHighWaterMark||0}),o.call(this,d),this._readableState.sync=!1,this[i]=null,d&&(typeof d.transform=="function"&&(this._transform=d.transform),typeof d.flush=="function"&&(this._flush=d.flush)),this.on("prefinish",c)}function u(d){typeof this._flush!="function"||this.destroyed?(this.push(null),d&&d()):this._flush((f,m)=>{f?d?d(f):this.destroy(f):(m!=null&&this.push(m),this.push(null),d&&d())})}function c(){this._final!==u&&u.call(this)}a.prototype._final=u,a.prototype._transform=function(d,f,m){throw new l("_transform()")},a.prototype._write=function(d,f,m){let b=this._readableState,_=this._writableState,S=b.length;this._transform(d,f,(U,D)=>{U?m(U):(D!=null&&this.push(D),_.ended||S===b.length||b.length{ct(),ft(),ht();var{ObjectSetPrototypeOf:r}=te();e.exports=l;var n=vp();function l(o){if(!(this instanceof l))return new l(o);n.call(this,o)}r(l.prototype,n.prototype),r(l,n),l.prototype._transform=function(o,s,i){i(null,o)}}),Nl=mt((t,e)=>{ct(),ft(),ht();var r,n,l=dn(),{ArrayIsArray:o,Promise:s,SymbolAsyncIterator:i}=te(),a=Fr(),{once:u}=hr(),c=jn(),d=fr(),{aggregateTwoErrors:f,codes:{ERR_INVALID_ARG_TYPE:m,ERR_INVALID_RETURN_VALUE:b,ERR_MISSING_ARGS:_,ERR_STREAM_DESTROYED:S,ERR_STREAM_PREMATURE_CLOSE:U},AbortError:D}=ve(),{validateFunction:K,validateAbortSignal:$}=Ro(),{isIterable:Y,isReadable:B,isReadableNodeStream:I,isNodeStream:E,isTransformStream:w,isWebStream:P,isReadableStream:R,isReadableEnded:et}=mr(),st=globalThis.AbortController||Bl().AbortController;function X(G,T,q){let tt=!1;return G.on("close",()=>{tt=!0}),{destroy:it=>{tt||(tt=!0,c.destroyer(G,it||new S("pipe")))},cleanup:a(G,{readable:T,writable:q},it=>{tt=!it})}}function j(G){if(Y(G))return G;if(I(G))return async function*(T){n||(n=Mo()),yield*n.prototype[i].call(T)}(G);throw new m("val",["Readable","Iterable","AsyncIterable"],G)}async function N(G,T,q,{end:tt}){let it,lt=null,ut=rt=>{if(rt&&(it=rt),lt){let Z=lt;lt=null,Z()}},pt=()=>new s((rt,Z)=>{it?Z(it):lt=()=>{it?Z(it):rt()}});T.on("drain",ut);let H=a(T,{readable:!1},ut);try{T.writableNeedDrain&&await pt();for await(let rt of G)T.write(rt)||await pt();tt&&T.end(),await pt(),q()}catch(rt){q(it!==rt?f(it,rt):rt)}finally{H(),T.off("drain",ut)}}async function V(G,T,q,{end:tt}){w(T)&&(T=T.writable);let it=T.getWriter();try{for await(let lt of G)await it.ready,it.write(lt).catch(()=>{});await it.ready,tt&&await it.close(),q()}catch(lt){try{await it.abort(lt),q(lt)}catch(ut){q(ut)}}}function nt(G,T,q){if(G.length===1&&o(G[0])&&(G=G[0]),G.length<2)throw new _("streams");let tt=new st,it=tt.signal,lt=q==null?void 0:q.signal,ut=[];function pt(){F(new D)}$(lt,"options.signal"),lt==null||lt.addEventListener("abort",pt);let H,rt,Z,dt=[],L=0;function A(y){F(y,--L==0)}function F(y,O){if(y&&(!H||H.code==="ERR_STREAM_PREMATURE_CLOSE")&&(H=y),H||O){for(;dt.length;)dt.shift()(H);lt==null||lt.removeEventListener("abort",pt),tt.abort(),O&&(H||ut.forEach(C=>C()),l.nextTick(T,H,rt))}}for(let y=0;y0,g=C||(q==null?void 0:q.end)!==!1,v=y===G.length-1;if(E(O)){let k=function(M){M&&M.name!=="AbortError"&&M.code!=="ERR_STREAM_PREMATURE_CLOSE"&&A(M)};if(g){let{destroy:M,cleanup:W}=X(O,C,x);dt.push(M),B(O)&&v&&ut.push(W)}O.on("error",k),B(O)&&v&&ut.push(()=>{O.removeListener("error",k)})}if(y===0)if(typeof O=="function"){if(Z=O({signal:it}),!Y(Z))throw new b("Iterable, AsyncIterable or Stream","source",Z)}else Z=Y(O)||I(O)||w(O)?O:d.from(O);else if(typeof O=="function"){var h;if(w(Z)?Z=j((h=Z)===null||h===void 0?void 0:h.readable):Z=j(Z),Z=O(Z,{signal:it}),C){if(!Y(Z,!0))throw new b("AsyncIterable",`transform[${y-1}]`,Z)}else{var p;r||(r=wp());let k=new r({objectMode:!0}),M=(p=Z)===null||p===void 0?void 0:p.then;if(typeof M=="function")L++,M.call(Z,at=>{rt=at,at!=null&&k.write(at),g&&k.end(),l.nextTick(A)},at=>{k.destroy(at),l.nextTick(A,at)});else if(Y(Z,!0))L++,N(Z,k,A,{end:g});else{if(!R(Z)&&!w(Z))throw new b("AsyncIterable or Promise","destination",Z);{let at=Z.readable||Z;L++,N(at,k,A,{end:g})}}Z=k;let{destroy:W,cleanup:J}=X(Z,!1,!0);dt.push(W),v&&ut.push(J)}}else if(E(O)){if(I(Z)){L+=2;let k=Q(Z,O,A,{end:g});B(O)&&v&&ut.push(k)}else if(w(Z)||R(Z)){let k=Z.readable||Z;L++,N(k,O,A,{end:g})}else{if(!Y(Z))throw new m("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],Z);L++,N(Z,O,A,{end:g})}Z=O}else if(P(O)){if(I(Z))L++,V(j(Z),O,A,{end:g});else if(R(Z)||Y(Z))L++,V(Z,O,A,{end:g});else{if(!w(Z))throw new m("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],Z);L++,V(Z.readable,O,A,{end:g})}Z=O}else Z=d.from(O)}return(it!=null&&it.aborted||lt!=null&<.aborted)&&l.nextTick(pt),Z}function Q(G,T,q,{end:tt}){let it=!1;if(T.on("close",()=>{it||q(new U)}),G.pipe(T,{end:!1}),tt){let lt=function(){it=!0,T.end()};et(G)?l.nextTick(lt):G.once("end",lt)}else q();return a(G,{readable:!0,writable:!1},lt=>{let ut=G._readableState;lt&<.code==="ERR_STREAM_PREMATURE_CLOSE"&&ut&&ut.ended&&!ut.errored&&!ut.errorEmitted?G.once("end",q).once("error",q):q(lt)}),a(T,{readable:!1,writable:!0},q)}e.exports={pipelineImpl:nt,pipeline:function(...G){return nt(G,u(function(T){return K(T[T.length-1],"streams[stream.length - 1]"),T.pop()}(G)))}}}),_p=mt((t,e)=>{ct(),ft(),ht();var{pipeline:r}=Nl(),n=fr(),{destroyer:l}=jn(),{isNodeStream:o,isReadable:s,isWritable:i,isWebStream:a,isTransformStream:u,isWritableStream:c,isReadableStream:d}=mr(),{AbortError:f,codes:{ERR_INVALID_ARG_VALUE:m,ERR_MISSING_ARGS:b}}=ve(),_=Fr();e.exports=function(...S){if(S.length===0)throw new b("streams");if(S.length===1)return n.from(S[0]);let U,D,K,$,Y,B=[...S];if(typeof S[0]=="function"&&(S[0]=n.from(S[0])),typeof S[S.length-1]=="function"){let R=S.length-1;S[R]=n.from(S[R])}for(let R=0;R0&&!(i(S[R])||c(S[R])||u(S[R])))throw new m(`streams[${R}]`,B[R],"must be writable")}let I=S[0],E=r(S,function(R){let et=$;$=null,et?et(R):R?Y.destroy(R):!P&&!w&&Y.destroy()}),w=!!(i(I)||c(I)||u(I)),P=!!(s(E)||d(E)||u(E));if(Y=new n({writableObjectMode:!(I==null||!I.writableObjectMode),readableObjectMode:!(E==null||!E.writableObjectMode),writable:w,readable:P}),w){if(o(I))Y._write=function(et,st,X){I.write(et,st)?X():U=X},Y._final=function(et){I.end(),D=et},I.on("drain",function(){if(U){let et=U;U=null,et()}});else if(a(I)){let et=(u(I)?I.writable:I).getWriter();Y._write=async function(st,X,j){try{await et.ready,et.write(st).catch(()=>{}),j()}catch(N){j(N)}},Y._final=async function(st){try{await et.ready,et.close().catch(()=>{}),D=st}catch(X){st(X)}}}let R=u(E)?E.readable:E;_(R,()=>{if(D){let et=D;D=null,et()}})}if(P){if(o(E))E.on("readable",function(){if(K){let R=K;K=null,R()}}),E.on("end",function(){Y.push(null)}),Y._read=function(){for(;;){let R=E.read();if(R===null)return void(K=Y._read);if(!Y.push(R))return}};else if(a(E)){let R=(u(E)?E.readable:E).getReader();Y._read=async function(){for(;;)try{let{value:et,done:st}=await R.read();if(!Y.push(et))return;if(st)return void Y.push(null)}catch{return}}}}return Y._destroy=function(R,et){!R&&$!==null&&(R=new f),K=null,U=null,D=null,$===null?et(R):($=et,o(E)&&l(E,R))},Y}}),w0=mt((t,e)=>{ct(),ft(),ht();var r=globalThis.AbortController||Bl().AbortController,{codes:{ERR_INVALID_ARG_VALUE:n,ERR_INVALID_ARG_TYPE:l,ERR_MISSING_ARGS:o,ERR_OUT_OF_RANGE:s},AbortError:i}=ve(),{validateAbortSignal:a,validateInteger:u,validateObject:c}=Ro(),d=te().Symbol("kWeak"),{finished:f}=Fr(),m=_p(),{addAbortSignalNoValidate:b}=Po(),{isWritable:_,isNodeStream:S}=mr(),{ArrayPrototypePush:U,MathFloor:D,Number:K,NumberIsNaN:$,Promise:Y,PromiseReject:B,PromisePrototypeThen:I,Symbol:E}=te(),w=E("kEmpty"),P=E("kEof");function R(N,V){if(typeof N!="function")throw new l("fn",["Function","AsyncFunction"],N);V!=null&&c(V,"options"),(V==null?void 0:V.signal)!=null&&a(V.signal,"options.signal");let nt=1;return(V==null?void 0:V.concurrency)!=null&&(nt=D(V.concurrency)),u(nt,"concurrency",1),(async function*(){var Q,G;let T=new r,q=this,tt=[],it=T.signal,lt={signal:it},ut=()=>T.abort();V!=null&&(Q=V.signal)!==null&&Q!==void 0&&Q.aborted&&ut(),V==null||(G=V.signal)===null||G===void 0||G.addEventListener("abort",ut);let pt,H,rt=!1;function Z(){rt=!0}(async function(){try{for await(let A of q){var dt;if(rt)return;if(it.aborted)throw new i;try{A=N(A,lt)}catch(F){A=B(F)}A!==w&&(typeof((dt=A)===null||dt===void 0?void 0:dt.catch)=="function"&&A.catch(Z),tt.push(A),pt&&(pt(),pt=null),!rt&&tt.length&&tt.length>=nt&&await new Y(F=>{H=F}))}tt.push(P)}catch(A){let F=B(A);I(F,void 0,Z),tt.push(F)}finally{var L;rt=!0,pt&&(pt(),pt=null),V==null||(L=V.signal)===null||L===void 0||L.removeEventListener("abort",ut)}})();try{for(;;){for(;tt.length>0;){let dt=await tt[0];if(dt===P)return;if(it.aborted)throw new i;dt!==w&&(yield dt),tt.shift(),H&&(H(),H=null)}await new Y(dt=>{pt=dt})}}finally{T.abort(),rt=!0,H&&(H(),H=null)}}).call(this)}async function et(N,V=void 0){for await(let nt of st.call(this,N,V))return!0;return!1}function st(N,V){if(typeof N!="function")throw new l("fn",["Function","AsyncFunction"],N);return R.call(this,async function(nt,Q){return await N(nt,Q)?nt:w},V)}var X=class extends o{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}};function j(N){if(N=K(N),$(N))return 0;if(N<0)throw new s("number",">= 0",N);return N}e.exports.streamReturningOperators={asIndexedPairs:function(N=void 0){return N!=null&&c(N,"options"),(N==null?void 0:N.signal)!=null&&a(N.signal,"options.signal"),(async function*(){let V=0;for await(let Q of this){var nt;if(N!=null&&(nt=N.signal)!==null&&nt!==void 0&&nt.aborted)throw new i({cause:N.signal.reason});yield[V++,Q]}}).call(this)},drop:function(N,V=void 0){return V!=null&&c(V,"options"),(V==null?void 0:V.signal)!=null&&a(V.signal,"options.signal"),N=j(N),(async function*(){var nt;if(V!=null&&(nt=V.signal)!==null&&nt!==void 0&&nt.aborted)throw new i;for await(let G of this){var Q;if(V!=null&&(Q=V.signal)!==null&&Q!==void 0&&Q.aborted)throw new i;N--<=0&&(yield G)}}).call(this)},filter:st,flatMap:function(N,V){let nt=R.call(this,N,V);return(async function*(){for await(let Q of nt)yield*Q}).call(this)},map:R,take:function(N,V=void 0){return V!=null&&c(V,"options"),(V==null?void 0:V.signal)!=null&&a(V.signal,"options.signal"),N=j(N),(async function*(){var nt;if(V!=null&&(nt=V.signal)!==null&&nt!==void 0&&nt.aborted)throw new i;for await(let G of this){var Q;if(V!=null&&(Q=V.signal)!==null&&Q!==void 0&&Q.aborted)throw new i;if(!(N-- >0))return;yield G}}).call(this)},compose:function(N,V){if(V!=null&&c(V,"options"),(V==null?void 0:V.signal)!=null&&a(V.signal,"options.signal"),S(N)&&!_(N))throw new n("stream",N,"must be writable");let nt=m(this,N);return V!=null&&V.signal&&b(V.signal,nt),nt}},e.exports.promiseReturningOperators={every:async function(N,V=void 0){if(typeof N!="function")throw new l("fn",["Function","AsyncFunction"],N);return!await et.call(this,async(...nt)=>!await N(...nt),V)},forEach:async function(N,V){if(typeof N!="function")throw new l("fn",["Function","AsyncFunction"],N);for await(let nt of R.call(this,async function(Q,G){return await N(Q,G),w},V));},reduce:async function(N,V,nt){var Q;if(typeof N!="function")throw new l("reducer",["Function","AsyncFunction"],N);nt!=null&&c(nt,"options"),(nt==null?void 0:nt.signal)!=null&&a(nt.signal,"options.signal");let G=arguments.length>1;if(nt!=null&&(Q=nt.signal)!==null&&Q!==void 0&&Q.aborted){let lt=new i(void 0,{cause:nt.signal.reason});throw this.once("error",()=>{}),await f(this.destroy(lt)),lt}let T=new r,q=T.signal;if(nt!=null&&nt.signal){let lt={once:!0,[d]:this};nt.signal.addEventListener("abort",()=>T.abort(),lt)}let tt=!1;try{for await(let lt of this){var it;if(tt=!0,nt!=null&&(it=nt.signal)!==null&&it!==void 0&&it.aborted)throw new i;G?V=await N(V,lt,{signal:q}):(V=lt,G=!0)}if(!tt&&!G)throw new X}finally{T.abort()}return V},toArray:async function(N){N!=null&&c(N,"options"),(N==null?void 0:N.signal)!=null&&a(N.signal,"options.signal");let V=[];for await(let Q of this){var nt;if(N!=null&&(nt=N.signal)!==null&&nt!==void 0&&nt.aborted)throw new i(void 0,{cause:N.signal.reason});U(V,Q)}return V},some:et,find:async function(N,V){for await(let nt of st.call(this,N,V))return nt}}}),Ep=mt((t,e)=>{ct(),ft(),ht();var{ArrayPrototypePop:r,Promise:n}=te(),{isIterable:l,isNodeStream:o,isWebStream:s}=mr(),{pipelineImpl:i}=Nl(),{finished:a}=Fr();Sp(),e.exports={finished:a,pipeline:function(...u){return new n((c,d)=>{let f,m,b=u[u.length-1];if(b&&typeof b=="object"&&!o(b)&&!l(b)&&!s(b)){let _=r(u);f=_.signal,m=_.end}i(u,(_,S)=>{_?d(_):c(S)},{signal:f,end:m})})}}}),Sp=mt((t,e)=>{ct(),ft(),ht();var{Buffer:r}=(oe(),Dt(ie)),{ObjectDefineProperty:n,ObjectKeys:l,ReflectApply:o}=te(),{promisify:{custom:s}}=hr(),{streamReturningOperators:i,promiseReturningOperators:a}=w0(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=ve(),c=_p(),{pipeline:d}=Nl(),{destroyer:f}=jn(),m=Fr(),b=Ep(),_=mr(),S=e.exports=Ml().Stream;S.isDisturbed=_.isDisturbed,S.isErrored=_.isErrored,S.isReadable=_.isReadable,S.Readable=Mo();for(let D of l(i)){let K=function(...Y){if(new.target)throw u();return S.Readable.from(o($,this,Y))},$=i[D];n(K,"name",{__proto__:null,value:$.name}),n(K,"length",{__proto__:null,value:$.length}),n(S.Readable.prototype,D,{__proto__:null,value:K,enumerable:!1,configurable:!0,writable:!0})}for(let D of l(a)){let K=function(...Y){if(new.target)throw u();return o($,this,Y)},$=a[D];n(K,"name",{__proto__:null,value:$.name}),n(K,"length",{__proto__:null,value:$.length}),n(S.Readable.prototype,D,{__proto__:null,value:K,enumerable:!1,configurable:!0,writable:!0})}S.Writable=bp(),S.Duplex=fr(),S.Transform=vp(),S.PassThrough=wp(),S.pipeline=d;var{addAbortSignal:U}=Po();S.addAbortSignal=U,S.finished=m,S.destroy=f,S.compose=c,n(S,"promises",{__proto__:null,configurable:!0,enumerable:!0,get:()=>b}),n(d,s,{__proto__:null,enumerable:!0,get:()=>b.pipeline}),n(m,s,{__proto__:null,enumerable:!0,get:()=>b.finished}),S.Stream=S,S._isUint8Array=function(D){return D instanceof Uint8Array},S._uint8ArrayToBuffer=function(D){return r.from(D.buffer,D.byteOffset,D.byteLength)}}),mn=mt((t,e)=>{ct(),ft(),ht();var r=Sp(),n=Ep(),l=r.Readable.destroy;e.exports=r.Readable,e.exports._uint8ArrayToBuffer=r._uint8ArrayToBuffer,e.exports._isUint8Array=r._isUint8Array,e.exports.isDisturbed=r.isDisturbed,e.exports.isErrored=r.isErrored,e.exports.isReadable=r.isReadable,e.exports.Readable=r.Readable,e.exports.Writable=r.Writable,e.exports.Duplex=r.Duplex,e.exports.Transform=r.Transform,e.exports.PassThrough=r.PassThrough,e.exports.addAbortSignal=r.addAbortSignal,e.exports.finished=r.finished,e.exports.destroy=r.destroy,e.exports.destroy=l,e.exports.pipeline=r.pipeline,e.exports.compose=r.compose,Object.defineProperty(r,"promises",{configurable:!0,enumerable:!0,get:()=>n}),e.exports.Stream=r.Stream,e.exports.default=e.exports}),_0=mt((t,e)=>{ct(),ft(),ht(),typeof Object.create=="function"?e.exports=function(r,n){n&&(r.super_=n,r.prototype=Object.create(n.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(r,n){if(n){r.super_=n;var l=function(){};l.prototype=n.prototype,r.prototype=new l,r.prototype.constructor=r}}}),E0=mt((t,e)=>{ct(),ft(),ht();var{Buffer:r}=(oe(),Dt(ie)),n=Symbol.for("BufferList");function l(o){if(!(this instanceof l))return new l(o);l._init.call(this,o)}l._init=function(o){Object.defineProperty(this,n,{value:!0}),this._bufs=[],this.length=0,o&&this.append(o)},l.prototype._new=function(o){return new l(o)},l.prototype._offset=function(o){if(o===0)return[0,0];let s=0;for(let i=0;ithis.length||o<0)return;let s=this._offset(o);return this._bufs[s[0]][s[1]]},l.prototype.slice=function(o,s){return typeof o=="number"&&o<0&&(o+=this.length),typeof s=="number"&&s<0&&(s+=this.length),this.copy(null,0,o,s)},l.prototype.copy=function(o,s,i,a){if((typeof i!="number"||i<0)&&(i=0),(typeof a!="number"||a>this.length)&&(a=this.length),i>=this.length||a<=0)return o||r.alloc(0);let u=!!o,c=this._offset(i),d=a-i,f=d,m=u&&s||0,b=c[1];if(i===0&&a===this.length){if(!u)return this._bufs.length===1?this._bufs[0]:r.concat(this._bufs,this.length);for(let _=0;_S)){this._bufs[_].copy(o,m,b,b+f),m+=S;break}this._bufs[_].copy(o,m,b),m+=S,f-=S,b&&(b=0)}return o.length>m?o.slice(0,m):o},l.prototype.shallowSlice=function(o,s){if(o=o||0,s=typeof s!="number"?this.length:s,o<0&&(o+=this.length),s<0&&(s+=this.length),o===s)return this._new();let i=this._offset(o),a=this._offset(s),u=this._bufs.slice(i[0],a[0]+1);return a[1]===0?u.pop():u[u.length-1]=u[u.length-1].slice(0,a[1]),i[1]!==0&&(u[0]=u[0].slice(i[1])),this._new(u)},l.prototype.toString=function(o,s,i){return this.slice(s,i).toString(o)},l.prototype.consume=function(o){if(o=Math.trunc(o),Number.isNaN(o)||o<=0)return this;for(;this._bufs.length;){if(!(o>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(o),this.length-=o;break}o-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},l.prototype.duplicate=function(){let o=this._new();for(let s=0;sthis.length?this.length:s;let a=this._offset(s),u=a[0],c=a[1];for(;u=o.length){let f=d.indexOf(o,c);if(f!==-1)return this._reverseOffset([u,f]);c=d.length-o.length+1}else{let f=this._reverseOffset([u,c]);if(this._match(f,o))return f;c++}c=0}return-1},l.prototype._match=function(o,s){if(this.length-o{ct(),ft(),ht();var r=mn().Duplex,n=_0(),l=E0();function o(s){if(!(this instanceof o))return new o(s);if(typeof s=="function"){this._callback=s;let i=(function(a){this._callback&&(this._callback(a),this._callback=null)}).bind(this);this.on("pipe",function(a){a.on("error",i)}),this.on("unpipe",function(a){a.removeListener("error",i)}),s=null}l._init.call(this,s),r.call(this)}n(o,r),Object.assign(o.prototype,l.prototype),o.prototype._new=function(s){return new o(s)},o.prototype._write=function(s,i,a){this._appendBuffer(s),typeof a=="function"&&a()},o.prototype._read=function(s){if(!this.length)return this.push(null);s=Math.min(s,this.length),this.push(this.slice(0,s)),this.consume(s)},o.prototype.end=function(s){r.prototype.end.call(this,s),this._callback&&(this._callback(null,this.slice()),this._callback=null)},o.prototype._destroy=function(s,i){this._bufs.length=0,this.length=0,i(s)},o.prototype._isBufferList=function(s){return s instanceof o||s instanceof l||o.isBufferList(s)},o.isBufferList=l.isBufferList,e.exports=o,e.exports.BufferListStream=o,e.exports.BufferList=l}),A0=mt((t,e)=>{ct(),ft(),ht(),e.exports=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}}}),Ap=mt((t,e)=>{ct(),ft(),ht();var r=e.exports,{Buffer:n}=(oe(),Dt(ie));r.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},r.requiredHeaderFlags={1:0,2:0,4:0,5:0,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:0,14:0,15:0},r.requiredHeaderFlagsErrors={};for(let o in r.requiredHeaderFlags){let s=r.requiredHeaderFlags[o];r.requiredHeaderFlagsErrors[o]="Invalid header flag bits, must be 0x"+s.toString(16)+" for "+r.types[o]+" packet"}r.codes={};for(let o in r.types){let s=r.types[o];r.codes[s]=o}r.CMD_SHIFT=4,r.CMD_MASK=240,r.DUP_MASK=8,r.QOS_MASK=3,r.QOS_SHIFT=1,r.RETAIN_MASK=1,r.VARBYTEINT_MASK=127,r.VARBYTEINT_FIN_MASK=128,r.VARBYTEINT_MAX=268435455,r.SESSIONPRESENT_MASK=1,r.SESSIONPRESENT_HEADER=n.from([r.SESSIONPRESENT_MASK]),r.CONNACK_HEADER=n.from([r.codes.connack<[0,1].map(i=>[0,1].map(a=>{let u=n.alloc(1);return u.writeUInt8(r.codes[o]<n.from([o])),r.EMPTY={pingreq:n.from([r.codes.pingreq<<4,0]),pingresp:n.from([r.codes.pingresp<<4,0]),disconnect:n.from([r.codes.disconnect<<4,0])},r.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},r.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},r.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},r.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},r.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},r.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}),k0=mt((t,e)=>{ct(),ft(),ht();var r=1e3,n=6e4,l=60*n,o=24*l,s=7*o,i=365.25*o;function a(u,c,d,f){var m=c>=1.5*d;return Math.round(u/d)+" "+f+(m?"s":"")}e.exports=function(u,c){c=c||{};var d=typeof u;if(d==="string"&&u.length>0)return function(f){if(f=String(f),!(f.length>100)){var m=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(f);if(m){var b=parseFloat(m[1]);switch((m[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return b*i;case"weeks":case"week":case"w":return b*s;case"days":case"day":case"d":return b*o;case"hours":case"hour":case"hrs":case"hr":case"h":return b*l;case"minutes":case"minute":case"mins":case"min":case"m":return b*n;case"seconds":case"second":case"secs":case"sec":case"s":return b*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return b;default:return}}}}(u);if(d==="number"&&isFinite(u))return c.long?function(f){var m=Math.abs(f);return m>=o?a(f,m,o,"day"):m>=l?a(f,m,l,"hour"):m>=n?a(f,m,n,"minute"):m>=r?a(f,m,r,"second"):f+" ms"}(u):function(f){var m=Math.abs(f);return m>=o?Math.round(f/o)+"d":m>=l?Math.round(f/l)+"h":m>=n?Math.round(f/n)+"m":m>=r?Math.round(f/r)+"s":f+"ms"}(u);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(u))}}),I0=mt((t,e)=>{ct(),ft(),ht(),e.exports=function(r){function n(s){let i,a,u,c=null;function d(...f){if(!d.enabled)return;let m=d,b=Number(new Date),_=b-(i||b);m.diff=_,m.prev=i,m.curr=b,i=b,f[0]=n.coerce(f[0]),typeof f[0]!="string"&&f.unshift("%O");let S=0;f[0]=f[0].replace(/%([a-zA-Z%])/g,(U,D)=>{if(U==="%%")return"%";S++;let K=n.formatters[D];if(typeof K=="function"){let $=f[S];U=K.call(m,$),f.splice(S,1),S--}return U}),n.formatArgs.call(m,f),(m.log||n.log).apply(m,f)}return d.namespace=s,d.useColors=n.useColors(),d.color=n.selectColor(s),d.extend=l,d.destroy=n.destroy,Object.defineProperty(d,"enabled",{enumerable:!0,configurable:!1,get:()=>c!==null?c:(a!==n.namespaces&&(a=n.namespaces,u=n.enabled(s)),u),set:f=>{c=f}}),typeof n.init=="function"&&n.init(d),d}function l(s,i){let a=n(this.namespace+(typeof i>"u"?":":i)+s);return a.log=this.log,a}function o(s){return s.toString().substring(2,s.toString().length-2).replace(/\.\*\?$/,"*")}return n.debug=n,n.default=n,n.coerce=function(s){return s instanceof Error?s.stack||s.message:s},n.disable=function(){let s=[...n.names.map(o),...n.skips.map(o).map(i=>"-"+i)].join(",");return n.enable(""),s},n.enable=function(s){n.save(s),n.namespaces=s,n.names=[],n.skips=[];let i,a=(typeof s=="string"?s:"").split(/[\s,]+/),u=a.length;for(i=0;i{n[s]=r[s]}),n.names=[],n.skips=[],n.formatters={},n.selectColor=function(s){let i=0;for(let a=0;a{ct(),ft(),ht(),t.formatArgs=function(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;let l="color: "+this.color;n.splice(1,0,l,"color: inherit");let o=0,s=0;n[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(o++,i==="%c"&&(s=o))}),n.splice(s,0,l)},t.save=function(n){try{n?t.storage.setItem("debug",n):t.storage.removeItem("debug")}catch{}},t.load=function(){let n;try{n=t.storage.getItem("debug")}catch{}return!n&&typeof Nt<"u"&&"env"in Nt&&(n=Nt.env.DEBUG),n},t.useColors=function(){return!(!(typeof window<"u"&&window.process)||window.process.type!=="renderer"&&!window.process.__nwjs)||!(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&(typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch{}}(),t.destroy=(()=>{let n=!1;return()=>{n||(n=!0)}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=I0()(t);var{formatters:r}=e.exports;r.j=function(n){try{return JSON.stringify(n)}catch(l){return"[UnexpectedJSONParseError]: "+l.message}}}),T0=mt((t,e)=>{ct(),ft(),ht();var r=S0(),{EventEmitter:n}=(Un(),Dt(gn)),l=A0(),o=Ap(),s=pr()("mqtt-packet:parser");e.exports=class Va extends n{constructor(){super(),this.parser=this.constructor.parser}static parser(a){return this instanceof Va?(this.settings=a||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new Va().parser(a)}_resetState(){s("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new l,this.error=null,this._list=r(),this._stateCounter=0}parse(a){for(this.error&&this._resetState(),this._list.append(a),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(){let a=this._list.readUInt8(0),u=a>>o.CMD_SHIFT;this.packet.cmd=o.types[u];let c=15&a,d=o.requiredHeaderFlags[u];return d!=null&&c!==d?this._emitError(new Error(o.requiredHeaderFlagsErrors[u])):(this.packet.retain=!!(a&o.RETAIN_MASK),this.packet.qos=a>>o.QOS_SHIFT&o.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=!!(a&o.DUP_MASK),s("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){let a=this._parseVarByteNum(!0);return a&&(this.packet.length=a.value,this._list.consume(a.bytes)),s("_parseLength %d",a.value),!!a}_parsePayload(){s("_parsePayload: payload %O",this._list);let a=!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"))}a=!0}return s("_parsePayload complete result: %s",a),a}_parseConnect(){s("_parseConnect");let a,u,c,d,f={},m=this.packet,b=this._parseString();if(b===null)return this._emitError(new Error("Cannot parse protocolId"));if(b!=="MQTT"&&b!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(m.protocolId=b,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(m.protocolVersion=this._list.readUInt8(this._pos),m.protocolVersion>=128&&(m.bridgeMode=!0,m.protocolVersion=m.protocolVersion-128),m.protocolVersion!==3&&m.protocolVersion!==4&&m.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(1&this._list.readUInt8(this._pos))return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));f.username=this._list.readUInt8(this._pos)&o.USERNAME_MASK,f.password=this._list.readUInt8(this._pos)&o.PASSWORD_MASK,f.will=this._list.readUInt8(this._pos)&o.WILL_FLAG_MASK;let _=!!(this._list.readUInt8(this._pos)&o.WILL_RETAIN_MASK),S=(this._list.readUInt8(this._pos)&o.WILL_QOS_MASK)>>o.WILL_QOS_SHIFT;if(f.will)m.will={},m.will.retain=_,m.will.qos=S;else{if(_)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(S)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(m.clean=!!(this._list.readUInt8(this._pos)&o.CLEAN_SESSION_MASK),this._pos++,m.keepalive=this._parseNum(),m.keepalive===-1)return this._emitError(new Error("Packet too short"));if(m.protocolVersion===5){let D=this._parseProperties();Object.getOwnPropertyNames(D).length&&(m.properties=D)}let U=this._parseString();if(U===null)return this._emitError(new Error("Packet too short"));if(m.clientId=U,s("_parseConnect: packet.clientId: %s",m.clientId),f.will){if(m.protocolVersion===5){let D=this._parseProperties();Object.getOwnPropertyNames(D).length&&(m.will.properties=D)}if(a=this._parseString(),a===null)return this._emitError(new Error("Cannot parse will topic"));if(m.will.topic=a,s("_parseConnect: packet.will.topic: %s",m.will.topic),u=this._parseBuffer(),u===null)return this._emitError(new Error("Cannot parse will payload"));m.will.payload=u,s("_parseConnect: packet.will.paylaod: %s",m.will.payload)}if(f.username){if(d=this._parseString(),d===null)return this._emitError(new Error("Cannot parse username"));m.username=d,s("_parseConnect: packet.username: %s",m.username)}if(f.password){if(c=this._parseBuffer(),c===null)return this._emitError(new Error("Cannot parse password"));m.password=c}return this.settings=m,s("_parseConnect: complete"),m}_parseConnack(){s("_parseConnack");let a=this.packet;if(this._list.length<1)return null;let u=this._list.readUInt8(this._pos++);if(u>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(a.sessionPresent=!!(u&o.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?a.reasonCode=this._list.readUInt8(this._pos++):a.reasonCode=0;else{if(this._list.length<2)return null;a.returnCode=this._list.readUInt8(this._pos++)}if(a.returnCode===-1||a.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(a.properties=c)}s("_parseConnack: complete")}_parsePublish(){s("_parsePublish");let a=this.packet;if(a.topic=this._parseString(),a.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(a.qos>0)||this._parseMessageId()){if(this.settings.protocolVersion===5){let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}a.payload=this._list.slice(this._pos,a.length),s("_parsePublish: payload from buffer list: %o",a.payload)}}_parseSubscribe(){s("_parseSubscribe");let a,u,c,d,f,m,b,_=this.packet;if(_.subscriptions=[],this._parseMessageId()){if(this.settings.protocolVersion===5){let S=this._parseProperties();Object.getOwnPropertyNames(S).length&&(_.properties=S)}if(_.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos<_.length;){if(a=this._parseString(),a===null)return this._emitError(new Error("Cannot parse topic"));if(this._pos>=_.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(u=this._parseByte(),this.settings.protocolVersion===5){if(192&u)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(252&u)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(c=u&o.SUBSCRIBE_OPTIONS_QOS_MASK,c>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(m=!!(u>>o.SUBSCRIBE_OPTIONS_NL_SHIFT&o.SUBSCRIBE_OPTIONS_NL_MASK),f=!!(u>>o.SUBSCRIBE_OPTIONS_RAP_SHIFT&o.SUBSCRIBE_OPTIONS_RAP_MASK),d=u>>o.SUBSCRIBE_OPTIONS_RH_SHIFT&o.SUBSCRIBE_OPTIONS_RH_MASK,d>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));b={topic:a,qos:c},this.settings.protocolVersion===5?(b.nl=m,b.rap=f,b.rh=d):this.settings.bridgeMode&&(b.rh=0,b.rap=!0,b.nl=!0),s("_parseSubscribe: push subscription `%s` to subscription",b),_.subscriptions.push(b)}}}_parseSuback(){s("_parseSuback");let a=this.packet;if(this.packet.granted=[],this._parseMessageId()){if(this.settings.protocolVersion===5){let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}if(a.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&u!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(u)}}}_parseUnsubscribe(){s("_parseUnsubscribe");let a=this.packet;if(a.unsubscriptions=[],this._parseMessageId()){if(this.settings.protocolVersion===5){let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}if(a.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(a.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!o.MQTT5_PUBACK_PUBREC_CODES[a.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!o.MQTT5_PUBREL_PUBCOMP_CODES[a.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"))}s("_parseConfirmation: packet.reasonCode `%d`",a.reasonCode)}else a.reasonCode=0;if(a.length>3){let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}}return!0}_parseDisconnect(){let a=this.packet;if(s("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(a.reasonCode=this._parseByte(),o.MQTT5_DISCONNECT_CODES[a.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):a.reasonCode=0;let u=this._parseProperties();Object.getOwnPropertyNames(u).length&&(a.properties=u)}return s("_parseDisconnect result: true"),!0}_parseAuth(){s("_parseAuth");let a=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(a.reasonCode=this._parseByte(),!o.MQTT5_AUTH_CODES[a.reasonCode])return this._emitError(new Error("Invalid auth reason code"));let u=this._parseProperties();return Object.getOwnPropertyNames(u).length&&(a.properties=u),s("_parseAuth: result: true"),!0}_parseMessageId(){let a=this.packet;return a.messageId=this._parseNum(),a.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(s("_parseMessageId: packet.messageId %d",a.messageId),!0)}_parseString(a){let u=this._parseNum(),c=u+this._pos;if(u===-1||c>this._list.length||c>this.packet.length)return null;let d=this._list.toString("utf8",this._pos,c);return this._pos+=u,s("_parseString: result: %s",d),d}_parseStringPair(){return s("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){let a=this._parseNum(),u=a+this._pos;if(a===-1||u>this._list.length||u>this.packet.length)return null;let c=this._list.slice(this._pos,u);return this._pos+=a,s("_parseBuffer: result: %o",c),c}_parseNum(){if(this._list.length-this._pos<2)return-1;let a=this._list.readUInt16BE(this._pos);return this._pos+=2,s("_parseNum: result: %s",a),a}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;let a=this._list.readUInt32BE(this._pos);return this._pos+=4,s("_parse4ByteNum: result: %s",a),a}_parseVarByteNum(a){s("_parseVarByteNum");let u,c=0,d=1,f=0,m=!1,b=this._pos?this._pos:0;for(;c<4&&b+c=c&&this._emitError(new Error("Invalid variable byte integer")),b&&(this._pos+=c),m=!!m&&(a?{bytes:c,value:f}:f),s("_parseVarByteNum: result: %o",m),m}_parseByte(){let a;return this._pos{ct(),ft(),ht();var{Buffer:r}=(oe(),Dt(ie)),n={},l=r.isBuffer(r.from([1,2]).subarray(0,1));function o(s){let i=r.allocUnsafe(2);return i.writeUInt8(s>>8,0),i.writeUInt8(255&s,1),i}e.exports={cache:n,generateCache:function(){for(let s=0;s<65536;s++)n[s]=o(s)},generateNumber:o,genBufVariableByteInt:function(s){let i=0,a=0,u=r.allocUnsafe(4);do i=s%128|0,(s=s/128|0)>0&&(i|=128),u.writeUInt8(i,a++);while(s>0&&a<4);return s>0&&(a=0),l?u.subarray(0,a):u.slice(0,a)},generate4ByteBuffer:function(s){let i=r.allocUnsafe(4);return i.writeUInt32BE(s,0),i}}}),x0=mt((t,e)=>{ct(),ft(),ht(),typeof Nt>"u"||!Nt.version||Nt.version.indexOf("v0.")===0||Nt.version.indexOf("v1.")===0&&Nt.version.indexOf("v1.8.")!==0?e.exports={nextTick:function(r,n,l,o){if(typeof r!="function")throw new TypeError('"callback" argument must be a function');var s,i,a=arguments.length;switch(a){case 0:case 1:return Nt.nextTick(r);case 2:return Nt.nextTick(function(){r.call(null,n)});case 3:return Nt.nextTick(function(){r.call(null,n,l)});case 4:return Nt.nextTick(function(){r.call(null,n,l,o)});default:for(s=new Array(a-1),i=0;i{ct(),ft(),ht();var r=Ap(),{Buffer:n}=(oe(),Dt(ie)),l=n.allocUnsafe(0),o=n.from([0]),s=O0(),i=x0().nextTick,a=pr()("mqtt-packet:writeToStream"),u=s.cache,c=s.generateNumber,d=s.generateCache,f=s.genBufVariableByteInt,m=s.generate4ByteBuffer,b=B,_=!0;function S(j,N,V){switch(a("generate called"),N.cork&&(N.cork(),i(U,N)),_&&(_=!1,d()),a("generate: packet.cmd: %s",j.cmd),j.cmd){case"connect":return function(nt,Q){let G=nt||{},T=G.protocolId||"MQTT",q=G.protocolVersion||4,tt=G.will,it=G.clean,lt=G.keepalive||0,ut=G.clientId||"",pt=G.username,H=G.password,rt=G.properties;it===void 0&&(it=!0);let Z,dt,L=0;if(!T||typeof T!="string"&&!n.isBuffer(T))return Q.destroy(new Error("Invalid protocolId")),!1;if(L+=T.length+2,q!==3&&q!==4&&q!==5)return Q.destroy(new Error("Invalid protocol version")),!1;if(L+=1,(typeof ut=="string"||n.isBuffer(ut))&&(ut||q>=4)&&(ut||it))L+=n.byteLength(ut)+2;else{if(q<4)return Q.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(1*it==0)return Q.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof lt!="number"||lt<0||lt>65535||lt%1!=0)return Q.destroy(new Error("Invalid keepalive")),!1;if(L+=2,L+=1,q===5){if(Z=w(Q,rt),!Z)return!1;L+=Z.length}if(tt){if(typeof tt!="object")return Q.destroy(new Error("Invalid will")),!1;if(!tt.topic||typeof tt.topic!="string")return Q.destroy(new Error("Invalid will topic")),!1;if(L+=n.byteLength(tt.topic)+2,L+=2,tt.payload){if(!(tt.payload.length>=0))return Q.destroy(new Error("Invalid will payload")),!1;typeof tt.payload=="string"?L+=n.byteLength(tt.payload):L+=tt.payload.length}if(dt={},q===5){if(dt=w(Q,tt.properties),!dt)return!1;L+=dt.length}}let A=!1;if(pt!=null){if(!X(pt))return Q.destroy(new Error("Invalid username")),!1;A=!0,L+=n.byteLength(pt)+2}if(H!=null){if(!A)return Q.destroy(new Error("Username is required to use password")),!1;if(!X(H))return Q.destroy(new Error("Invalid password")),!1;L+=st(H)+2}Q.write(r.CONNECT_HEADER),K(Q,L),E(Q,T),G.bridgeMode&&(q+=128),Q.write(q===131?r.VERSION131:q===132?r.VERSION132:q===4?r.VERSION4:q===5?r.VERSION5:r.VERSION3);let F=0;return F|=pt!=null?r.USERNAME_MASK:0,F|=H!=null?r.PASSWORD_MASK:0,F|=tt&&tt.retain?r.WILL_RETAIN_MASK:0,F|=tt&&tt.qos?tt.qos<0&&b(Q,pt),Z==null||Z.write(),a("publish: payload: %o",ut),Q.write(ut)}(j,N,V);case"puback":case"pubrec":case"pubrel":case"pubcomp":return function(nt,Q,G){let T=G?G.protocolVersion:4,q=nt||{},tt=q.cmd||"puback",it=q.messageId,lt=q.dup&&tt==="pubrel"?r.DUP_MASK:0,ut=0,pt=q.reasonCode,H=q.properties,rt=T===5?3:2;if(tt==="pubrel"&&(ut=1),typeof it!="number")return Q.destroy(new Error("Invalid messageId")),!1;let Z=null;if(T===5&&typeof H=="object"){if(Z=P(Q,H,G,rt),!Z)return!1;rt+=Z.length}return Q.write(r.ACKS[tt][ut][lt][0]),rt===3&&(rt+=pt!==0?1:-1),K(Q,rt),b(Q,it),T===5&&rt!==2&&Q.write(n.from([pt])),Z!==null?Z.write():rt===4&&Q.write(n.from([0])),!0}(j,N,V);case"subscribe":return function(nt,Q,G){a("subscribe: packet: ");let T=G?G.protocolVersion:4,q=nt||{},tt=q.dup?r.DUP_MASK:0,it=q.messageId,lt=q.subscriptions,ut=q.properties,pt=0;if(typeof it!="number")return Q.destroy(new Error("Invalid messageId")),!1;pt+=2;let H=null;if(T===5){if(H=w(Q,ut),!H)return!1;pt+=H.length}if(typeof lt!="object"||!lt.length)return Q.destroy(new Error("Invalid subscriptions")),!1;for(let Z=0;Z2)return Q.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}pt+=n.byteLength(dt)+2+1}a("subscribe: writing to stream: %o",r.SUBSCRIBE_HEADER),Q.write(r.SUBSCRIBE_HEADER[1][tt?1:0][0]),K(Q,pt),b(Q,it),H!==null&&H.write();let rt=!0;for(let Z of lt){let dt,L=Z.topic,A=Z.qos,F=+Z.nl,h=+Z.rap,p=Z.rh;$(Q,L),dt=r.SUBSCRIBE_OPTIONS_QOS[A],T===5&&(dt|=F?r.SUBSCRIBE_OPTIONS_NL:0,dt|=h?r.SUBSCRIBE_OPTIONS_RAP:0,dt|=p?r.SUBSCRIBE_OPTIONS_RH[p]:0),rt=Q.write(n.from([dt]))}return rt}(j,N,V);case"suback":return function(nt,Q,G){let T=G?G.protocolVersion:4,q=nt||{},tt=q.messageId,it=q.granted,lt=q.properties,ut=0;if(typeof tt!="number")return Q.destroy(new Error("Invalid messageId")),!1;if(ut+=2,typeof it!="object"||!it.length)return Q.destroy(new Error("Invalid qos vector")),!1;for(let H=0;Hb===B,set(j){j?((!u||Object.keys(u).length===0)&&(_=!0),b=B):(_=!1,b=I)}});var D={};function K(j,N){if(N>r.VARBYTEINT_MAX)return j.destroy(new Error(`Invalid variable byte integer: ${N}`)),!1;let V=D[N];return V||(V=f(N),N<16384&&(D[N]=V)),a("writeVarByteInt: writing to stream: %o",V),j.write(V)}function $(j,N){let V=n.byteLength(N);return b(j,V),a("writeString: %s",N),j.write(N,"utf8")}function Y(j,N,V){$(j,N),$(j,V)}function B(j,N){return a("writeNumberCached: number: %d",N),a("writeNumberCached: %o",u[N]),j.write(u[N])}function I(j,N){let V=c(N);return a("writeNumberGenerated: %o",V),j.write(V)}function E(j,N){typeof N=="string"?$(j,N):N?(b(j,N.length),j.write(N)):b(j,0)}function w(j,N){if(typeof N!="object"||N.length!=null)return{length:1,write(){et(j,{},0)}};let V=0;function nt(Q,G){let T=0;switch(r.propertiesTypes[Q]){case"byte":if(typeof G!="boolean")return j.destroy(new Error(`Invalid ${Q}: ${G}`)),!1;T+=2;break;case"int8":if(typeof G!="number"||G<0||G>255)return j.destroy(new Error(`Invalid ${Q}: ${G}`)),!1;T+=2;break;case"binary":if(G&&G===null)return j.destroy(new Error(`Invalid ${Q}: ${G}`)),!1;T+=1+n.byteLength(G)+2;break;case"int16":if(typeof G!="number"||G<0||G>65535)return j.destroy(new Error(`Invalid ${Q}: ${G}`)),!1;T+=3;break;case"int32":if(typeof G!="number"||G<0||G>4294967295)return j.destroy(new Error(`Invalid ${Q}: ${G}`)),!1;T+=5;break;case"var":if(typeof G!="number"||G<0||G>268435455)return j.destroy(new Error(`Invalid ${Q}: ${G}`)),!1;T+=1+n.byteLength(f(G));break;case"string":if(typeof G!="string")return j.destroy(new Error(`Invalid ${Q}: ${G}`)),!1;T+=3+n.byteLength(G.toString());break;case"pair":if(typeof G!="object")return j.destroy(new Error(`Invalid ${Q}: ${G}`)),!1;T+=Object.getOwnPropertyNames(G).reduce((q,tt)=>{let it=G[tt];return Array.isArray(it)?q+=it.reduce((lt,ut)=>lt+=3+n.byteLength(tt.toString())+2+n.byteLength(ut.toString()),0):q+=3+n.byteLength(tt.toString())+2+n.byteLength(G[tt].toString()),q},0);break;default:return j.destroy(new Error(`Invalid property ${Q}: ${G}`)),!1}return T}if(N)for(let Q in N){let G=0,T=0,q=N[Q];if(Array.isArray(q))for(let tt=0;ttG;){let q=Q.shift();if(!q||!N[q])return!1;delete N[q],T=w(j,N)}return T}function R(j,N,V){switch(r.propertiesTypes[N]){case"byte":j.write(n.from([r.properties[N]])),j.write(n.from([+V]));break;case"int8":j.write(n.from([r.properties[N]])),j.write(n.from([V]));break;case"binary":j.write(n.from([r.properties[N]])),E(j,V);break;case"int16":j.write(n.from([r.properties[N]])),b(j,V);break;case"int32":j.write(n.from([r.properties[N]])),function(nt,Q){let G=m(Q);a("write4ByteNumber: %o",G),nt.write(G)}(j,V);break;case"var":j.write(n.from([r.properties[N]])),K(j,V);break;case"string":j.write(n.from([r.properties[N]])),$(j,V);break;case"pair":Object.getOwnPropertyNames(V).forEach(nt=>{let Q=V[nt];Array.isArray(Q)?Q.forEach(G=>{j.write(n.from([r.properties[N]])),Y(j,nt.toString(),G.toString())}):(j.write(n.from([r.properties[N]])),Y(j,nt.toString(),Q.toString()))});break;default:return j.destroy(new Error(`Invalid property ${N} value: ${V}`)),!1}}function et(j,N,V){K(j,V);for(let nt in N)if(Object.prototype.hasOwnProperty.call(N,nt)&&N[nt]!==null){let Q=N[nt];if(Array.isArray(Q))for(let G=0;G{ct(),ft(),ht();var r=kp(),{EventEmitter:n}=(Un(),Dt(gn)),{Buffer:l}=(oe(),Dt(ie)),o=class extends n{constructor(){super(),this._array=new Array(20),this._i=0}write(s){return this._array[this._i++]=s,!0}concat(){let s,i=0,a=new Array(this._array.length),u=this._array,c=0;for(s=0;s{ct(),ft(),ht(),t.parser=T0().parser,t.generate=C0(),t.writeToStream=kp()}),Ip=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(){this.nextId=Math.max(1,Math.floor(65535*Math.random()))}allocate(){let e=this.nextId++;return this.nextId===65536&&(this.nextId=1),e}getLastAllocated(){return this.nextId===1?65535:this.nextId-1}register(e){return!0}deallocate(e){}clear(){}}}),P0=mt((t,e)=>{function r(n){return n instanceof co?co.from(n):new n.constructor(n.buffer.slice(),n.byteOffset,n.length)}ct(),ft(),ht(),e.exports=function(n){return(n=n||{}).circles?function(o){var s=[],i=[];return o.proto?function u(c){if(typeof c!="object"||c===null)return c;if(c instanceof Date)return new Date(c);if(Array.isArray(c))return a(c,u);if(c instanceof Map)return new Map(a(Array.from(c),u));if(c instanceof Set)return new Set(a(Array.from(c),u));var d={};for(var f in s.push(c),i.push(d),c){var m=c[f];if(typeof m!="object"||m===null)d[f]=m;else if(m instanceof Date)d[f]=new Date(m);else if(m instanceof Map)d[f]=new Map(a(Array.from(m),u));else if(m instanceof Set)d[f]=new Set(a(Array.from(m),u));else if(ArrayBuffer.isView(m))d[f]=r(m);else{var b=s.indexOf(m);d[f]=b!==-1?i[b]:u(m)}}return s.pop(),i.pop(),d}:function u(c){if(typeof c!="object"||c===null)return c;if(c instanceof Date)return new Date(c);if(Array.isArray(c))return a(c,u);if(c instanceof Map)return new Map(a(Array.from(c),u));if(c instanceof Set)return new Set(a(Array.from(c),u));var d={};for(var f in s.push(c),i.push(d),c)if(Object.hasOwnProperty.call(c,f)!==!1){var m=c[f];if(typeof m!="object"||m===null)d[f]=m;else if(m instanceof Date)d[f]=new Date(m);else if(m instanceof Map)d[f]=new Map(a(Array.from(m),u));else if(m instanceof Set)d[f]=new Set(a(Array.from(m),u));else if(ArrayBuffer.isView(m))d[f]=r(m);else{var b=s.indexOf(m);d[f]=b!==-1?i[b]:u(m)}}return s.pop(),i.pop(),d};function a(u,c){for(var d=Object.keys(u),f=new Array(d.length),m=0;m{ct(),ft(),ht(),e.exports=P0()()}),M0=mt(t=>{function e(r){let n=r.split("/");for(let l=0;l{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0});var e=mn(),r={objectMode:!0},n={clean:!0};t.default=class{constructor(l){this.options=l||{},this.options=Object.assign(Object.assign({},n),l),this._inflights=new Map}put(l,o){return this._inflights.set(l.messageId,l),o&&o(),this}createStream(){let l=new e.Readable(r),o=[],s=!1,i=0;return this._inflights.forEach((a,u)=>{o.push(a)}),l._read=()=>{!s&&i{if(!s)return s=!0,setTimeout(()=>{l.emit("close")},0),l},l}del(l,o){let s=this._inflights.get(l.messageId);return s?(this._inflights.delete(l.messageId),o(null,s)):o&&o(new Error("missing packet")),this}get(l,o){let s=this._inflights.get(l.messageId);return s?o(null,s):o&&o(new Error("missing packet")),this}close(l){this.options.clean&&(this._inflights=null),l&&l()}}}),L0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0});var e=[0,16,128,131,135,144,145,151,153];t.default=(r,n,l)=>{r.log("handlePublish: packet %o",n),l=typeof l<"u"?l:r.noop;let o=n.topic.toString(),s=n.payload,{qos:i}=n,{messageId:a}=n,{options:u}=r;if(r.options.protocolVersion===5){let c;if(n.properties&&(c=n.properties.topicAlias),typeof c<"u")if(o.length===0){if(!(c>0&&c<=65535))return r.log("handlePublish :: topic alias out of range. alias: %d",c),void r.emit("error",new Error("Received Topic Alias is out of range"));{let d=r.topicAliasRecv.getTopicByAlias(c);if(!d)return r.log("handlePublish :: unregistered topic alias. alias: %d",c),void r.emit("error",new Error("Received unregistered Topic Alias"));o=d,r.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",o,c)}}else{if(!r.topicAliasRecv.put(o,c))return r.log("handlePublish :: topic alias out of range. alias: %d",c),void r.emit("error",new Error("Received Topic Alias is out of range"));r.log("handlePublish :: registered topic: %s - alias: %d",o,c)}}switch(r.log("handlePublish: qos %d",i),i){case 2:u.customHandleAcks(o,s,n,(c,d)=>(typeof c=="number"&&(d=c,c=null),c?r.emit("error",c):e.indexOf(d)===-1?r.emit("error",new Error("Wrong reason code for pubrec")):void(d?r._sendPacket({cmd:"pubrec",messageId:a,reasonCode:d},l):r.incomingStore.put(n,()=>{r._sendPacket({cmd:"pubrec",messageId:a},l)}))));break;case 1:u.customHandleAcks(o,s,n,(c,d)=>(typeof c=="number"&&(d=c,c=null),c?r.emit("error",c):e.indexOf(d)===-1?r.emit("error",new Error("Wrong reason code for puback")):(d||r.emit("message",o,s,n),void r.handleMessage(n,f=>{if(f)return l&&l(f);r._sendPacket({cmd:"puback",messageId:a,reasonCode:d},l)}))));break;case 0:r.emit("message",o,s,n),r.handleMessage(n,l);break;default:r.log("handlePublish: unknown QoS. Doing nothing.")}}}),j0=mt((t,e)=>{e.exports={version:"5.10.1"}}),Nn=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0}),t.MQTTJS_VERSION=t.nextTick=t.applyMixin=t.ErrorWithReasonCode=void 0;var e=class Op extends Error{constructor(n,l){super(n),this.code=l,Object.setPrototypeOf(this,Op.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}};t.ErrorWithReasonCode=e,t.applyMixin=function(r,n,l=!1){var o;let s=[n];for(;;){let i=s[0],a=Object.getPrototypeOf(i);if(!(a!=null&&a.prototype))break;s.unshift(a)}for(let i of s)for(let a of Object.getOwnPropertyNames(i.prototype))(l||a!=="constructor")&&Object.defineProperty(r.prototype,a,(o=Object.getOwnPropertyDescriptor(i.prototype,a))!==null&&o!==void 0?o:Object.create(null))},t.nextTick=typeof(Nt==null?void 0:Nt.nextTick)=="function"?Nt.nextTick:r=>{setTimeout(r,0)},t.MQTTJS_VERSION=j0().version}),Lo=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=void 0;var e=Nn();t.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},t.default=(r,n)=>{let{messageId:l}=n,o=n.cmd,s=null,i=r.outgoing[l]?r.outgoing[l].cb:null,a=null;if(i){switch(r.log("_handleAck :: packet type",o),o){case"pubcomp":case"puback":{let u=n.reasonCode;u&&u>0&&u!==16?(a=new e.ErrorWithReasonCode(`Publish error: ${t.ReasonCodes[u]}`,u),r._removeOutgoingAndStoreMessage(l,()=>{i(a,n)})):r._removeOutgoingAndStoreMessage(l,i);break}case"pubrec":{s={cmd:"pubrel",qos:2,messageId:l};let u=n.reasonCode;u&&u>0&&u!==16?(a=new e.ErrorWithReasonCode(`Publish error: ${t.ReasonCodes[u]}`,u),r._removeOutgoingAndStoreMessage(l,()=>{i(a,n)})):r._sendPacket(s);break}case"suback":{delete r.outgoing[l],r.messageIdProvider.deallocate(l);let u=n.granted;for(let c=0;c{delete r._resubscribeTopics[m]})}}delete r.messageIdToTopic[l],r._invokeStoreProcessingQueue(),i(a,n);break}case"unsuback":delete r.outgoing[l],r.messageIdProvider.deallocate(l),r._invokeStoreProcessingQueue(),i(null,n);break;default:r.emit("error",new Error("unrecognized packet type"))}r.disconnecting&&Object.keys(r.outgoing).length===0&&r.emit("outgoingEmpty")}else r.log("_handleAck :: Server sent an ack in error. Ignoring.")}}),U0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0});var e=Nn(),r=Lo();t.default=(n,l)=>{let{options:o}=n,s=o.protocolVersion,i=s===5?l.reasonCode:l.returnCode;if(s===5)n.handleAuth(l,(a,u)=>{if(a)n.emit("error",a);else if(i===24)n.reconnecting=!1,n._sendPacket(u);else{let c=new e.ErrorWithReasonCode(`Connection refused: ${r.ReasonCodes[i]}`,i);n.emit("error",c)}});else{let a=new e.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${s}`,i);n.emit("error",a)}}}),N0=mt(t=>{var f,m,b,_,S,U,D,K,$,Y,B,I,E,w,P,R,et,st,X,j,N,V,nt,Q,G,T,qa,tt,it,lt,ut,xp,H,rt,Z,Ir,Tr,Ha,Ji,Xi,$t,za,Qn,C;ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0}),t.LRUCache=void 0;var e=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,r=new Set,n=typeof Nt=="object"&&Nt?Nt:{},l=(x,g,v,k)=>{typeof n.emitWarning=="function"&&n.emitWarning(x,g,v,k)},o=globalThis.AbortController,s=globalThis.AbortSignal;if(typeof o>"u"){s=class{constructor(){zt(this,"onabort");zt(this,"_onabort",[]);zt(this,"reason");zt(this,"aborted",!1)}addEventListener(v,k){this._onabort.push(k)}},o=class{constructor(){zt(this,"signal",new s);g()}abort(v){var k,M;if(!this.signal.aborted){this.signal.reason=v,this.signal.aborted=!0;for(let W of this.signal._onabort)W(v);(M=(k=this.signal).onabort)==null||M.call(k,v)}}};let x=((f=n.env)==null?void 0:f.LRU_CACHE_IGNORE_AC_WARNING)!=="1",g=()=>{x&&(x=!1,l("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",g))}}var i=x=>x&&x===Math.floor(x)&&x>0&&isFinite(x),a=x=>i(x)?x<=Math.pow(2,8)?Uint8Array:x<=Math.pow(2,16)?Uint16Array:x<=Math.pow(2,32)?Uint32Array:x<=Number.MAX_SAFE_INTEGER?u:null:null,u=class extends Array{constructor(x){super(x),this.fill(0)}},c=(m=class{constructor(g,v){zt(this,"heap");zt(this,"length");if(!z(m,b))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new v(g),this.length=0}static create(g){let v=a(g);if(!v)return[];St(m,b,!0);let k=new m(g,v);return St(m,b,!1),k}push(g){this.heap[this.length++]=g}pop(){return this.heap[--this.length]}},b=new WeakMap,Rt(m,b,!1),m),d=(C=class{constructor(g){Rt(this,T);Rt(this,_);Rt(this,S);Rt(this,U);Rt(this,D);Rt(this,K);zt(this,"ttl");zt(this,"ttlResolution");zt(this,"ttlAutopurge");zt(this,"updateAgeOnGet");zt(this,"updateAgeOnHas");zt(this,"allowStale");zt(this,"noDisposeOnSet");zt(this,"noUpdateTTL");zt(this,"maxEntrySize");zt(this,"sizeCalculation");zt(this,"noDeleteOnFetchRejection");zt(this,"noDeleteOnStaleGet");zt(this,"allowStaleOnFetchAbort");zt(this,"allowStaleOnFetchRejection");zt(this,"ignoreFetchAbort");Rt(this,$);Rt(this,Y);Rt(this,B);Rt(this,I);Rt(this,E);Rt(this,w);Rt(this,P);Rt(this,R);Rt(this,et);Rt(this,st);Rt(this,X);Rt(this,j);Rt(this,N);Rt(this,V);Rt(this,nt);Rt(this,Q);Rt(this,G);Rt(this,tt,()=>{});Rt(this,it,()=>{});Rt(this,lt,()=>{});Rt(this,ut,()=>!1);Rt(this,H,g=>{});Rt(this,rt,(g,v,k)=>{});Rt(this,Z,(g,v,k,M)=>{if(k||M)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});let{max:v=0,ttl:k,ttlResolution:M=1,ttlAutopurge:W,updateAgeOnGet:J,updateAgeOnHas:at,allowStale:ot,dispose:vt,disposeAfter:bt,noDisposeOnSet:wt,noUpdateTTL:Ot,maxSize:kt=0,maxEntrySize:Mt=0,sizeCalculation:_t,fetchMethod:It,noDeleteOnFetchRejection:yt,noDeleteOnStaleGet:xt,allowStaleOnFetchRejection:vr,allowStaleOnFetchAbort:Ht,ignoreFetchAbort:Jt}=g;if(v!==0&&!i(v))throw new TypeError("max option must be a nonnegative integer");let Ee=v?a(v):Array;if(!Ee)throw new Error("invalid max value: "+v);if(St(this,_,v),St(this,S,kt),this.maxEntrySize=Mt||z(this,S),this.sizeCalculation=_t,this.sizeCalculation){if(!z(this,S)&&!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(It!==void 0&&typeof It!="function")throw new TypeError("fetchMethod must be a function if specified");if(St(this,K,It),St(this,Q,!!It),St(this,B,new Map),St(this,I,new Array(v).fill(void 0)),St(this,E,new Array(v).fill(void 0)),St(this,w,new Ee(v)),St(this,P,new Ee(v)),St(this,R,0),St(this,et,0),St(this,st,c.create(v)),St(this,$,0),St(this,Y,0),typeof vt=="function"&&St(this,U,vt),typeof bt=="function"?(St(this,D,bt),St(this,X,[])):(St(this,D,void 0),St(this,X,void 0)),St(this,nt,!!z(this,U)),St(this,G,!!z(this,D)),this.noDisposeOnSet=!!wt,this.noUpdateTTL=!!Ot,this.noDeleteOnFetchRejection=!!yt,this.allowStaleOnFetchRejection=!!vr,this.allowStaleOnFetchAbort=!!Ht,this.ignoreFetchAbort=!!Jt,this.maxEntrySize!==0){if(z(this,S)!==0&&!i(z(this,S)))throw new TypeError("maxSize must be a positive integer if specified");if(!i(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Et(this,T,xp).call(this)}if(this.allowStale=!!ot,this.noDeleteOnStaleGet=!!xt,this.updateAgeOnGet=!!J,this.updateAgeOnHas=!!at,this.ttlResolution=i(M)||M===0?M:1,this.ttlAutopurge=!!W,this.ttl=k||0,this.ttl){if(!i(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Et(this,T,qa).call(this)}if(z(this,_)===0&&this.ttl===0&&z(this,S)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!z(this,_)&&!z(this,S)){let De="LRU_CACHE_UNBOUNDED";(Ye=>!r.has(Ye))(De)&&(r.add(De),l("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",De,C))}}static unsafeExposeInternals(g){return{starts:z(g,N),ttls:z(g,V),sizes:z(g,j),keyMap:z(g,B),keyList:z(g,I),valList:z(g,E),next:z(g,w),prev:z(g,P),get head(){return z(g,R)},get tail(){return z(g,et)},free:z(g,st),isBackgroundFetch:v=>{var k;return Et(k=g,T,$t).call(k,v)},backgroundFetch:(v,k,M,W)=>{var J;return Et(J=g,T,Xi).call(J,v,k,M,W)},moveToTail:v=>{var k;return Et(k=g,T,Qn).call(k,v)},indexes:v=>{var k;return Et(k=g,T,Ir).call(k,v)},rindexes:v=>{var k;return Et(k=g,T,Tr).call(k,v)},isStale:v=>{var k;return z(k=g,ut).call(k,v)}}}get max(){return z(this,_)}get maxSize(){return z(this,S)}get calculatedSize(){return z(this,Y)}get size(){return z(this,$)}get fetchMethod(){return z(this,K)}get dispose(){return z(this,U)}get disposeAfter(){return z(this,D)}getRemainingTTL(g){return z(this,B).has(g)?1/0:0}*entries(){for(let g of Et(this,T,Ir).call(this))z(this,E)[g]!==void 0&&z(this,I)[g]!==void 0&&!Et(this,T,$t).call(this,z(this,E)[g])&&(yield[z(this,I)[g],z(this,E)[g]])}*rentries(){for(let g of Et(this,T,Tr).call(this))z(this,E)[g]!==void 0&&z(this,I)[g]!==void 0&&!Et(this,T,$t).call(this,z(this,E)[g])&&(yield[z(this,I)[g],z(this,E)[g]])}*keys(){for(let g of Et(this,T,Ir).call(this)){let v=z(this,I)[g];v!==void 0&&!Et(this,T,$t).call(this,z(this,E)[g])&&(yield v)}}*rkeys(){for(let g of Et(this,T,Tr).call(this)){let v=z(this,I)[g];v!==void 0&&!Et(this,T,$t).call(this,z(this,E)[g])&&(yield v)}}*values(){for(let g of Et(this,T,Ir).call(this))z(this,E)[g]!==void 0&&!Et(this,T,$t).call(this,z(this,E)[g])&&(yield z(this,E)[g])}*rvalues(){for(let g of Et(this,T,Tr).call(this))z(this,E)[g]!==void 0&&!Et(this,T,$t).call(this,z(this,E)[g])&&(yield z(this,E)[g])}[Symbol.iterator](){return this.entries()}find(g,v={}){for(let k of Et(this,T,Ir).call(this)){let M=z(this,E)[k],W=Et(this,T,$t).call(this,M)?M.__staleWhileFetching:M;if(W!==void 0&&g(W,z(this,I)[k],this))return this.get(z(this,I)[k],v)}}forEach(g,v=this){for(let k of Et(this,T,Ir).call(this)){let M=z(this,E)[k],W=Et(this,T,$t).call(this,M)?M.__staleWhileFetching:M;W!==void 0&&g.call(v,W,z(this,I)[k],this)}}rforEach(g,v=this){for(let k of Et(this,T,Tr).call(this)){let M=z(this,E)[k],W=Et(this,T,$t).call(this,M)?M.__staleWhileFetching:M;W!==void 0&&g.call(v,W,z(this,I)[k],this)}}purgeStale(){let g=!1;for(let v of Et(this,T,Tr).call(this,{allowStale:!0}))z(this,ut).call(this,v)&&(this.delete(z(this,I)[v]),g=!0);return g}dump(){let g=[];for(let v of Et(this,T,Ir).call(this,{allowStale:!0})){let k=z(this,I)[v],M=z(this,E)[v],W=Et(this,T,$t).call(this,M)?M.__staleWhileFetching:M;if(W===void 0||k===void 0)continue;let J={value:W};if(z(this,V)&&z(this,N)){J.ttl=z(this,V)[v];let at=e.now()-z(this,N)[v];J.start=Math.floor(Date.now()-at)}z(this,j)&&(J.size=z(this,j)[v]),g.unshift([k,J])}return g}load(g){this.clear();for(let[v,k]of g){if(k.start){let M=Date.now()-k.start;k.start=e.now()-M}this.set(v,k.value,k)}}set(g,v,k={}){var Ot,kt,Mt,_t,It;if(v===void 0)return this.delete(g),this;let{ttl:M=this.ttl,start:W,noDisposeOnSet:J=this.noDisposeOnSet,sizeCalculation:at=this.sizeCalculation,status:ot}=k,{noUpdateTTL:vt=this.noUpdateTTL}=k,bt=z(this,Z).call(this,g,v,k.size||0,at);if(this.maxEntrySize&&bt>this.maxEntrySize)return ot&&(ot.set="miss",ot.maxEntrySizeExceeded=!0),this.delete(g),this;let wt=z(this,$)===0?void 0:z(this,B).get(g);if(wt===void 0)wt=z(this,$)===0?z(this,et):z(this,st).length!==0?z(this,st).pop():z(this,$)===z(this,_)?Et(this,T,Ji).call(this,!1):z(this,$),z(this,I)[wt]=g,z(this,E)[wt]=v,z(this,B).set(g,wt),z(this,w)[z(this,et)]=wt,z(this,P)[wt]=z(this,et),St(this,et,wt),Ii(this,$)._++,z(this,rt).call(this,wt,bt,ot),ot&&(ot.set="add"),vt=!1;else{Et(this,T,Qn).call(this,wt);let yt=z(this,E)[wt];if(v!==yt){if(z(this,Q)&&Et(this,T,$t).call(this,yt)){yt.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:xt}=yt;xt!==void 0&&!J&&(z(this,nt)&&((Ot=z(this,U))==null||Ot.call(this,xt,g,"set")),z(this,G)&&((kt=z(this,X))==null||kt.push([xt,g,"set"])))}else J||(z(this,nt)&&((Mt=z(this,U))==null||Mt.call(this,yt,g,"set")),z(this,G)&&((_t=z(this,X))==null||_t.push([yt,g,"set"])));if(z(this,H).call(this,wt),z(this,rt).call(this,wt,bt,ot),z(this,E)[wt]=v,ot){ot.set="replace";let xt=yt&&Et(this,T,$t).call(this,yt)?yt.__staleWhileFetching:yt;xt!==void 0&&(ot.oldValue=xt)}}else ot&&(ot.set="update")}if(M!==0&&!z(this,V)&&Et(this,T,qa).call(this),z(this,V)&&(vt||z(this,lt).call(this,wt,M,W),ot&&z(this,it).call(this,ot,wt)),!J&&z(this,G)&&z(this,X)){let yt,xt=z(this,X);for(;yt=xt==null?void 0:xt.shift();)(It=z(this,D))==null||It.call(this,...yt)}return this}pop(){var g;try{for(;z(this,$);){let v=z(this,E)[z(this,R)];if(Et(this,T,Ji).call(this,!0),Et(this,T,$t).call(this,v)){if(v.__staleWhileFetching)return v.__staleWhileFetching}else if(v!==void 0)return v}}finally{if(z(this,G)&&z(this,X)){let v,k=z(this,X);for(;v=k==null?void 0:k.shift();)(g=z(this,D))==null||g.call(this,...v)}}}has(g,v={}){let{updateAgeOnHas:k=this.updateAgeOnHas,status:M}=v,W=z(this,B).get(g);if(W!==void 0){let J=z(this,E)[W];if(Et(this,T,$t).call(this,J)&&J.__staleWhileFetching===void 0)return!1;if(!z(this,ut).call(this,W))return k&&z(this,tt).call(this,W),M&&(M.has="hit",z(this,it).call(this,M,W)),!0;M&&(M.has="stale",z(this,it).call(this,M,W))}else M&&(M.has="miss");return!1}peek(g,v={}){let{allowStale:k=this.allowStale}=v,M=z(this,B).get(g);if(M!==void 0&&(k||!z(this,ut).call(this,M))){let W=z(this,E)[M];return Et(this,T,$t).call(this,W)?W.__staleWhileFetching:W}}async fetch(g,v={}){let{allowStale:k=this.allowStale,updateAgeOnGet:M=this.updateAgeOnGet,noDeleteOnStaleGet:W=this.noDeleteOnStaleGet,ttl:J=this.ttl,noDisposeOnSet:at=this.noDisposeOnSet,size:ot=0,sizeCalculation:vt=this.sizeCalculation,noUpdateTTL:bt=this.noUpdateTTL,noDeleteOnFetchRejection:wt=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:Ot=this.allowStaleOnFetchRejection,ignoreFetchAbort:kt=this.ignoreFetchAbort,allowStaleOnFetchAbort:Mt=this.allowStaleOnFetchAbort,context:_t,forceRefresh:It=!1,status:yt,signal:xt}=v;if(!z(this,Q))return yt&&(yt.fetch="get"),this.get(g,{allowStale:k,updateAgeOnGet:M,noDeleteOnStaleGet:W,status:yt});let vr={allowStale:k,updateAgeOnGet:M,noDeleteOnStaleGet:W,ttl:J,noDisposeOnSet:at,size:ot,sizeCalculation:vt,noUpdateTTL:bt,noDeleteOnFetchRejection:wt,allowStaleOnFetchRejection:Ot,allowStaleOnFetchAbort:Mt,ignoreFetchAbort:kt,status:yt,signal:xt},Ht=z(this,B).get(g);if(Ht===void 0){yt&&(yt.fetch="miss");let Jt=Et(this,T,Xi).call(this,g,Ht,vr,_t);return Jt.__returned=Jt}{let Jt=z(this,E)[Ht];if(Et(this,T,$t).call(this,Jt)){let Kl=k&&Jt.__staleWhileFetching!==void 0;return yt&&(yt.fetch="inflight",Kl&&(yt.returnedStale=!0)),Kl?Jt.__staleWhileFetching:Jt.__returned=Jt}let Ee=z(this,ut).call(this,Ht);if(!It&&!Ee)return yt&&(yt.fetch="hit"),Et(this,T,Qn).call(this,Ht),M&&z(this,tt).call(this,Ht),yt&&z(this,it).call(this,yt,Ht),Jt;let De=Et(this,T,Xi).call(this,g,Ht,vr,_t),Ye=De.__staleWhileFetching!==void 0&&k;return yt&&(yt.fetch=Ee?"stale":"refresh",Ye&&Ee&&(yt.returnedStale=!0)),Ye?De.__staleWhileFetching:De.__returned=De}}get(g,v={}){let{allowStale:k=this.allowStale,updateAgeOnGet:M=this.updateAgeOnGet,noDeleteOnStaleGet:W=this.noDeleteOnStaleGet,status:J}=v,at=z(this,B).get(g);if(at!==void 0){let ot=z(this,E)[at],vt=Et(this,T,$t).call(this,ot);return J&&z(this,it).call(this,J,at),z(this,ut).call(this,at)?(J&&(J.get="stale"),vt?(J&&k&&ot.__staleWhileFetching!==void 0&&(J.returnedStale=!0),k?ot.__staleWhileFetching:void 0):(W||this.delete(g),J&&k&&(J.returnedStale=!0),k?ot:void 0)):(J&&(J.get="hit"),vt?ot.__staleWhileFetching:(Et(this,T,Qn).call(this,at),M&&z(this,tt).call(this,at),ot))}J&&(J.get="miss")}delete(g){var k,M,W,J;let v=!1;if(z(this,$)!==0){let at=z(this,B).get(g);if(at!==void 0)if(v=!0,z(this,$)===1)this.clear();else{z(this,H).call(this,at);let ot=z(this,E)[at];Et(this,T,$t).call(this,ot)?ot.__abortController.abort(new Error("deleted")):(z(this,nt)||z(this,G))&&(z(this,nt)&&((k=z(this,U))==null||k.call(this,ot,g,"delete")),z(this,G)&&((M=z(this,X))==null||M.push([ot,g,"delete"]))),z(this,B).delete(g),z(this,I)[at]=void 0,z(this,E)[at]=void 0,at===z(this,et)?St(this,et,z(this,P)[at]):at===z(this,R)?St(this,R,z(this,w)[at]):(z(this,w)[z(this,P)[at]]=z(this,w)[at],z(this,P)[z(this,w)[at]]=z(this,P)[at]),Ii(this,$)._--,z(this,st).push(at)}}if(z(this,G)&&((W=z(this,X))!=null&&W.length)){let at,ot=z(this,X);for(;at=ot==null?void 0:ot.shift();)(J=z(this,D))==null||J.call(this,...at)}return v}clear(){var g,v,k;for(let M of Et(this,T,Tr).call(this,{allowStale:!0})){let W=z(this,E)[M];if(Et(this,T,$t).call(this,W))W.__abortController.abort(new Error("deleted"));else{let J=z(this,I)[M];z(this,nt)&&((g=z(this,U))==null||g.call(this,W,J,"delete")),z(this,G)&&((v=z(this,X))==null||v.push([W,J,"delete"]))}}if(z(this,B).clear(),z(this,E).fill(void 0),z(this,I).fill(void 0),z(this,V)&&z(this,N)&&(z(this,V).fill(0),z(this,N).fill(0)),z(this,j)&&z(this,j).fill(0),St(this,R,0),St(this,et,0),z(this,st).length=0,St(this,Y,0),St(this,$,0),z(this,G)&&z(this,X)){let M,W=z(this,X);for(;M=W==null?void 0:W.shift();)(k=z(this,D))==null||k.call(this,...M)}}},_=new WeakMap,S=new WeakMap,U=new WeakMap,D=new WeakMap,K=new WeakMap,$=new WeakMap,Y=new WeakMap,B=new WeakMap,I=new WeakMap,E=new WeakMap,w=new WeakMap,P=new WeakMap,R=new WeakMap,et=new WeakMap,st=new WeakMap,X=new WeakMap,j=new WeakMap,N=new WeakMap,V=new WeakMap,nt=new WeakMap,Q=new WeakMap,G=new WeakMap,T=new WeakSet,qa=function(){let g=new u(z(this,_)),v=new u(z(this,_));St(this,V,g),St(this,N,v),St(this,lt,(W,J,at=e.now())=>{if(v[W]=J!==0?at:0,g[W]=J,J!==0&&this.ttlAutopurge){let ot=setTimeout(()=>{z(this,ut).call(this,W)&&this.delete(z(this,I)[W])},J+1);ot.unref&&ot.unref()}}),St(this,tt,W=>{v[W]=g[W]!==0?e.now():0}),St(this,it,(W,J)=>{if(g[J]){let at=g[J],ot=v[J];W.ttl=at,W.start=ot,W.now=k||M();let vt=W.now-ot;W.remainingTTL=at-vt}});let k=0,M=()=>{let W=e.now();if(this.ttlResolution>0){k=W;let J=setTimeout(()=>k=0,this.ttlResolution);J.unref&&J.unref()}return W};this.getRemainingTTL=W=>{let J=z(this,B).get(W);if(J===void 0)return 0;let at=g[J],ot=v[J];return at===0||ot===0?1/0:at-((k||M())-ot)},St(this,ut,W=>g[W]!==0&&v[W]!==0&&(k||M())-v[W]>g[W])},tt=new WeakMap,it=new WeakMap,lt=new WeakMap,ut=new WeakMap,xp=function(){let g=new u(z(this,_));St(this,Y,0),St(this,j,g),St(this,H,v=>{St(this,Y,z(this,Y)-g[v]),g[v]=0}),St(this,Z,(v,k,M,W)=>{if(Et(this,T,$t).call(this,k))return 0;if(!i(M)){if(!W)throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");if(typeof W!="function")throw new TypeError("sizeCalculation must be a function");if(M=W(k,v),!i(M))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return M}),St(this,rt,(v,k,M)=>{if(g[v]=k,z(this,S)){let W=z(this,S)-g[v];for(;z(this,Y)>W;)Et(this,T,Ji).call(this,!0)}St(this,Y,z(this,Y)+g[v]),M&&(M.entrySize=k,M.totalCalculatedSize=z(this,Y))})},H=new WeakMap,rt=new WeakMap,Z=new WeakMap,Ir=function*({allowStale:g=this.allowStale}={}){if(z(this,$))for(let v=z(this,et);Et(this,T,Ha).call(this,v)&&((g||!z(this,ut).call(this,v))&&(yield v),v!==z(this,R));)v=z(this,P)[v]},Tr=function*({allowStale:g=this.allowStale}={}){if(z(this,$))for(let v=z(this,R);Et(this,T,Ha).call(this,v)&&((g||!z(this,ut).call(this,v))&&(yield v),v!==z(this,et));)v=z(this,w)[v]},Ha=function(g){return g!==void 0&&z(this,B).get(z(this,I)[g])===g},Ji=function(g){var W,J;let v=z(this,R),k=z(this,I)[v],M=z(this,E)[v];return z(this,Q)&&Et(this,T,$t).call(this,M)?M.__abortController.abort(new Error("evicted")):(z(this,nt)||z(this,G))&&(z(this,nt)&&((W=z(this,U))==null||W.call(this,M,k,"evict")),z(this,G)&&((J=z(this,X))==null||J.push([M,k,"evict"]))),z(this,H).call(this,v),g&&(z(this,I)[v]=void 0,z(this,E)[v]=void 0,z(this,st).push(v)),z(this,$)===1?(St(this,R,St(this,et,0)),z(this,st).length=0):St(this,R,z(this,w)[v]),z(this,B).delete(k),Ii(this,$)._--,v},Xi=function(g,v,k,M){let W=v===void 0?void 0:z(this,E)[v];if(Et(this,T,$t).call(this,W))return W;let J=new o,{signal:at}=k;at==null||at.addEventListener("abort",()=>J.abort(at.reason),{signal:J.signal});let ot={signal:J.signal,options:k,context:M},vt=(kt,Mt=!1)=>{let{aborted:_t}=J.signal,It=k.ignoreFetchAbort&&kt!==void 0;if(k.status&&(_t&&!Mt?(k.status.fetchAborted=!0,k.status.fetchError=J.signal.reason,It&&(k.status.fetchAbortIgnored=!0)):k.status.fetchResolved=!0),_t&&!It&&!Mt)return bt(J.signal.reason);let yt=wt;return z(this,E)[v]===wt&&(kt===void 0?yt.__staleWhileFetching?z(this,E)[v]=yt.__staleWhileFetching:this.delete(g):(k.status&&(k.status.fetchUpdated=!0),this.set(g,kt,ot.options))),kt},bt=kt=>{let{aborted:Mt}=J.signal,_t=Mt&&k.allowStaleOnFetchAbort,It=_t||k.allowStaleOnFetchRejection,yt=It||k.noDeleteOnFetchRejection,xt=wt;if(z(this,E)[v]===wt&&(yt&&xt.__staleWhileFetching!==void 0?_t||(z(this,E)[v]=xt.__staleWhileFetching):this.delete(g)),It)return k.status&&xt.__staleWhileFetching!==void 0&&(k.status.returnedStale=!0),xt.__staleWhileFetching;if(xt.__returned===xt)throw kt};k.status&&(k.status.fetchDispatched=!0);let wt=new Promise((kt,Mt)=>{var It;let _t=(It=z(this,K))==null?void 0:It.call(this,g,W,ot);_t&&_t instanceof Promise&&_t.then(yt=>kt(yt===void 0?void 0:yt),Mt),J.signal.addEventListener("abort",()=>{(!k.ignoreFetchAbort||k.allowStaleOnFetchAbort)&&(kt(void 0),k.allowStaleOnFetchAbort&&(kt=yt=>vt(yt,!0)))})}).then(vt,kt=>(k.status&&(k.status.fetchRejected=!0,k.status.fetchError=kt),bt(kt))),Ot=Object.assign(wt,{__abortController:J,__staleWhileFetching:W,__returned:void 0});return v===void 0?(this.set(g,Ot,{...ot.options,status:void 0}),v=z(this,B).get(g)):z(this,E)[v]=Ot,Ot},$t=function(g){if(!z(this,Q))return!1;let v=g;return!!v&&v instanceof Promise&&v.hasOwnProperty("__staleWhileFetching")&&v.__abortController instanceof o},za=function(g,v){z(this,P)[v]=g,z(this,w)[g]=v},Qn=function(g){g!==z(this,et)&&(g===z(this,R)?St(this,R,z(this,w)[g]):Et(this,T,za).call(this,z(this,P)[g],z(this,w)[g]),Et(this,T,za).call(this,z(this,et),g),St(this,et,g))},C);t.LRUCache=d}),yr=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.ContainerIterator=t.Container=t.Base=void 0,t.ContainerIterator=class{constructor(r=0){this.iteratorType=r}equals(r){return this.o===r.o}};var e=class{constructor(){this.i=0}get length(){return this.i}size(){return this.i}empty(){return this.i===0}};t.Base=e,t.Container=class extends e{}}),D0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yr(),r=class extends e.Base{constructor(n=[]){super(),this.S=[];let l=this;n.forEach(function(o){l.push(o)})}clear(){this.i=0,this.S=[]}push(n){return this.S.push(n),this.i+=1,this.i}pop(){if(this.i!==0)return this.i-=1,this.S.pop()}top(){return this.S[this.i-1]}};t.default=r}),F0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yr(),r=class extends e.Base{constructor(n=[]){super(),this.j=0,this.q=[];let l=this;n.forEach(function(o){l.push(o)})}clear(){this.q=[],this.i=this.j=0}push(n){let l=this.q.length;if(this.j/l>.5&&this.j+this.i>=l&&l>4096){let o=this.i;for(let s=0;s{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yr(),r=class extends e.Base{constructor(n=[],l=function(s,i){return s>i?-1:s>1;for(let i=this.i-1>>1;i>=0;--i)this.k(i,s)}m(n){let l=this.C[n];for(;n>0;){let o=n-1>>1,s=this.C[o];if(this.v(s,l)<=0)break;this.C[n]=s,n=o}this.C[n]=l}k(n,l){let o=this.C[n];for(;n0&&(s=i,a=this.C[i]),this.v(a,o)>=0)break;this.C[n]=a,n=s}this.C[n]=o}clear(){this.i=0,this.C.length=0}push(n){this.C.push(n),this.m(this.i),this.i+=1}pop(){if(this.i===0)return;let n=this.C[0],l=this.C.pop();return this.i-=1,this.i&&(this.C[0]=l,this.k(0,this.i>>1)),n}top(){return this.C[0]}find(n){return this.C.indexOf(n)>=0}remove(n){let l=this.C.indexOf(n);return!(l<0)&&(l===0?this.pop():l===this.i-1?(this.C.pop(),this.i-=1):(this.C.splice(l,1,this.C.pop()),this.i-=1,this.m(l),this.k(l,this.i>>1)),!0)}updateItem(n){let l=this.C.indexOf(n);return!(l<0)&&(this.m(l),this.k(l,this.i>>1),!0)}toArray(){return[...this.C]}};t.default=r}),Dl=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yr(),r=class extends e.Container{};t.default=r}),br=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.throwIteratorAccessError=function(){throw new RangeError("Iterator access denied!")}}),Cp=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.RandomIterator=void 0;var e=yr(),r=br(),n=class extends e.ContainerIterator{constructor(l,o){super(o),this.o=l,this.iteratorType===0?(this.pre=function(){return this.o===0&&(0,r.throwIteratorAccessError)(),this.o-=1,this},this.next=function(){return this.o===this.container.size()&&(0,r.throwIteratorAccessError)(),this.o+=1,this}):(this.pre=function(){return this.o===this.container.size()-1&&(0,r.throwIteratorAccessError)(),this.o+=1,this},this.next=function(){return this.o===-1&&(0,r.throwIteratorAccessError)(),this.o-=1,this})}get pointer(){return this.container.getElementByPos(this.o)}set pointer(l){this.container.setElementByPos(this.o,l)}};t.RandomIterator=n}),$0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e,r=(e=Dl())&&e.t?e:{default:e},n=Cp(),l=class Rp extends n.RandomIterator{constructor(i,a,u){super(i,u),this.container=a}copy(){return new Rp(this.o,this.container,this.iteratorType)}},o=class extends r.default{constructor(s=[],i=!0){if(super(),Array.isArray(s))this.J=i?[...s]:s,this.i=s.length;else{this.J=[];let a=this;s.forEach(function(u){a.pushBack(u)})}}clear(){this.i=0,this.J.length=0}begin(){return new l(0,this)}end(){return new l(this.i,this)}rBegin(){return new l(this.i-1,this,1)}rEnd(){return new l(-1,this,1)}front(){return this.J[0]}back(){return this.J[this.i-1]}getElementByPos(s){if(s<0||s>this.i-1)throw new RangeError;return this.J[s]}eraseElementByPos(s){if(s<0||s>this.i-1)throw new RangeError;return this.J.splice(s,1),this.i-=1,this.i}eraseElementByValue(s){let i=0;for(let a=0;athis.i-1)throw new RangeError;this.J[s]=i}insert(s,i,a=1){if(s<0||s>this.i)throw new RangeError;return this.J.splice(s,0,...new Array(a).fill(i)),this.i+=a,this.i}find(s){for(let i=0;i{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e,r=(e=Dl())&&e.t?e:{default:e},n=yr(),l=br(),o=class Pp extends n.ContainerIterator{constructor(a,u,c,d){super(d),this.o=a,this.h=u,this.container=c,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.L,this})}get pointer(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o.l}set pointer(a){this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o.l=a}copy(){return new Pp(this.o,this.h,this.container,this.iteratorType)}},s=class extends r.default{constructor(i=[]){super(),this.h={},this.p=this._=this.h.L=this.h.B=this.h;let a=this;i.forEach(function(u){a.pushBack(u)})}V(i){let{L:a,B:u}=i;a.B=u,u.L=a,i===this.p&&(this.p=u),i===this._&&(this._=a),this.i-=1}G(i,a){let u=a.B,c={l:i,L:a,B:u};a.B=c,u.L=c,a===this.h&&(this.p=c),u===this.h&&(this._=c),this.i+=1}clear(){this.i=0,this.p=this._=this.h.L=this.h.B=this.h}begin(){return new o(this.p,this.h,this)}end(){return new o(this.h,this.h,this)}rBegin(){return new o(this._,this.h,this,1)}rEnd(){return new o(this.h,this.h,this,1)}front(){return this.p.l}back(){return this._.l}getElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;let a=this.p;for(;i--;)a=a.B;return a.l}eraseElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;let a=this.p;for(;i--;)a=a.B;return this.V(a),this.i}eraseElementByValue(i){let a=this.p;for(;a!==this.h;)a.l===i&&this.V(a),a=a.B;return this.i}eraseElementByIterator(i){let a=i.o;return a===this.h&&(0,l.throwIteratorAccessError)(),i=i.next(),this.V(a),i}pushBack(i){return this.G(i,this._),this.i}popBack(){if(this.i===0)return;let i=this._.l;return this.V(this._),i}pushFront(i){return this.G(i,this.h),this.i}popFront(){if(this.i===0)return;let i=this.p.l;return this.V(this.p),i}setElementByPos(i,a){if(i<0||i>this.i-1)throw new RangeError;let u=this.p;for(;i--;)u=u.B;u.l=a}insert(i,a,u=1){if(i<0||i>this.i)throw new RangeError;if(u<=0)return this.i;if(i===0)for(;u--;)this.pushFront(a);else if(i===this.i)for(;u--;)this.pushBack(a);else{let c=this.p;for(let f=1;f{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e,r=(e=Dl())&&e.t?e:{default:e},n=Cp(),l=class Bp extends n.RandomIterator{constructor(i,a,u){super(i,u),this.container=a}copy(){return new Bp(this.o,this.container,this.iteratorType)}},o=class extends r.default{constructor(s=[],i=4096){super(),this.j=0,this.D=0,this.R=0,this.N=0,this.P=0,this.A=[];let a=(()=>{if(typeof s.length=="number")return s.length;if(typeof s.size=="number")return s.size;if(typeof s.size=="function")return s.size();throw new TypeError("Cannot get the length or size of the container")})();this.F=i,this.P=Math.max(Math.ceil(a/this.F),1);for(let d=0;d>1)-(u>>1),this.D=this.N=this.F-a%this.F>>1;let c=this;s.forEach(function(d){c.pushBack(d)})}T(){let s=[],i=Math.max(this.P>>1,1);for(let a=0;a>1}begin(){return new l(0,this)}end(){return new l(this.i,this)}rBegin(){return new l(this.i-1,this,1)}rEnd(){return new l(-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(s){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,s}pushFront(s){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]=s,this.i}popFront(){if(this.i===0)return;let s=this.A[this.j][this.D];return this.i!==1&&(this.Dthis.i-1)throw new RangeError;let{curNodeBucketIndex:i,curNodePointerIndex:a}=this.O(s);return this.A[i][a]}setElementByPos(s,i){if(s<0||s>this.i-1)throw new RangeError;let{curNodeBucketIndex:a,curNodePointerIndex:u}=this.O(s);this.A[a][u]=i}insert(s,i,a=1){if(s<0||s>this.i)throw new RangeError;if(s===0)for(;a--;)this.pushFront(i);else if(s===this.i)for(;a--;)this.pushBack(i);else{let u=[];for(let c=s;cthis.i-1)throw new RangeError;if(s===0)this.popFront();else if(s===this.i-1)this.popBack();else{let i=[];for(let u=s+1;us;)this.popBack();return this.i}sort(s){let i=[];for(let a=0;a{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.TreeNodeEnableIndex=t.TreeNode=void 0;var e=class{constructor(r,n){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=r,this.l=n}L(){let r=this;if(r.ee===1&&r.tt.tt===r)r=r.W;else if(r.U)for(r=r.U;r.W;)r=r.W;else{let n=r.tt;for(;n.U===r;)r=n,n=r.tt;r=n}return r}B(){let r=this;if(r.W){for(r=r.W;r.U;)r=r.U;return r}{let n=r.tt;for(;n.W===r;)r=n,n=r.tt;return r.W!==n?n:r}}te(){let r=this.tt,n=this.W,l=n.U;return r.tt===this?r.tt=n:r.U===this?r.U=n:r.W=n,n.tt=r,n.U=this,this.tt=n,this.W=l,l&&(l.tt=this),n}se(){let r=this.tt,n=this.U,l=n.W;return r.tt===this?r.tt=n:r.U===this?r.U=n:r.W=n,n.tt=r,n.W=this,this.tt=n,this.U=l,l&&(l.tt=this),n}};t.TreeNode=e,t.TreeNodeEnableIndex=class extends e{constructor(){super(...arguments),this.rt=1}te(){let r=super.te();return this.ie(),r.ie(),r}se(){let r=super.se();return this.ie(),r.ie(),r}ie(){this.rt=1,this.U&&(this.rt+=this.U.rt),this.W&&(this.rt+=this.W.rt)}}}),Mp=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=H0(),r=yr(),n=br(),l=class extends r.Container{constructor(s=function(a,u){return au?1:0},i=!1){super(),this.Y=void 0,this.v=s,i?(this.re=e.TreeNodeEnableIndex,this.M=function(a,u,c){let d=this.ne(a,u,c);if(d){let f=d.tt;for(;f!==this.h;)f.rt+=1,f=f.tt;let m=this.he(d);if(m){let{parentNode:b,grandParent:_,curNode:S}=m;b.ie(),_.ie(),S.ie()}}return this.i},this.V=function(a){let u=this.fe(a);for(;u!==this.h;)u.rt-=1,u=u.tt}):(this.re=e.TreeNode,this.M=function(a,u,c){let d=this.ne(a,u,c);return d&&this.he(d),this.i},this.V=this.fe),this.h=new this.re}X(s,i){let a=this.h;for(;s;){let u=this.v(s.u,i);if(u<0)s=s.W;else{if(!(u>0))return s;a=s,s=s.U}}return a}Z(s,i){let a=this.h;for(;s;)this.v(s.u,i)<=0?s=s.W:(a=s,s=s.U);return a}$(s,i){let a=this.h;for(;s;){let u=this.v(s.u,i);if(u<0)a=s,s=s.W;else{if(!(u>0))return s;s=s.U}}return a}rr(s,i){let a=this.h;for(;s;)this.v(s.u,i)<0?(a=s,s=s.W):s=s.U;return a}ue(s){for(;;){let i=s.tt;if(i===this.h)return;if(s.ee===1)return void(s.ee=0);if(s===i.U){let a=i.W;if(a.ee===1)a.ee=0,i.ee=1,i===this.Y?this.Y=i.te():i.te();else{if(a.W&&a.W.ee===1)return a.ee=i.ee,i.ee=0,a.W.ee=0,void(i===this.Y?this.Y=i.te():i.te());a.U&&a.U.ee===1?(a.ee=1,a.U.ee=0,a.se()):(a.ee=1,s=i)}}else{let a=i.U;if(a.ee===1)a.ee=0,i.ee=1,i===this.Y?this.Y=i.se():i.se();else{if(a.U&&a.U.ee===1)return a.ee=i.ee,i.ee=0,a.U.ee=0,void(i===this.Y?this.Y=i.se():i.se());a.W&&a.W.ee===1?(a.ee=1,a.W.ee=0,a.te()):(a.ee=1,s=i)}}}}fe(s){if(this.i===1)return this.clear(),this.h;let i=s;for(;i.U||i.W;){if(i.W)for(i=i.W;i.U;)i=i.U;else i=i.U;[s.u,i.u]=[i.u,s.u],[s.l,i.l]=[i.l,s.l],s=i}this.h.U===i?this.h.U=i.tt:this.h.W===i&&(this.h.W=i.tt),this.ue(i);let a=i.tt;return i===a.U?a.U=void 0:a.W=void 0,this.i-=1,this.Y.ee=0,a}oe(s,i){return s!==void 0&&(!(!this.oe(s.U,i)&&!i(s))||this.oe(s.W,i))}he(s){for(;;){let i=s.tt;if(i.ee===0)return;let a=i.tt;if(i===a.U){let u=a.W;if(u&&u.ee===1){if(u.ee=i.ee=0,a===this.Y)return;a.ee=1,s=a;continue}if(s===i.W){if(s.ee=0,s.U&&(s.U.tt=i),s.W&&(s.W.tt=a),i.W=s.U,a.U=s.W,s.U=i,s.W=a,a===this.Y)this.Y=s,this.h.tt=s;else{let c=a.tt;c.U===a?c.U=s:c.W=s}return s.tt=a.tt,i.tt=s,a.tt=s,a.ee=1,{parentNode:i,grandParent:a,curNode:s}}i.ee=0,a===this.Y?this.Y=a.se():a.se(),a.ee=1}else{let u=a.U;if(u&&u.ee===1){if(u.ee=i.ee=0,a===this.Y)return;a.ee=1,s=a;continue}if(s===i.U){if(s.ee=0,s.U&&(s.U.tt=a),s.W&&(s.W.tt=i),a.W=s.U,i.U=s.W,s.U=a,s.W=i,a===this.Y)this.Y=s,this.h.tt=s;else{let c=a.tt;c.U===a?c.U=s:c.W=s}return s.tt=a.tt,i.tt=s,a.tt=s,a.ee=1,{parentNode:i,grandParent:a,curNode:s}}i.ee=0,a===this.Y?this.Y=a.te():a.te(),a.ee=1}return}}ne(s,i,a){if(this.Y===void 0)return this.i+=1,this.Y=new this.re(s,i),this.Y.ee=0,this.Y.tt=this.h,this.h.tt=this.Y,this.h.U=this.Y,void(this.h.W=this.Y);let u,c=this.h.U,d=this.v(c.u,s);if(d!==0){if(d>0)c.U=new this.re(s,i),c.U.tt=c,u=c.U,this.h.U=u;else{let f=this.h.W,m=this.v(f.u,s);if(m===0)return void(f.l=i);if(m<0)f.W=new this.re(s,i),f.W.tt=f,u=f.W,this.h.W=u;else{if(a!==void 0){let b=a.o;if(b!==this.h){let _=this.v(b.u,s);if(_===0)return void(b.l=i);if(_>0){let S=b.L(),U=this.v(S.u,s);if(U===0)return void(S.l=i);U<0&&(u=new this.re(s,i),S.W===void 0?(S.W=u,u.tt=S):(b.U=u,u.tt=b))}}}if(u===void 0)for(u=this.Y;;){let b=this.v(u.u,s);if(b>0){if(u.U===void 0){u.U=new this.re(s,i),u.U.tt=u,u=u.U;break}u=u.U}else{if(!(b<0))return void(u.l=i);if(u.W===void 0){u.W=new this.re(s,i),u.W.tt=u,u=u.W;break}u=u.W}}}}return this.i+=1,u}c.l=i}I(s,i){for(;s;){let a=this.v(s.u,i);if(a<0)s=s.W;else{if(!(a>0))return s;s=s.U}}return s||this.h}clear(){this.i=0,this.Y=void 0,this.h.tt=void 0,this.h.U=this.h.W=void 0}updateKeyByIterator(s,i){let a=s.o;if(a===this.h&&(0,n.throwIteratorAccessError)(),this.i===1)return a.u=i,!0;if(a===this.h.U)return this.v(a.B().u,i)>0&&(a.u=i,!0);if(a===this.h.W)return this.v(a.L().u,i)<0&&(a.u=i,!0);let u=a.L().u;if(this.v(u,i)>=0)return!1;let c=a.B().u;return!(this.v(c,i)<=0)&&(a.u=i,!0)}eraseElementByPos(s){if(s<0||s>this.i-1)throw new RangeError;let i=0,a=this;return this.oe(this.Y,function(u){return s===i?(a.V(u),!0):(i+=1,!1)}),this.i}eraseElementByKey(s){if(this.i===0)return!1;let i=this.I(this.Y,s);return i!==this.h&&(this.V(i),!0)}eraseElementByIterator(s){let i=s.o;i===this.h&&(0,n.throwIteratorAccessError)();let a=i.W===void 0;return s.iteratorType===0?a&&s.next():(!a||i.U===void 0)&&s.next(),this.V(i),s}forEach(s){let i=0;for(let a of this)s(a,i++,this)}getElementByPos(s){if(s<0||s>this.i-1)throw new RangeError;let i,a=0;for(let u of this){if(a===s){i=u;break}a+=1}return i}getHeight(){if(this.i===0)return 0;let s=function(i){return i?Math.max(s(i.U),s(i.W))+1:0};return s(this.Y)}},o=l;t.default=o}),Lp=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=yr(),r=br(),n=class extends e.ContainerIterator{constructor(l,o,s){super(s),this.o=l,this.h=o,this.iteratorType===0?(this.pre=function(){return this.o===this.h.U&&(0,r.throwIteratorAccessError)(),this.o=this.o.L(),this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.B(),this}):(this.pre=function(){return this.o===this.h.W&&(0,r.throwIteratorAccessError)(),this.o=this.o.B(),this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.L(),this})}get index(){let l=this.o,o=this.h.tt;if(l===this.h)return o?o.rt-1:0;let s=0;for(l.U&&(s+=l.U.rt);l!==o;){let i=l.tt;l===i.W&&(s+=1,i.U&&(s+=i.U.rt)),l=i}return s}};t.default=n}),z0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=l(Mp()),r=l(Lp()),n=br();function l(i){return i&&i.t?i:{default:i}}var o=class jp extends r.default{constructor(a,u,c,d){super(a,u,d),this.container=c}get pointer(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o.u}copy(){return new jp(this.o,this.h,this.container,this.iteratorType)}},s=class extends e.default{constructor(i=[],a,u){super(a,u);let c=this;i.forEach(function(d){c.insert(d)})}*K(i){i!==void 0&&(yield*this.K(i.U),yield i.u,yield*this.K(i.W))}begin(){return new o(this.h.U||this.h,this.h,this)}end(){return new o(this.h,this.h,this)}rBegin(){return new o(this.h.W||this.h,this.h,this,1)}rEnd(){return new o(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(i,a){return this.M(i,void 0,a)}find(i){let a=this.I(this.Y,i);return new o(a,this.h,this)}lowerBound(i){let a=this.X(this.Y,i);return new o(a,this.h,this)}upperBound(i){let a=this.Z(this.Y,i);return new o(a,this.h,this)}reverseLowerBound(i){let a=this.$(this.Y,i);return new o(a,this.h,this)}reverseUpperBound(i){let a=this.rr(this.Y,i);return new o(a,this.h,this)}union(i){let a=this;return i.forEach(function(u){a.insert(u)}),this.i}[Symbol.iterator](){return this.K(this.Y)}};t.default=s}),K0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=l(Mp()),r=l(Lp()),n=br();function l(i){return i&&i.t?i:{default:i}}var o=class Up extends r.default{constructor(a,u,c,d){super(a,u,d),this.container=c}get pointer(){this.o===this.h&&(0,n.throwIteratorAccessError)();let a=this;return new Proxy([],{get:(u,c)=>c==="0"?a.o.u:c==="1"?a.o.l:void 0,set(u,c,d){if(c!=="1")throw new TypeError("props must be 1");return a.o.l=d,!0}})}copy(){return new Up(this.o,this.h,this.container,this.iteratorType)}},s=class extends e.default{constructor(i=[],a,u){super(a,u);let c=this;i.forEach(function(d){c.setElement(d[0],d[1])})}*K(i){i!==void 0&&(yield*this.K(i.U),yield[i.u,i.l],yield*this.K(i.W))}begin(){return new o(this.h.U||this.h,this.h,this)}end(){return new o(this.h,this.h,this)}rBegin(){return new o(this.h.W||this.h,this.h,this,1)}rEnd(){return new o(this.h,this.h,this,1)}front(){if(this.i===0)return;let i=this.h.U;return[i.u,i.l]}back(){if(this.i===0)return;let i=this.h.W;return[i.u,i.l]}lowerBound(i){let a=this.X(this.Y,i);return new o(a,this.h,this)}upperBound(i){let a=this.Z(this.Y,i);return new o(a,this.h,this)}reverseLowerBound(i){let a=this.$(this.Y,i);return new o(a,this.h,this)}reverseUpperBound(i){let a=this.rr(this.Y,i);return new o(a,this.h,this)}setElement(i,a,u){return this.M(i,a,u)}find(i){let a=this.I(this.Y,i);return new o(a,this.h,this)}getElementByKey(i){return this.I(this.Y,i).l}union(i){let a=this;return i.forEach(function(u){a.setElement(u[0],u[1])}),this.i}[Symbol.iterator](){return this.K(this.Y)}};t.default=s}),Np=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=function(e){let r=typeof e;return r==="object"&&e!==null||r==="function"}}),Dp=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.HashContainerIterator=t.HashContainer=void 0;var e,r=yr(),n=(e=Np())&&e.t?e:{default:e},l=br(),o=class extends r.ContainerIterator{constructor(i,a,u){super(u),this.o=i,this.h=a,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,l.throwIteratorAccessError)(),this.o=this.o.L,this})}};t.HashContainerIterator=o;var s=class extends r.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(i){let{L:a,B:u}=i;a.B=u,u.L=a,i===this.p&&(this.p=u),i===this._&&(this._=a),this.i-=1}M(i,a,u){let c;if(u===void 0&&(u=(0,n.default)(i)),u){let d=i[this.HASH_TAG];if(d!==void 0)return this.H[d].l=a,this.i;Object.defineProperty(i,this.HASH_TAG,{value:this.H.length,configurable:!0}),c={u:i,l:a,L:this._,B:this.h},this.H.push(c)}else{let d=this.g[i];if(d)return d.l=a,this.i;c={u:i,l:a,L:this._,B:this.h},this.g[i]=c}return this.i===0?(this.p=c,this.h.B=c):this._.B=c,this._=c,this.h.L=c,++this.i}I(i,a){if(a===void 0&&(a=(0,n.default)(i)),a){let u=i[this.HASH_TAG];return u===void 0?this.h:this.H[u]}return this.g[i]||this.h}clear(){let i=this.HASH_TAG;this.H.forEach(function(a){delete a.u[i]}),this.H=[],this.g={},Object.setPrototypeOf(this.g,null),this.i=0,this.p=this._=this.h.L=this.h.B=this.h}eraseElementByKey(i,a){let u;if(a===void 0&&(a=(0,n.default)(i)),a){let c=i[this.HASH_TAG];if(c===void 0)return!1;delete i[this.HASH_TAG],u=this.H[c],delete this.H[c]}else{if(u=this.g[i],u===void 0)return!1;delete this.g[i]}return this.V(u),!0}eraseElementByIterator(i){let a=i.o;return a===this.h&&(0,l.throwIteratorAccessError)(),this.V(a),i.next()}eraseElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;let a=this.p;for(;i--;)a=a.B;return this.V(a),this.i}};t.HashContainer=s}),G0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e=Dp(),r=br(),n=class Fp extends e.HashContainerIterator{constructor(s,i,a,u){super(s,i,u),this.container=a}get pointer(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o.u}copy(){return new Fp(this.o,this.h,this.container,this.iteratorType)}},l=class extends e.HashContainer{constructor(o=[]){super();let s=this;o.forEach(function(i){s.insert(i)})}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.p.u}back(){return this._.u}insert(o,s){return this.M(o,void 0,s)}getElementByPos(o){if(o<0||o>this.i-1)throw new RangeError;let s=this.p;for(;o--;)s=s.B;return s.u}find(o,s){let i=this.I(o,s);return new n(i,this.h,this)}forEach(o){let s=0,i=this.p;for(;i!==this.h;)o(i.u,s++,this),i=i.B}[Symbol.iterator](){return(function*(){let o=this.p;for(;o!==this.h;)yield o.u,o=o.B}).bind(this)()}};t.default=l}),Q0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),t.default=void 0;var e,r=Dp(),n=(e=Np())&&e.t?e:{default:e},l=br(),o=class Wp extends r.HashContainerIterator{constructor(a,u,c,d){super(a,u,d),this.container=c}get pointer(){this.o===this.h&&(0,l.throwIteratorAccessError)();let a=this;return new Proxy([],{get:(u,c)=>c==="0"?a.o.u:c==="1"?a.o.l:void 0,set(u,c,d){if(c!=="1")throw new TypeError("props must be 1");return a.o.l=d,!0}})}copy(){return new Wp(this.o,this.h,this.container,this.iteratorType)}},s=class extends r.HashContainer{constructor(i=[]){super();let a=this;i.forEach(function(u){a.setElement(u[0],u[1])})}begin(){return new o(this.p,this.h,this)}end(){return new o(this.h,this.h,this)}rBegin(){return new o(this._,this.h,this,1)}rEnd(){return new o(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(i,a,u){return this.M(i,a,u)}getElementByKey(i,a){if(a===void 0&&(a=(0,n.default)(i)),a){let c=i[this.HASH_TAG];return c!==void 0?this.H[c].l:void 0}let u=this.g[i];return u?u.l:void 0}getElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;let a=this.p;for(;i--;)a=a.B;return[a.u,a.l]}find(i,a){let u=this.I(i,a);return new o(u,this.h,this)}forEach(i){let a=0,u=this.p;for(;u!==this.h;)i([u.u,u.l],a++,this),u=u.B}[Symbol.iterator](){return(function*(){let i=this.p;for(;i!==this.h;)yield[i.u,i.l],i=i.B}).bind(this)()}};t.default=s}),Y0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"t",{value:!0}),Object.defineProperty(t,"Deque",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"HashMap",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"HashSet",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"LinkList",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"OrderedMap",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"OrderedSet",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"PriorityQueue",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(t,"Queue",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"Stack",{enumerable:!0,get:function(){return e.default}}),Object.defineProperty(t,"Vector",{enumerable:!0,get:function(){return l.default}});var e=d(D0()),r=d(F0()),n=d(W0()),l=d($0()),o=d(V0()),s=d(q0()),i=d(z0()),a=d(K0()),u=d(G0()),c=d(Q0());function d(f){return f&&f.t?f:{default:f}}}),J0=mt((t,e)=>{ct(),ft(),ht();var r=Y0().OrderedSet,n=pr()("number-allocator:trace"),l=pr()("number-allocator:error");function o(i,a){this.low=i,this.high=a}function s(i,a){if(!(this instanceof s))return new s(i,a);this.min=i,this.max=a,this.ss=new r([],(u,c)=>u.compare(c)),n("Create"),this.clear()}o.prototype.equals=function(i){return this.low===i.low&&this.high===i.high},o.prototype.compare=function(i){return this.lowi)&&(c===i?(this.ss.updateKeyByIterator(u,new o(c+1,d)),n("use():"+i),!0):d===i?(this.ss.updateKeyByIterator(u,new o(c,d-1)),n("use():"+i),!0):(this.ss.updateKeyByIterator(u,new o(i+1,d)),this.ss.insert(new o(c,i-1)),n("use():"+i),!0))}return n("use():failed"),!1},s.prototype.free=function(i){if(ithis.max)return void l("free():"+i+" is out of range");let a=new o(i,i),u=this.ss.upperBound(a);if(u.equals(this.ss.end())){if(u.equals(this.ss.begin()))return void this.ss.insert(a);u.pre();let c=u.pointer.high;u.pointer.high+1===i?this.ss.updateKeyByIterator(u,new o(c,i)):this.ss.insert(a)}else if(u.equals(this.ss.begin()))if(i+1===u.pointer.low){let c=u.pointer.high;this.ss.updateKeyByIterator(u,new o(i,c))}else this.ss.insert(a);else{let c=u.pointer.low,d=u.pointer.high;u.pre();let f=u.pointer.low;u.pointer.high+1===i?i+1===c?(this.ss.eraseElementByIterator(u),this.ss.updateKeyByIterator(u,new o(f,d))):this.ss.updateKeyByIterator(u,new o(f,i)):i+1===c?(this.ss.eraseElementByIterator(u.next()),this.ss.insert(new o(i,d))):this.ss.insert(a)}n("free():"+i)},s.prototype.clear=function(){n("clear()"),this.ss.clear(),this.ss.insert(new o(this.min,this.max))},s.prototype.intervalCount=function(){return this.ss.size()},s.prototype.dump=function(){for(let i of this.ss);},e.exports=s}),$p=mt((t,e)=>{ct(),ft(),ht();var r=J0();e.exports.NumberAllocator=r}),X0=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0});var e=N0(),r=$p();t.default=class{constructor(n){n>0&&(this.aliasToTopic=new e.LRUCache({max:n}),this.topicToAlias={},this.numberAllocator=new r.NumberAllocator(1,n),this.max=n,this.length=0)}put(n,l){if(l===0||l>this.max)return!1;let o=this.aliasToTopic.get(l);return o&&delete this.topicToAlias[o],this.aliasToTopic.set(l,n),this.topicToAlias[n]=l,this.numberAllocator.use(l),this.length=this.aliasToTopic.size,!0}getTopicByAlias(n){return this.aliasToTopic.get(n)}getAliasByTopic(n){let l=this.topicToAlias[n];return typeof l<"u"&&this.aliasToTopic.get(l),l}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){return this.numberAllocator.firstVacant()||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}}}),Z0=mt(t=>{ct(),ft(),ht();var e=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0});var r=Lo(),n=e(X0()),l=Nn();t.default=(o,s)=>{o.log("_handleConnack");let{options:i}=o,a=i.protocolVersion===5?s.reasonCode:s.returnCode;if(clearTimeout(o.connackTimer),delete o.topicAliasSend,s.properties){if(s.properties.topicAliasMaximum){if(s.properties.topicAliasMaximum>65535)return void o.emit("error",new Error("topicAliasMaximum from broker is out of range"));s.properties.topicAliasMaximum>0&&(o.topicAliasSend=new n.default(s.properties.topicAliasMaximum))}s.properties.serverKeepAlive&&i.keepalive&&(i.keepalive=s.properties.serverKeepAlive),s.properties.maximumPacketSize&&(i.properties||(i.properties={}),i.properties.maximumPacketSize=s.properties.maximumPacketSize)}if(a===0)o.reconnecting=!1,o._onConnect(s);else if(a>0){let u=new l.ErrorWithReasonCode(`Connection refused: ${r.ReasonCodes[a]}`,a);o.emit("error",u)}}}),ty=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,r,n)=>{e.log("handling pubrel packet");let l=typeof n<"u"?n:e.noop,{messageId:o}=r,s={cmd:"pubcomp",messageId:o};e.incomingStore.get(r,(i,a)=>{i?e._sendPacket(s,l):(e.emit("message",a.topic,a.payload,a),e.handleMessage(a,u=>{if(u)return l(u);e.incomingStore.del(a,e.noop),e._sendPacket(s,l)}))})}}),ey=mt(t=>{ct(),ft(),ht();var e=t&&t.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(t,"__esModule",{value:!0});var r=e(L0()),n=e(U0()),l=e(Z0()),o=e(Lo()),s=e(ty());t.default=(i,a,u)=>{let{options:c}=i;if(c.protocolVersion===5&&c.properties&&c.properties.maximumPacketSize&&c.properties.maximumPacketSize{ct(),ft(),ht();var e=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0}),t.TypedEventEmitter=void 0;var r=e((Un(),Dt(gn))),n=Nn(),l=class{};t.TypedEventEmitter=l,(0,n.applyMixin)(l,r.default)}),jo=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0}),t.isReactNativeBrowser=t.isWebWorker=void 0;var e,r=()=>{var o,s;return!(typeof self!="object"||(s=(o=self==null?void 0:self.constructor)===null||o===void 0?void 0:o.name)===null||s===void 0||!s.includes("WorkerGlobalScope"))},n=()=>typeof navigator<"u"&&navigator.product==="ReactNative",l=typeof window<"u"&&(typeof navigator<"u"&&((e=navigator.userAgent)===null||e===void 0?void 0:e.toLowerCase().indexOf(" electron/"))>-1&&Nt!=null&&Nt.versions?!Object.prototype.hasOwnProperty.call(Nt.versions,"electron"):typeof window.document<"u")||r()||n();t.isWebWorker=r(),t.isReactNativeBrowser=n(),t.default=l}),ny=mt((t,e)=>{var r,n;ct(),ft(),ht(),r=t,n=function(l){var o,s=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,i=536870912,a=2*i,u=new WeakMap,c=function(f,m){return function(b){var _=m.get(b),S=_===void 0?b.size:_s)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;b.has(S);)S=Math.floor(Math.random()*s);return f(b,S)}}((o=u,function(f,m){return o.set(f,m),m}),u),d=function(f){return function(m){var b=f(m);return m.add(b),b}}(c);l.addUniqueNumber=d,l.generateUniqueNumber=c},typeof t=="object"&&typeof e<"u"?n(t):typeof define=="function"&&define.amd?define(["exports"],n):n((r=typeof globalThis<"u"?globalThis:r||self).fastUniqueNumbers={})}),iy=mt((t,e)=>{var r,n;ct(),ft(),ht(),r=t,n=function(l,o){l.load=function(s){var i=new Map([[0,function(){}]]),a=new Map([[0,function(){}]]),u=new Map,c=new Worker(s);return c.addEventListener("message",function(d){var f=d.data;if(function(w){return w.method!==void 0&&w.method==="call"}(f)){var m=f.params,b=m.timerId,_=m.timerType;if(_==="interval"){var S=i.get(b);if(typeof S=="number"){var U=u.get(S);if(U===void 0||U.timerId!==b||U.timerType!==_)throw new Error("The timer is in an undefined state.")}else{if(!(typeof S<"u"))throw new Error("The timer is in an undefined state.");S()}}else if(_==="timeout"){var D=a.get(b);if(typeof D=="number"){var K=u.get(D);if(K===void 0||K.timerId!==b||K.timerType!==_)throw new Error("The timer is in an undefined state.")}else{if(!(typeof D<"u"))throw new Error("The timer is in an undefined state.");D(),a.delete(b)}}}else{if(!function(w){return w.error===null&&typeof w.id=="number"}(f)){var $=f.error.message;throw new Error($)}var Y=f.id,B=u.get(Y);if(B===void 0)throw new Error("The timer is in an undefined state.");var I=B.timerId,E=B.timerType;u.delete(Y),E==="interval"?i.delete(I):a.delete(I)}}),{clearInterval:function(d){var f=o.generateUniqueNumber(u);u.set(f,{timerId:d,timerType:"interval"}),i.set(d,f),c.postMessage({id:f,method:"clear",params:{timerId:d,timerType:"interval"}})},clearTimeout:function(d){var f=o.generateUniqueNumber(u);u.set(f,{timerId:d,timerType:"timeout"}),a.set(d,f),c.postMessage({id:f,method:"clear",params:{timerId:d,timerType:"timeout"}})},setInterval:function(d){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,m=o.generateUniqueNumber(i);return i.set(m,function(){d(),typeof i.get(m)=="function"&&c.postMessage({id:null,method:"set",params:{delay:f,now:performance.now(),timerId:m,timerType:"interval"}})}),c.postMessage({id:null,method:"set",params:{delay:f,now:performance.now(),timerId:m,timerType:"interval"}}),m},setTimeout:function(d){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,m=o.generateUniqueNumber(a);return a.set(m,d),c.postMessage({id:null,method:"set",params:{delay:f,now:performance.now(),timerId:m,timerType:"timeout"}}),m}}}},typeof t=="object"&&typeof e<"u"?n(t,ny()):typeof define=="function"&&define.amd?define(["exports","fast-unique-numbers"],n):n((r=typeof globalThis<"u"?globalThis:r||self).workerTimersBroker={},r.fastUniqueNumbers)}),oy=mt((t,e)=>{var r,n;ct(),ft(),ht(),r=t,n=function(l,o){var s=function(i,a){var u=null;return function(){if(u!==null)return u;var c=new Blob([a],{type:"application/javascript; charset=utf-8"}),d=URL.createObjectURL(c);return u=i(d),setTimeout(function(){return URL.revokeObjectURL(d)}),u}}(o.load,`(()=>{var e={472:(e,t,r)=>{var o,i;void 0===(i="function"==typeof(o=function(){"use strict";var e=new Map,t=new Map,r=function(t){var r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id "'.concat(t,'".'));clearTimeout(r),e.delete(t)},o=function(e){var r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id "'.concat(e,'".'));clearTimeout(r),t.delete(e)},i=function(e,t){var r,o=performance.now();return{expected:o+(r=e-Math.max(0,o-t)),remainingDelay:r}},n=function e(t,r,o,i){var n=performance.now();n>o?postMessage({id:null,method:"call",params:{timerId:r,timerType:i}}):t.set(r,setTimeout(e,o-n,t,r,o,i))},a=function(t,r,o){var a=i(t,o),s=a.expected,d=a.remainingDelay;e.set(r,setTimeout(n,d,e,r,s,"interval"))},s=function(e,r,o){var a=i(e,o),s=a.expected,d=a.remainingDelay;t.set(r,setTimeout(n,d,t,r,s,"timeout"))};addEventListener("message",(function(e){var t=e.data;try{if("clear"===t.method){var i=t.id,n=t.params,d=n.timerId,c=n.timerType;if("interval"===c)r(d),postMessage({error:null,id:i});else{if("timeout"!==c)throw new Error('The given type "'.concat(c,'" is not supported'));o(d),postMessage({error:null,id:i})}}else{if("set"!==t.method)throw new Error('The given method "'.concat(t.method,'" is not supported'));var u=t.params,l=u.delay,p=u.now,m=u.timerId,v=u.timerType;if("interval"===v)a(l,m,p);else{if("timeout"!==v)throw new Error('The given type "'.concat(v,'" is not supported'));s(l,m,p)}}}catch(e){postMessage({error:{message:e.message},id:t.id,result:null})}}))})?o.call(t,r,t,e):o)||(e.exports=i)}},t={};function r(o){var i=t[o];if(void 0!==i)return i.exports;var n=t[o]={exports:{}};return e[o](n,n.exports,r),n.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";r(472)})()})();`);l.clearInterval=function(i){return s().clearInterval(i)},l.clearTimeout=function(i){return s().clearTimeout(i)},l.setInterval=function(){var i;return(i=s()).setInterval.apply(i,arguments)},l.setTimeout=function(){var i;return(i=s()).setTimeout.apply(i,arguments)}},typeof t=="object"&&typeof e<"u"?n(t,iy()):typeof define=="function"&&define.amd?define(["exports","worker-timers-broker"],n):n((r=typeof globalThis<"u"?globalThis:r||self).workerTimers={},r.workerTimersBroker)}),sy=mt(t=>{ct(),ft(),ht();var e=t&&t.__createBinding||(Object.create?function(a,u,c,d){d===void 0&&(d=c);var f=Object.getOwnPropertyDescriptor(u,c);(!f||("get"in f?!u.__esModule:f.writable||f.configurable))&&(f={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,d,f)}:function(a,u,c,d){d===void 0&&(d=c),a[d]=u[c]}),r=t&&t.__setModuleDefault||(Object.create?function(a,u){Object.defineProperty(a,"default",{enumerable:!0,value:u})}:function(a,u){a.default=u}),n=t&&t.__importStar||function(a){if(a&&a.__esModule)return a;var u={};if(a!=null)for(var c in a)c!=="default"&&Object.prototype.hasOwnProperty.call(a,c)&&e(u,a,c);return r(u,a),u};Object.defineProperty(t,"__esModule",{value:!0});var l=n(jo()),o=oy(),s={set:o.setInterval,clear:o.clearInterval},i={set:(a,u)=>setInterval(a,u),clear:a=>clearInterval(a)};t.default=a=>{switch(a){case"native":return i;case"worker":return s;default:return!l.default||l.isWebWorker||l.isReactNativeBrowser?i:s}}}),Vp=mt(t=>{ct(),ft(),ht();var e=t&&t.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(t,"__esModule",{value:!0});var r=e(sy());t.default=class{get keepaliveTimeoutTimestamp(){return this._keepaliveTimeoutTimestamp}get intervalEvery(){return this._intervalEvery}get keepalive(){return this._keepalive}constructor(n,l){this.destroyed=!1,this.client=n,this.timer=typeof l=="object"&&"set"in l&&"clear"in l?l:(0,r.default)(l),this.setKeepalive(n.options.keepalive)}clear(){this.timerId&&(this.timer.clear(this.timerId),this.timerId=null)}setKeepalive(n){if(n*=1e3,isNaN(n)||n<=0||n>2147483647)throw new Error(`Keepalive value must be an integer between 0 and 2147483647. Provided value is ${n}`);this._keepalive=n,this.reschedule(),this.client.log(`KeepaliveManager: set keepalive to ${n}ms`)}destroy(){this.clear(),this.destroyed=!0}reschedule(){if(this.destroyed)return;this.clear(),this.counter=0;let n=Math.ceil(1.5*this._keepalive);this._keepaliveTimeoutTimestamp=Date.now()+n,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)}}}),Ka=mt(t=>{ct(),ft(),ht();var e=t&&t.__createBinding||(Object.create?function(Y,B,I,E){E===void 0&&(E=I);var w=Object.getOwnPropertyDescriptor(B,I);(!w||("get"in w?!B.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return B[I]}}),Object.defineProperty(Y,E,w)}:function(Y,B,I,E){E===void 0&&(E=I),Y[E]=B[I]}),r=t&&t.__setModuleDefault||(Object.create?function(Y,B){Object.defineProperty(Y,"default",{enumerable:!0,value:B})}:function(Y,B){Y.default=B}),n=t&&t.__importStar||function(Y){if(Y&&Y.__esModule)return Y;var B={};if(Y!=null)for(var I in Y)I!=="default"&&Object.prototype.hasOwnProperty.call(Y,I)&&e(B,Y,I);return r(B,Y),B},l=t&&t.__importDefault||function(Y){return Y&&Y.__esModule?Y:{default:Y}};Object.defineProperty(t,"__esModule",{value:!0});var o=l(Ym()),s=l(R0()),i=l(Ip()),a=mn(),u=l(B0()),c=n(M0()),d=l(pr()),f=l(Tp()),m=l(ey()),b=Nn(),_=ry(),S=l(Vp()),U=n(jo()),D=globalThis.setImmediate||((...Y)=>{let B=Y.shift();(0,b.nextTick)(()=>{B(...Y)})}),K={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:3e4,clean:!0,resubscribe:!0,writeCache:!0,timerVariant:"auto"},$=class Ga extends _.TypedEventEmitter{static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}constructor(B,I){super(),this.options=I||{};for(let E in K)typeof this.options[E]>"u"?this.options[E]=K[E]:this.options[E]=I[E];this.log=this.options.log||(0,d.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: version:",Ga.VERSION),U.isWebWorker?this.log("MqttClient :: environment","webworker"):this.log("MqttClient :: environment",U.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:Ga.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=I.protocolVersion===5&&I.customHandleAcks?I.customHandleAcks:(...E)=>{E[3](null,0)},this.options.writeCache||(s.default.writeToStream.cacheNumbers=!1),this.streamBuilder=B,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new i.default:this.options.messageIdProvider,this.outgoingStore=I.outgoingStore||new f.default,this.incomingStore=I.incomingStore||new f.default,this.queueQoSZero=I.queueQoSZero===void 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 o.default(I.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:E}=this,w=()=>{let P=E.shift();this.log("deliver :: entry %o",P);let R=null;if(!P)return void this._resubscribe();R=P.packet,this.log("deliver :: call _sendPacket for %o",R);let et=!0;R.messageId&&R.messageId!==0&&(this.messageIdProvider.register(R.messageId)||(et=!1)),et?this._sendPacket(R,st=>{P.cb&&P.cb(st),w()}):(this.log("messageId: %d has already used. The message is skipped and removed.",R.messageId),w())};this.log("connect :: sending queued packets"),w()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this._destroyKeepaliveManager(),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}handleAuth(B,I){I()}handleMessage(B,I){I()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){var B;let I=new a.Writable,E=s.default.parser(this.options),w=null,P=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.disconnected&&!this.reconnecting&&(this.incomingStore=this.options.incomingStore||new f.default,this.outgoingStore=this.options.outgoingStore||new f.default,this.disconnecting=!1,this.disconnected=!1),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),E.on("packet",X=>{this.log("parser :: on packet push to packets array."),P.push(X)});let R=()=>{this.log("work :: getting next packet in queue");let X=P.shift();if(X)this.log("work :: packet pulled from queue"),(0,m.default)(this,X,et);else{this.log("work :: no packets in queue");let j=w;w=null,this.log("work :: done flag is %s",!!j),j&&j()}},et=()=>{if(P.length)(0,b.nextTick)(R);else{let X=w;w=null,X()}};I._write=(X,j,N)=>{w=N,this.log("writable stream :: parsing buffer"),E.parse(X),R()},this.log("connect :: pipe stream to writable stream"),this.stream.pipe(I),this.stream.on("error",X=>{this.log("streamErrorHandler :: error",X.message),X.code?(this.log("streamErrorHandler :: emitting error"),this.emit("error",X)):this.noop(X)}),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 st={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&&(st.will=Object.assign(Object.assign({},this.options.will),{payload:(B=this.options.will)===null||B===void 0?void 0:B.payload})),this.topicAliasRecv&&(st.properties||(st.properties={}),this.topicAliasRecv&&(st.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket(st),E.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 X=Object.assign({cmd:"auth",reasonCode:0},this.options.authPacket);this._writePacket(X)}}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(B,I,E,w){this.log("publish :: message `%s` to topic `%s`",I,B);let{options:P}=this;typeof E=="function"&&(w=E,E=null),E=E||{},E=Object.assign(Object.assign({},{qos:0,retain:!1,dup:!1}),E);let{qos:R,retain:et,dup:st,properties:X,cbStorePut:j}=E;if(this._checkDisconnecting(w))return this;let N=()=>{let V=0;if((R===1||R===2)&&(V=this._nextId(),V===null))return this.log("No messageId left"),!1;let nt={cmd:"publish",topic:B,payload:I,qos:R,retain:et,messageId:V,dup:st};switch(P.protocolVersion===5&&(nt.properties=X),this.log("publish :: qos",R),R){case 1:case 2:this.outgoing[nt.messageId]={volatile:!1,cb:w||this.noop},this.log("MqttClient:publish: packet cmd: %s",nt.cmd),this._sendPacket(nt,void 0,j);break;default:this.log("MqttClient:publish: packet cmd: %s",nt.cmd),this._sendPacket(nt,w,j)}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!N())&&this._storeProcessingQueue.push({invoke:N,cbStorePut:E.cbStorePut,callback:w}),this}publishAsync(B,I,E){return new Promise((w,P)=>{this.publish(B,I,E,(R,et)=>{R?P(R):w(et)})})}subscribe(B,I,E){let w=this.options.protocolVersion;typeof I=="function"&&(E=I),E=E||this.noop;let P=!1,R=[];typeof B=="string"?R=B=[B]:Array.isArray(B)?R=B:typeof B=="object"&&(P=B.resubscribe,delete B.resubscribe,R=Object.keys(B));let et=c.validateTopics(R);if(et!==null)return D(E,new Error(`Invalid topic ${et}`)),this;if(this._checkDisconnecting(E))return this.log("subscribe: discconecting true"),this;let st={qos:0};w===5&&(st.nl=!1,st.rap=!1,st.rh=0);let X=(I=Object.assign(Object.assign({},st),I)).properties,j=[],N=(nt,Q)=>{if(Q=Q||I,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,nt)||this._resubscribeTopics[nt].qos{this.log("subscribe: array topic %s",nt),N(nt)}):Object.keys(B).forEach(nt=>{this.log("subscribe: object topic %s, %o",nt,B[nt]),N(nt,B[nt])}),!j.length)return E(null,[]),this;let V=()=>{let nt=this._nextId();if(nt===null)return this.log("No messageId left"),!1;let Q={cmd:"subscribe",subscriptions:j,messageId:nt};if(X&&(Q.properties=X),this.options.resubscribe){this.log("subscribe :: resubscribe true");let G=[];j.forEach(T=>{if(this.options.reconnectPeriod>0){let q={qos:T.qos};w===5&&(q.nl=T.nl||!1,q.rap=T.rap||!1,q.rh=T.rh||0,q.properties=T.properties),this._resubscribeTopics[T.topic]=q,G.push(T.topic)}}),this.messageIdToTopic[Q.messageId]=G}return this.outgoing[Q.messageId]={volatile:!0,cb(G,T){if(!G){let{granted:q}=T;for(let tt=0;tt0||!V())&&this._storeProcessingQueue.push({invoke:V,callback:E}),this}subscribeAsync(B,I){return new Promise((E,w)=>{this.subscribe(B,I,(P,R)=>{P?w(P):E(R)})})}unsubscribe(B,I,E){typeof B=="string"&&(B=[B]),typeof I=="function"&&(E=I),E=E||this.noop;let w=c.validateTopics(B);if(w!==null)return D(E,new Error(`Invalid topic ${w}`)),this;if(this._checkDisconnecting(E))return this;let P=()=>{let R=this._nextId();if(R===null)return this.log("No messageId left"),!1;let et={cmd:"unsubscribe",messageId:R,unsubscriptions:[]};return typeof B=="string"?et.unsubscriptions=[B]:Array.isArray(B)&&(et.unsubscriptions=B),this.options.resubscribe&&et.unsubscriptions.forEach(st=>{delete this._resubscribeTopics[st]}),typeof I=="object"&&I.properties&&(et.properties=I.properties),this.outgoing[et.messageId]={volatile:!0,cb:E},this.log("unsubscribe: call _sendPacket"),this._sendPacket(et),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!P())&&this._storeProcessingQueue.push({invoke:P,callback:E}),this}unsubscribeAsync(B,I){return new Promise((E,w)=>{this.unsubscribe(B,I,(P,R)=>{P?w(P):E(R)})})}end(B,I,E){this.log("end :: (%s)",this.options.clientId),(B==null||typeof B!="boolean")&&(E=E||I,I=B,B=!1),typeof I!="object"&&(E=E||I,I=null),this.log("end :: cb? %s",!!E),(!E||typeof E!="function")&&(E=this.noop);let w=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(R=>{this.outgoingStore.close(et=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),E){let st=R||et;this.log("end :: closeStores: invoking callback with args"),E(st)}})}),this._deferredReconnect?this._deferredReconnect():(this.options.reconnectPeriod===0||this.options.manualConnect)&&(this.disconnecting=!1)},P=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,B),this._cleanUp(B,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),(0,b.nextTick)(w)},I)};return this.disconnecting?(E(),this):(this._clearReconnect(),this.disconnecting=!0,!B&&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,P,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),P()),this)}endAsync(B,I){return new Promise((E,w)=>{this.end(B,I,P=>{P?w(P):E()})})}removeOutgoingMessage(B){if(this.outgoing[B]){let{cb:I}=this.outgoing[B];this._removeOutgoingAndStoreMessage(B,()=>{I(new Error("Message removed"))})}return this}reconnect(B){this.log("client reconnect");let I=()=>{B?(this.options.incomingStore=B.incomingStore,this.options.outgoingStore=B.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new f.default,this.outgoingStore=this.options.outgoingStore||new f.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(B=>{this.outgoing[B].volatile&&typeof this.outgoing[B].cb=="function"&&(this.outgoing[B].cb(new Error("Connection closed")),delete this.outgoing[B])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(B=>{typeof this.outgoing[B].cb=="function"&&(this.outgoing[B].cb(new Error("Connection closed")),delete this.outgoing[B])}))}_removeTopicAliasAndRecoverTopicName(B){let I;B.properties&&(I=B.properties.topicAlias);let E=B.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",I,E),E.length===0){if(typeof I>"u")return new Error("Unregistered Topic Alias");if(E=this.topicAliasSend.getTopicByAlias(I),typeof E>"u")return new Error("Unregistered Topic Alias");B.topic=E}I&&delete B.properties.topicAlias}_checkDisconnecting(B){return this.disconnecting&&(B&&B!==this.noop?B(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(B,I,E={}){if(I&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",I)),this.log("_cleanUp :: forced? %s",B),B)this.options.reconnectPeriod===0&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{let w=Object.assign({cmd:"disconnect"},E);this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(w,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),D(()=>{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(B,I,E){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",B.cmd);let w,P=B;if(P.cmd==="publish"&&(P=(0,u.default)(B),w=this._removeTopicAliasAndRecoverTopicName(P),w))return I&&I(w);this.outgoingStore.put(P,R=>{if(R)return I&&I(R);E(),this._writePacket(B,I)})}_applyTopicAlias(B){if(this.options.protocolVersion===5&&B.cmd==="publish"){let I;B.properties&&(I=B.properties.topicAlias);let E=B.topic.toString();if(this.topicAliasSend)if(I){if(E.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",E,I),!this.topicAliasSend.put(E,I)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",E,I),new Error("Sending Topic Alias out of range")}else E.length!==0&&(this.options.autoAssignTopicAlias?(I=this.topicAliasSend.getAliasByTopic(E),I?(B.topic="",B.properties=Object.assign(Object.assign({},B.properties),{topicAlias:I}),this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",E,I)):(I=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(E,I),B.properties=Object.assign(Object.assign({},B.properties),{topicAlias:I}),this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",E,I))):this.options.autoUseTopicAlias&&(I=this.topicAliasSend.getAliasByTopic(E),I&&(B.topic="",B.properties=Object.assign(Object.assign({},B.properties),{topicAlias:I}),this.log("applyTopicAlias :: auto use topic: %s - alias: %d",E,I))));else if(I)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",E,I),new Error("Sending Topic Alias out of range")}}_noop(B){this.log("noop ::",B)}_writePacket(B,I){this.log("_writePacket :: packet: %O",B),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",B),this.log("_writePacket :: writing to stream");let E=s.default.writeToStream(B,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",E),!E&&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(B,I,E,w){this.log("_sendPacket :: (%s) :: start",this.options.clientId),E=E||this.noop,I=I||this.noop;let P=this._applyTopicAlias(B);if(P)I(P);else{if(!this.connected)return B.cmd==="auth"?void this._writePacket(B,I):(this.log("_sendPacket :: client not connected. Storing packet offline."),void this._storePacket(B,I,E));if(w)this._writePacket(B,I);else{switch(B.cmd){case"publish":break;case"pubrel":return void this._storeAndSend(B,I,E);default:return void this._writePacket(B,I)}switch(B.qos){case 2:case 1:this._storeAndSend(B,I,E);break;default:this._writePacket(B,I)}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}}}_storePacket(B,I,E){this.log("_storePacket :: packet: %o",B),this.log("_storePacket :: cb? %s",!!I),E=E||this.noop;let w=B;if(w.cmd==="publish"){w=(0,u.default)(B);let R=this._removeTopicAliasAndRecoverTopicName(w);if(R)return I&&I(R)}let P=w.qos||0;P===0&&this.queueQoSZero||w.cmd!=="publish"?this.queue.push({packet:w,cb:I}):P>0?(I=this.outgoing[w.messageId]?this.outgoing[w.messageId].cb:null,this.outgoingStore.put(w,R=>{if(R)return I&&I(R);E()})):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(B=!1){this.keepaliveManager&&this.options.keepalive&&(B||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 B=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&B.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){this.log("_resubscribe: protocolVersion 5");for(let I=0;I{let E=this.outgoingStore.createStream(),w=()=>{E.destroy(),E=null,this._flushStoreProcessingQueue(),P()},P=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",w),E.on("error",et=>{P(),this._flushStoreProcessingQueue(),this.removeListener("close",w),this.emit("error",et)});let R=()=>{if(!E)return;let et,st=E.read(1);st?(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[st.messageId]?R():this.disconnecting||this.reconnectTimer?E.destroy&&E.destroy():(et=this.outgoing[st.messageId]?this.outgoing[st.messageId].cb:null,this.outgoing[st.messageId]={volatile:!1,cb(X,j){et&&et(X,j),R()}},this._packetIdsDuringStoreProcessing[st.messageId]=!0,this.messageIdProvider.register(st.messageId)?this._sendPacket(st,void 0,void 0,!0):this.log("messageId: %d has already used.",st.messageId))):E.once("readable",R)};E.on("end",()=>{let et=!0;for(let st in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[st]){et=!1;break}this.removeListener("close",w),et?(P(),this._invokeAllStoreProcessingQueue(),this.emit("connect",B)):I()}),R()};I()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){let B=this._storeProcessingQueue[0];if(B&&B.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(let B of this._storeProcessingQueue)B.cbStorePut&&B.cbStorePut(new Error("Connection closed")),B.callback&&B.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(B,I){delete this.outgoing[B],this.outgoingStore.del({messageId:B},(E,w)=>{I(E,w),this.messageIdProvider.deallocate(B),this._invokeStoreProcessingQueue()})}};$.VERSION=b.MQTTJS_VERSION,t.default=$}),ay=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0});var e=$p();t.default=class{constructor(){this.numberAllocator=new e.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(r){return this.numberAllocator.use(r)}deallocate(r){this.numberAllocator.free(r)}clear(){this.numberAllocator.clear()}}});function Yr(t){throw new RangeError(Hp[t])}function Ec(t,e){let r=t.split("@"),n="";return r.length>1&&(n=r[0]+"@",t=r[1]),n+function(l,o){let s=[],i=l.length;for(;i--;)s[i]=o(l[i]);return s}((t=t.replace(qp,".")).split("."),e).join(".")}function Sc(t){let e=[],r=0,n=t.length;for(;r=55296&&l<=56319&&r{ct(),ft(),ht(),Ac=/^xn--/,kc=/[^\0-\x7E]/,qp=/[\x2E\u3002\uFF0E\uFF61]/g,Hp={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Be=Math.floor,Li=String.fromCharCode,ys=function(t,e){return t+22+75*(t<26)-((e!=0)<<5)},bs=function(t,e,r){let n=0;for(t=r?Be(t/700):t>>1,t+=Be(t/e);t>455;n+=36)t=Be(t/35);return Be(n+36*t/(t+38))},vs=function(t){let e=[],r=t.length,n=0,l=128,o=72,s=t.lastIndexOf("-");s<0&&(s=0);for(let a=0;a=128&&Yr("not-basic"),e.push(t.charCodeAt(a));for(let a=s>0?s+1:0;a=r&&Yr("invalid-input");let m=(i=t.charCodeAt(a++))-48<10?i-22:i-65<26?i-65:i-97<26?i-97:36;(m>=36||m>Be((2147483647-n)/d))&&Yr("overflow"),n+=m*d;let b=f<=o?1:f>=o+26?26:f-o;if(mBe(2147483647/_)&&Yr("overflow"),d*=_}let c=e.length+1;o=bs(n-u,c,u==0),Be(n/c)>2147483647-l&&Yr("overflow"),l+=Be(n/c),n%=c,e.splice(n++,0,l)}var i;return String.fromCodePoint(...e)},ws=function(t){let e=[],r=(t=Sc(t)).length,n=128,l=0,o=72;for(let a of t)a<128&&e.push(Li(a));let s=e.length,i=s;for(s&&e.push("-");i=n&&cBe((2147483647-l)/u)&&Yr("overflow"),l+=(a-n)*u,n=a;for(let c of t)if(c2147483647&&Yr("overflow"),c==n){let d=l;for(let f=36;;f+=36){let m=f<=o?1:f>=o+26?26:f-o;if(dString.fromCodePoint(...t)},decode:vs,encode:ws,toASCII:function(t){return Ec(t,function(e){return kc.test(e)?"xn--"+ws(e):e})},toUnicode:function(t){return Ec(t,function(e){return Ac.test(e)?vs(e.slice(4).toLowerCase()):e})}},Xr.encode,Xr.toASCII,Xr.toUnicode,Xr.ucs2,Xr.version});function uy(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var Ic,wn,Tc,er,cy=ne(()=>{ct(),ft(),ht(),Ic=function(t,e,r,n){e=e||"&",r=r||"=";var l={};if(typeof t!="string"||t.length===0)return l;var o=/\+/g;t=t.split(e);var s=1e3;n&&typeof n.maxKeys=="number"&&(s=n.maxKeys);var i=t.length;s>0&&i>s&&(i=s);for(var a=0;a=0?(u=m.substr(0,b),c=m.substr(b+1)):(u=m,c=""),d=decodeURIComponent(u),f=decodeURIComponent(c),uy(l,d)?Array.isArray(l[d])?l[d].push(f):l[d]=[l[d],f]:l[d]=f}return l},wn=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}},Tc=function(t,e,r,n){return e=e||"&",r=r||"=",t===null&&(t=void 0),typeof t=="object"?Object.keys(t).map(function(l){var o=encodeURIComponent(wn(l))+r;return Array.isArray(t[l])?t[l].map(function(s){return o+encodeURIComponent(wn(s))}).join(e):o+encodeURIComponent(wn(t[l]))}).join(e):n?encodeURIComponent(wn(n))+r+encodeURIComponent(wn(t)):""},(er={}).decode=er.parse=Ic,er.encode=er.stringify=Tc,er.decode,er.encode,er.parse,er.stringify});function Qa(){throw new Error("setTimeout has not been defined")}function Ya(){throw new Error("clearTimeout has not been defined")}function zp(t){if(nr===setTimeout)return setTimeout(t,0);if((nr===Qa||!nr)&&setTimeout)return nr=setTimeout,setTimeout(t,0);try{return nr(t,0)}catch{try{return nr.call(null,t,0)}catch{return nr.call(this||ln,t,0)}}}function hy(){un&&nn&&(un=!1,nn.length?ze=nn.concat(ze):li=-1,ze.length&&Kp())}function Kp(){if(!un){var t=zp(hy);un=!0;for(var e=ze.length;e;){for(nn=ze,ze=[];++li{ct(),ft(),ht(),ln=typeof globalThis<"u"?globalThis:typeof self<"u"?self:to,Gt=xc={},function(){try{nr=typeof setTimeout=="function"?setTimeout:Qa}catch{nr=Qa}try{ir=typeof clearTimeout=="function"?clearTimeout:Ya}catch{ir=Ya}}(),ze=[],un=!1,li=-1,Gt.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r1)for(var S=1;S{ct(),ft(),ht(),Zi={},Ja=!1,Zr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:to,(Kt=py()).platform="browser",Kt.addListener,Kt.argv,Kt.binding,Kt.browser,Kt.chdir,Kt.cwd,Kt.emit,Kt.env,Kt.listeners,Kt.nextTick,Kt.off,Kt.on,Kt.once,Kt.prependListener,Kt.prependOnceListener,Kt.removeAllListeners,Kt.removeListener,Kt.title,Kt.umask,Kt.version,Kt.versions}),_s,Es,Xa,dy=ne(()=>{ct(),ft(),ht(),Gp(),_s={},Es=!1,Xa=function(){if(Es)return _s;Es=!0;var t=Kt;function e(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function r(l,o){for(var s,i="",a=0,u=-1,c=0,d=0;d<=l.length;++d){if(d2){var f=i.lastIndexOf("/");if(f!==i.length-1){f===-1?(i="",a=0):a=(i=i.slice(0,f)).length-1-i.lastIndexOf("/"),u=d,c=0;continue}}else if(i.length===2||i.length===1){i="",a=0,u=d,c=0;continue}}o&&(i.length>0?i+="/..":i="..",a=2)}else i.length>0?i+="/"+l.slice(u+1,d):i=l.slice(u+1,d),a=d-u-1;u=d,c=0}else s===46&&c!==-1?++c:c=-1}return i}var n={resolve:function(){for(var l,o="",s=!1,i=arguments.length-1;i>=-1&&!s;i--){var a;i>=0?a=arguments[i]:(l===void 0&&(l=t.cwd()),a=l),e(a),a.length!==0&&(o=a+"/"+o,s=a.charCodeAt(0)===47)}return o=r(o,!s),s?o.length>0?"/"+o:"/":o.length>0?o:"."},normalize:function(l){if(e(l),l.length===0)return".";var o=l.charCodeAt(0)===47,s=l.charCodeAt(l.length-1)===47;return(l=r(l,!o)).length===0&&!o&&(l="."),l.length>0&&s&&(l+="/"),o?"/"+l:l},isAbsolute:function(l){return e(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,o=0;o0&&(l===void 0?l=s:l+="/"+s)}return l===void 0?".":n.normalize(l)},relative:function(l,o){if(e(l),e(o),l===o||(l=n.resolve(l))===(o=n.resolve(o)))return"";for(var s=1;sd){if(o.charCodeAt(u+m)===47)return o.slice(u+m+1);if(m===0)return o.slice(u+m)}else a>d&&(l.charCodeAt(s+m)===47?f=m:m===0&&(f=0));break}var b=l.charCodeAt(s+m);if(b!==o.charCodeAt(u+m))break;b===47&&(f=m)}var _="";for(m=s+f+1;m<=i;++m)(m===i||l.charCodeAt(m)===47)&&(_.length===0?_+="..":_+="/..");return _.length>0?_+o.slice(u+f):(u+=f,o.charCodeAt(u)===47&&++u,o.slice(u))},_makeLong:function(l){return l},dirname:function(l){if(e(l),l.length===0)return".";for(var o=l.charCodeAt(0),s=o===47,i=-1,a=!0,u=l.length-1;u>=1;--u)if((o=l.charCodeAt(u))===47){if(!a){i=u;break}}else a=!1;return i===-1?s?"/":".":s&&i===1?"//":l.slice(0,i)},basename:function(l,o){if(o!==void 0&&typeof o!="string")throw new TypeError('"ext" argument must be a string');e(l);var s,i=0,a=-1,u=!0;if(o!==void 0&&o.length>0&&o.length<=l.length){if(o.length===l.length&&o===l)return"";var c=o.length-1,d=-1;for(s=l.length-1;s>=0;--s){var f=l.charCodeAt(s);if(f===47){if(!u){i=s+1;break}}else d===-1&&(u=!1,d=s+1),c>=0&&(f===o.charCodeAt(c)?--c==-1&&(a=s):(c=-1,a=d))}return i===a?a=d:a===-1&&(a=l.length),l.slice(i,a)}for(s=l.length-1;s>=0;--s)if(l.charCodeAt(s)===47){if(!u){i=s+1;break}}else a===-1&&(u=!1,a=s+1);return a===-1?"":l.slice(i,a)},extname:function(l){e(l);for(var o=-1,s=0,i=-1,a=!0,u=0,c=l.length-1;c>=0;--c){var d=l.charCodeAt(c);if(d!==47)i===-1&&(a=!1,i=c+1),d===46?o===-1?o=c:u!==1&&(u=1):o!==-1&&(u=-1);else if(!a){s=c+1;break}}return o===-1||i===-1||u===0||u===1&&o===i-1&&o===s+1?"":l.slice(o,i)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(o,s){var i=s.dir||s.root,a=s.base||(s.name||"")+(s.ext||"");return i?i===s.root?i+a:i+o+a:a}("/",l)},parse:function(l){e(l);var o={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return o;var s,i=l.charCodeAt(0),a=i===47;a?(o.root="/",s=1):s=0;for(var u=-1,c=0,d=-1,f=!0,m=l.length-1,b=0;m>=s;--m)if((i=l.charCodeAt(m))!==47)d===-1&&(f=!1,d=m+1),i===46?u===-1?u=m:b!==1&&(b=1):u!==-1&&(b=-1);else if(!f){c=m+1;break}return u===-1||d===-1||b===0||b===1&&u===d-1&&u===c+1?d!==-1&&(o.base=o.name=c===0&&a?l.slice(1,d):l.slice(c,d)):(c===0&&a?(o.name=l.slice(1,u),o.base=l.slice(1,d)):(o.name=l.slice(c,u),o.base=l.slice(c,d)),o.ext=l.slice(u,d)),c>0?o.dir=l.slice(0,c-1):a&&(o.dir="/"),o},sep:"/",delimiter:":",win32:null,posix:null};return n.posix=n,_s=n}()}),Qp={};function Ae(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function zn(t,e,r){if(t&&Me.isObject(t)&&t instanceof Ae)return t;var n=new Ae;return n.parse(t,e,r),n}function gy(t){if(typeof t=="string")t=new URL(t);else if(!(t instanceof URL))throw new Deno.errors.InvalidData("invalid argument path , must be a string or URL");if(t.protocol!=="file:")throw new Deno.errors.InvalidData("invalid url scheme");return po?function(e){let r=e.hostname,n=e.pathname;for(let l=0;led||o!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return n.slice(1)}}(t):function(e){if(e.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let r=e.pathname;for(let n=0;nyd||o!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return n.slice(1)}}(t):function(e){if(e.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let r=e.pathname;for(let n=0;npd,Url:()=>ld,default:()=>jt,fileURLToPath:()=>Yp,format:()=>ud,parse:()=>fd,pathToFileURL:()=>Jp,resolve:()=>cd,resolveObject:()=>hd});var jt,Cc,Me,Rc,Pc,Bc,Mc,ji,Ss,As,ks,Lc,jc,Ui,Jr,Ni,Is,Ts,Za,Uc,Xp,Zp,td,ed,po,rd,nd,id,od,sd,ad,Nc,ld,ud,cd,hd,fd,pd,dd,gd,md,yd,go,bd,vd,wd,_d,Ed,Sd,yy=ne(()=>{ct(),ft(),ht(),ly(),cy(),fy(),dy(),Gp(),Cc=Xr,Me={isString:function(t){return typeof t=="string"},isObject:function(t){return typeof t=="object"&&t!==null},isNull:function(t){return t===null},isNullOrUndefined:function(t){return t==null}},(jt={}).parse=zn,jt.resolve=function(t,e){return zn(t,!1,!0).resolve(e)},jt.resolveObject=function(t,e){return t?zn(t,!1,!0).resolveObject(e):e},jt.format=function(t){return Me.isString(t)&&(t=zn(t)),t instanceof Ae?t.format():Ae.prototype.format.call(t)},jt.Url=Ae,Rc=/^([a-z0-9.+-]+:)/i,Pc=/:[0-9]*$/,Bc=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Mc=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` -`," "]),ji=["'"].concat(Mc),Ss=["%","/","?",";","#"].concat(ji),As=["/","?","#"],ks=/^[+a-z0-9A-Z_-]{0,63}$/,Lc=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,jc={javascript:!0,"javascript:":!0},Ui={javascript:!0,"javascript:":!0},Jr={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},Ni=er,Ae.prototype.parse=function(t,e,r){if(!Me.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var n=t.indexOf("?"),l=n!==-1&&n127?$+="x":$+=K[Y];if(!$.match(ks)){var I=U.slice(0,b),E=U.slice(b+1),w=K.match(Lc);w&&(I.push(w[1]),E.unshift(w[2])),E.length&&(s="/"+E.join(".")+s),this.hostname=I.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),S||(this.hostname=Cc.toASCII(this.hostname));var P=this.port?":"+this.port:"",R=this.hostname||"";this.host=R+P,this.href+=this.host,S&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),s[0]!=="/"&&(s="/"+s))}if(!jc[u])for(b=0,D=ji.length;b0)&&r.host.split("@"))&&(r.auth=w.shift(),r.host=r.hostname=w.shift())),r.search=t.search,r.query=t.query,Me.isNull(r.pathname)&&Me.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!K.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var Y=K.slice(-1)[0],B=(r.host||t.host||K.length>1)&&(Y==="."||Y==="..")||Y==="",I=0,E=K.length;E>=0;E--)(Y=K[E])==="."?K.splice(E,1):Y===".."?(K.splice(E,1),I++):I&&(K.splice(E,1),I--);if(!U&&!D)for(;I--;I)K.unshift("..");!U||K[0]===""||K[0]&&K[0].charAt(0)==="/"||K.unshift(""),B&&K.join("/").substr(-1)!=="/"&&K.push("");var w,P=K[0]===""||K[0]&&K[0].charAt(0)==="/";return $&&(r.hostname=r.host=P?"":K.length?K.shift():"",(w=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=w.shift(),r.host=r.hostname=w.shift())),(U=U||r.host&&K.length)&&!P&&K.unshift(""),K.length?r.pathname=K.join("/"):(r.pathname=null,r.path=null),Me.isNull(r.pathname)&&Me.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},Ae.prototype.parseHost=function(){var t=this.host,e=Pc.exec(t);e&&((e=e[0])!==":"&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},jt.Url,jt.format,jt.resolve,jt.resolveObject,Is={},Ts=!1,Za=function(){if(Ts)return Is;Ts=!0;var t=Qt;function e(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function r(l,o){for(var s,i="",a=0,u=-1,c=0,d=0;d<=l.length;++d){if(d2){var f=i.lastIndexOf("/");if(f!==i.length-1){f===-1?(i="",a=0):a=(i=i.slice(0,f)).length-1-i.lastIndexOf("/"),u=d,c=0;continue}}else if(i.length===2||i.length===1){i="",a=0,u=d,c=0;continue}}o&&(i.length>0?i+="/..":i="..",a=2)}else i.length>0?i+="/"+l.slice(u+1,d):i=l.slice(u+1,d),a=d-u-1;u=d,c=0}else s===46&&c!==-1?++c:c=-1}return i}var n={resolve:function(){for(var l,o="",s=!1,i=arguments.length-1;i>=-1&&!s;i--){var a;i>=0?a=arguments[i]:(l===void 0&&(l=t.cwd()),a=l),e(a),a.length!==0&&(o=a+"/"+o,s=a.charCodeAt(0)===47)}return o=r(o,!s),s?o.length>0?"/"+o:"/":o.length>0?o:"."},normalize:function(l){if(e(l),l.length===0)return".";var o=l.charCodeAt(0)===47,s=l.charCodeAt(l.length-1)===47;return(l=r(l,!o)).length===0&&!o&&(l="."),l.length>0&&s&&(l+="/"),o?"/"+l:l},isAbsolute:function(l){return e(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,o=0;o0&&(l===void 0?l=s:l+="/"+s)}return l===void 0?".":n.normalize(l)},relative:function(l,o){if(e(l),e(o),l===o||(l=n.resolve(l))===(o=n.resolve(o)))return"";for(var s=1;sd){if(o.charCodeAt(u+m)===47)return o.slice(u+m+1);if(m===0)return o.slice(u+m)}else a>d&&(l.charCodeAt(s+m)===47?f=m:m===0&&(f=0));break}var b=l.charCodeAt(s+m);if(b!==o.charCodeAt(u+m))break;b===47&&(f=m)}var _="";for(m=s+f+1;m<=i;++m)(m===i||l.charCodeAt(m)===47)&&(_.length===0?_+="..":_+="/..");return _.length>0?_+o.slice(u+f):(u+=f,o.charCodeAt(u)===47&&++u,o.slice(u))},_makeLong:function(l){return l},dirname:function(l){if(e(l),l.length===0)return".";for(var o=l.charCodeAt(0),s=o===47,i=-1,a=!0,u=l.length-1;u>=1;--u)if((o=l.charCodeAt(u))===47){if(!a){i=u;break}}else a=!1;return i===-1?s?"/":".":s&&i===1?"//":l.slice(0,i)},basename:function(l,o){if(o!==void 0&&typeof o!="string")throw new TypeError('"ext" argument must be a string');e(l);var s,i=0,a=-1,u=!0;if(o!==void 0&&o.length>0&&o.length<=l.length){if(o.length===l.length&&o===l)return"";var c=o.length-1,d=-1;for(s=l.length-1;s>=0;--s){var f=l.charCodeAt(s);if(f===47){if(!u){i=s+1;break}}else d===-1&&(u=!1,d=s+1),c>=0&&(f===o.charCodeAt(c)?--c==-1&&(a=s):(c=-1,a=d))}return i===a?a=d:a===-1&&(a=l.length),l.slice(i,a)}for(s=l.length-1;s>=0;--s)if(l.charCodeAt(s)===47){if(!u){i=s+1;break}}else a===-1&&(u=!1,a=s+1);return a===-1?"":l.slice(i,a)},extname:function(l){e(l);for(var o=-1,s=0,i=-1,a=!0,u=0,c=l.length-1;c>=0;--c){var d=l.charCodeAt(c);if(d!==47)i===-1&&(a=!1,i=c+1),d===46?o===-1?o=c:u!==1&&(u=1):o!==-1&&(u=-1);else if(!a){s=c+1;break}}return o===-1||i===-1||u===0||u===1&&o===i-1&&o===s+1?"":l.slice(o,i)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(o,s){var i=s.dir||s.root,a=s.base||(s.name||"")+(s.ext||"");return i?i===s.root?i+a:i+o+a:a}("/",l)},parse:function(l){e(l);var o={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return o;var s,i=l.charCodeAt(0),a=i===47;a?(o.root="/",s=1):s=0;for(var u=-1,c=0,d=-1,f=!0,m=l.length-1,b=0;m>=s;--m)if((i=l.charCodeAt(m))!==47)d===-1&&(f=!1,d=m+1),i===46?u===-1?u=m:b!==1&&(b=1):u!==-1&&(b=-1);else if(!f){c=m+1;break}return u===-1||d===-1||b===0||b===1&&u===d-1&&u===c+1?d!==-1&&(o.base=o.name=c===0&&a?l.slice(1,d):l.slice(c,d)):(c===0&&a?(o.name=l.slice(1,u),o.base=l.slice(1,d)):(o.name=l.slice(c,u),o.base=l.slice(c,d)),o.ext=l.slice(u,d)),c>0?o.dir=l.slice(0,c-1):a&&(o.dir="/"),o},sep:"/",delimiter:":",win32:null,posix:null};return n.posix=n,Is=n}(),Uc=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,jt.URL=typeof URL<"u"?URL:null,jt.pathToFileURL=my,jt.fileURLToPath=gy,jt.Url,jt.format,jt.resolve,jt.resolveObject,jt.URL,Xp=92,Zp=47,td=97,ed=122,po=Uc==="win32",rd=/\//g,nd=/%/g,id=/\\/g,od=/\n/g,sd=/\r/g,ad=/\t/g,Nc=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,jt.URL=typeof URL<"u"?URL:null,jt.pathToFileURL=Jp,jt.fileURLToPath=Yp,ld=jt.Url,ud=jt.format,cd=jt.resolve,hd=jt.resolveObject,fd=jt.parse,pd=jt.URL,dd=92,gd=47,md=97,yd=122,go=Nc==="win32",bd=/\//g,vd=/%/g,wd=/\\/g,_d=/\n/g,Ed=/\r/g,Sd=/\t/g}),by=mt((t,e)=>{ct(),ft(),ht(),e.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}}),Fl=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0}),t.BufferedDuplex=t.writev=void 0;var e=mn(),r=(oe(),Dt(ie));function n(o,s){let i=new Array(o.length);for(let a=0;a{this.destroyed||this.push(a)})}_read(o){this.proxy.read(o)}_write(o,s,i){this.isSocketOpen?this.writeToProxy(o,s,i):this.writeQueue.push({chunk:o,encoding:s,cb:i})}_final(o){this.writeQueue=[],this.proxy.end(o)}_destroy(o,s){this.writeQueue=[],this.proxy.destroy(),s(o)}socketReady(){this.emit("connect"),this.isSocketOpen=!0,this.processWriteQueue()}writeToProxy(o,s,i){this.proxy.write(o,s)===!1?this.proxy.once("drain",i):i()}processWriteQueue(){for(;this.writeQueue.length>0;){let{chunk:o,encoding:s,cb:i}=this.writeQueue.shift();this.writeToProxy(o,s,i)}}};t.BufferedDuplex=l}),Di=mt(t=>{ct(),ft(),ht();var e=t&&t.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0}),t.streamBuilder=t.browserStreamBuilder=void 0;var r=(oe(),Dt(ie)),n=e(by()),l=e(pr()),o=mn(),s=e(jo()),i=Fl(),a=(0,l.default)("mqttjs:ws"),u=["rejectUnauthorized","ca","cert","key","pfx","passphrase"];function c(f,m){let b=`${f.protocol}://${f.hostname}:${f.port}${f.path}`;return typeof f.transformWsUrl=="function"&&(b=f.transformWsUrl(b,f,m)),b}function d(f){let m=f;return f.port||(f.protocol==="wss"?m.port=443:m.port=80),f.path||(m.path="/"),f.wsOptions||(m.wsOptions={}),!s.default&&!f.forceNativeWebSocket&&f.protocol==="wss"&&u.forEach(b=>{Object.prototype.hasOwnProperty.call(f,b)&&!Object.prototype.hasOwnProperty.call(f.wsOptions,b)&&(m.wsOptions[b]=f[b])}),m}t.streamBuilder=(f,m)=>{a("streamBuilder");let b=d(m);b.hostname=b.hostname||b.host||"localhost";let _=c(b,f),S=function(D,K,$){a("createWebSocket"),a(`protocol: ${$.protocolId} ${$.protocolVersion}`);let Y,B=$.protocolId==="MQIsdp"&&$.protocolVersion===3?"mqttv3.1":"mqtt";return a(`creating new Websocket for url: ${K} and protocol: ${B}`),Y=$.createWebsocket?$.createWebsocket(K,[B],$):new n.default(K,[B],$.wsOptions),Y}(0,_,b),U=n.default.createWebSocketStream(S,b.wsOptions);return U.url=_,S.on("close",()=>{U.destroy()}),U},t.browserStreamBuilder=(f,m)=>{a("browserStreamBuilder");let b,_=function(w){let P=d(w);if(P.hostname||(P.hostname=P.host),!P.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");let R=new URL(document.URL);P.hostname=R.hostname,P.port||(P.port=Number(R.port))}return P.objectMode===void 0&&(P.objectMode=!(P.binary===!0||P.binary===void 0)),P}(m).browserBufferSize||524288,S=m.browserBufferTimeout||1e3,U=!m.objectMode,D=function(w,P){let R,et=P.protocolId==="MQIsdp"&&P.protocolVersion===3?"mqttv3.1":"mqtt",st=c(P,w);return R=P.createWebsocket?P.createWebsocket(st,[et],P):new WebSocket(st,[et]),R.binaryType="arraybuffer",R}(f,m),K=function(w,P,R){let et=new o.Transform({objectMode:w.objectMode});return et._write=P,et._flush=R,et}(m,function w(P,R,et){if(D.bufferedAmount>_)return void setTimeout(w,S,P,R,et);U&&typeof P=="string"&&(P=r.Buffer.from(P,"utf8"));try{D.send(P)}catch(st){return et(st)}et()},function(w){D.close(),w()});m.objectMode||(K._writev=i.writev.bind(K)),K.on("close",()=>{D.close()});let $=typeof D.addEventListener<"u";function Y(){a("WebSocket onOpen"),b instanceof i.BufferedDuplex&&b.socketReady()}function B(w){a("WebSocket onClose",w),b.end(),b.destroy()}function I(w){a("WebSocket onError",w);let P=new Error("WebSocket error");P.event=w,b.destroy(P)}async function E(w){let{data:P}=w;P=P instanceof ArrayBuffer?r.Buffer.from(P):P instanceof Blob?r.Buffer.from(await new Response(P).arrayBuffer()):r.Buffer.from(P,"utf8"),K&&!K.destroyed&&K.push(P)}return D.readyState===D.OPEN?(b=K,b.socket=D):(b=new i.BufferedDuplex(m,K,D),$?D.addEventListener("open",Y):D.onopen=Y),$?(D.addEventListener("close",B),D.addEventListener("error",I),D.addEventListener("message",E)):(D.onclose=B,D.onerror=I,D.onmessage=E),b}}),Wl={};function Vt(){throw new Error("Node.js net module is not supported by JSPM core outside of Node.js")}pn(Wl,{Server:()=>Vt,Socket:()=>Vt,Stream:()=>Vt,_createServerHandle:()=>Vt,_normalizeArgs:()=>Vt,_setSimultaneousAccepts:()=>Vt,connect:()=>Vt,createConnection:()=>Vt,createServer:()=>Vt,default:()=>Ad,isIP:()=>Vt,isIPv4:()=>Vt,isIPv6:()=>Vt});var Ad,kd=ne(()=>{ct(),ft(),ht(),Ad={_createServerHandle:Vt,_normalizeArgs:Vt,_setSimultaneousAccepts:Vt,connect:Vt,createConnection:Vt,createServer:Vt,isIP:Vt,isIPv4:Vt,isIPv6:Vt,Server:Vt,Socket:Vt,Stream:Vt}}),Dc=mt(t=>{ct(),ft(),ht();var e=t&&t.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(t,"__esModule",{value:!0});var r=e((kd(),Dt(Wl))),n=(0,e(pr()).default)("mqttjs:tcp");t.default=(l,o)=>{o.port=o.port||1883,o.hostname=o.hostname||o.host||"localhost";let{port:s,path:i}=o,a=o.hostname;return n("port %d and host %s",s,a),r.default.createConnection({port:s,host:a,path:i})}}),Id={};pn(Id,{default:()=>Td});var Td,vy=ne(()=>{ct(),ft(),ht(),Td={}}),Fc=mt(t=>{ct(),ft(),ht();var e=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0});var r=e((vy(),Dt(Id))),n=e((kd(),Dt(Wl))),l=(0,e(pr()).default)("mqttjs:tls");t.default=(o,s)=>{s.port=s.port||8883,s.host=s.hostname||s.host||"localhost",n.default.isIP(s.host)===0&&(s.servername=s.host),s.rejectUnauthorized=s.rejectUnauthorized!==!1,delete s.path,l("port %d host %s rejectUnauthorized %b",s.port,s.host,s.rejectUnauthorized);let i=r.default.connect(s);function a(u){s.rejectUnauthorized&&o.emit("error",u),i.end()}return i.on("secureConnect",()=>{s.rejectUnauthorized&&!i.authorized?i.emit("error",new Error("TLS not authorized")):i.removeListener("error",a)}),i.on("error",a),i}}),Wc=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0});var e,r,n,l=(oe(),Dt(ie)),o=mn(),s=Fl();t.default=(i,a)=>{if(a.hostname=a.hostname||a.host,!a.hostname)throw new Error("Could not determine host. Specify host manually.");let u=a.protocolId==="MQIsdp"&&a.protocolVersion===3?"mqttv3.1":"mqtt";(function(f){f.hostname||(f.hostname="localhost"),f.path||(f.path="/"),f.wsOptions||(f.wsOptions={})})(a);let c=function(f,m){let b=f.protocol==="wxs"?"wss":"ws",_=`${b}://${f.hostname}${f.path}`;return f.port&&f.port!==80&&f.port!==443&&(_=`${b}://${f.hostname}:${f.port}${f.path}`),typeof f.transformWsUrl=="function"&&(_=f.transformWsUrl(_,f,m)),_}(a,i);e=wx.connectSocket({url:c,protocols:[u]}),r=function(){let f=new o.Transform;return f._write=(m,b,_)=>{e.send({data:m.buffer,success(){_()},fail(S){_(new Error(S))}})},f._flush=m=>{e.close({success(){m()}})},f}(),(n=new s.BufferedDuplex(a,r,e))._destroy=(f,m)=>{e.close({success(){m&&m(f)}})};let d=n.destroy;return n.destroy=(f,m)=>(n.destroy=d,setTimeout(()=>{e.close({fail(){n._destroy(f,m)}})},0),n),e.onOpen(()=>{n.socketReady()}),e.onMessage(f=>{let{data:m}=f;m=m instanceof ArrayBuffer?l.Buffer.from(m):l.Buffer.from(m,"utf8"),r.push(m)}),e.onClose(()=>{n.emit("close"),n.end(),n.destroy()}),e.onError(f=>{let m=new Error(f.errMsg);n.destroy(m)}),n}}),$c=mt(t=>{ct(),ft(),ht(),Object.defineProperty(t,"__esModule",{value:!0});var e,r,n,l=(oe(),Dt(ie)),o=mn(),s=Fl(),i=!1;t.default=(a,u)=>{if(u.hostname=u.hostname||u.host,!u.hostname)throw new Error("Could not determine host. Specify host manually.");let c=u.protocolId==="MQIsdp"&&u.protocolVersion===3?"mqttv3.1":"mqtt";(function(f){f.hostname||(f.hostname="localhost"),f.path||(f.path="/"),f.wsOptions||(f.wsOptions={})})(u);let d=function(f,m){let b=f.protocol==="alis"?"wss":"ws",_=`${b}://${f.hostname}${f.path}`;return f.port&&f.port!==80&&f.port!==443&&(_=`${b}://${f.hostname}:${f.port}${f.path}`),typeof f.transformWsUrl=="function"&&(_=f.transformWsUrl(_,f,m)),_}(u,a);return(e=u.my).connectSocket({url:d,protocols:c}),r=function(){let f=new o.Transform;return f._write=(m,b,_)=>{e.sendSocketMessage({data:m.buffer,success(){_()},fail(){_(new Error)}})},f._flush=m=>{e.closeSocket({success(){m()}})},f}(),n=new s.BufferedDuplex(u,r,e),i||(i=!0,e.onSocketOpen(()=>{n.socketReady()}),e.onSocketMessage(f=>{if(typeof f.data=="string"){let m=l.Buffer.from(f.data,"base64");r.push(m)}else{let m=new FileReader;m.addEventListener("load",()=>{let b=m.result;b=b instanceof ArrayBuffer?l.Buffer.from(b):l.Buffer.from(b,"utf8"),r.push(b)}),m.readAsArrayBuffer(f.data)}}),e.onSocketClose(()=>{n.end(),n.destroy()}),e.onSocketError(f=>{n.destroy(f)})),n}}),wy=mt(t=>{ct(),ft(),ht();var e=t&&t.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,"__esModule",{value:!0}),t.connectAsync=void 0;var r=e(pr()),n=e((yy(),Dt(Qp))),l=e(Ka()),o=e(jo());typeof(Nt==null?void 0:Nt.nextTick)!="function"&&(Nt.nextTick=setImmediate);var s=(0,r.default)("mqttjs"),i=null;function a(u,c){var d,f,m,b;if(s("connecting to an MQTT broker..."),typeof u=="object"&&!c&&(c=u,u=""),c=c||{},u&&typeof u=="string"){let S=n.default.parse(u,!0),U={};if(S.port!=null&&(U.port=Number(S.port)),U.host=S.hostname,U.query=S.query,U.auth=S.auth,U.protocol=S.protocol,U.path=S.path,U.protocol=(d=U.protocol)===null||d===void 0?void 0:d.replace(/:$/,""),!(c=Object.assign(Object.assign({},U),c)).protocol)throw new Error("Missing protocol")}if(c.unixSocket=c.unixSocket||((f=c.protocol)===null||f===void 0?void 0:f.includes("+unix")),c.unixSocket?c.protocol=c.protocol.replace("+unix",""):(m=c.protocol)!==null&&m!==void 0&&m.startsWith("ws")||(b=c.protocol)!==null&&b!==void 0&&b.startsWith("wx")||delete c.path,function(S){let U;S.auth&&(U=S.auth.match(/^(.+):(.+)$/),U?(S.username=U[1],S.password=U[2]):S.username=S.auth)}(c),c.query&&typeof c.query.clientId=="string"&&(c.clientId=c.query.clientId),c.cert&&c.key){if(!c.protocol)throw new Error("Missing secure protocol key");if(["mqtts","wss","wxs","alis"].indexOf(c.protocol)===-1)switch(c.protocol){case"mqtt":c.protocol="mqtts";break;case"ws":c.protocol="wss";break;case"wx":c.protocol="wxs";break;case"ali":c.protocol="alis";break;default:throw new Error(`Unknown protocol for secure connection: "${c.protocol}"!`)}}if(i||(i={},o.default||c.forceNativeWebSocket?(i.ws=Di().browserStreamBuilder,i.wss=Di().browserStreamBuilder,i.wx=Wc().default,i.wxs=Wc().default,i.ali=$c().default,i.alis=$c().default):(i.ws=Di().streamBuilder,i.wss=Di().streamBuilder,i.mqtt=Dc().default,i.tcp=Dc().default,i.ssl=Fc().default,i.tls=i.ssl,i.mqtts=Fc().default)),!i[c.protocol]){let S=["mqtts","wss"].indexOf(c.protocol)!==-1;c.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter((U,D)=>(!S||D%2!=0)&&typeof i[U]=="function")[0]}if(c.clean===!1&&!c.clientId)throw new Error("Missing clientId for unclean clients");c.protocol&&(c.defaultProtocol=c.protocol);let _=new l.default(function(S){return c.servers&&((!S._reconnectCount||S._reconnectCount===c.servers.length)&&(S._reconnectCount=0),c.host=c.servers[S._reconnectCount].host,c.port=c.servers[S._reconnectCount].port,c.protocol=c.servers[S._reconnectCount].protocol?c.servers[S._reconnectCount].protocol:c.defaultProtocol,c.hostname=c.host,S._reconnectCount++),s("calling streambuilder for",c.protocol),i[c.protocol](S,c)},c);return _.on("error",()=>{}),_}t.connectAsync=function(u,c,d=!0){return new Promise((f,m)=>{let b=a(u,c),_={connect:U=>{S(),f(b)},end:()=>{S(),f(b)},error:U=>{S(),b.end(),m(U)}};function S(){Object.keys(_).forEach(U=>{b.off(U,_[U])})}d===!1&&(_.close=()=>{_.error(new Error("Couldn't connect to server"))}),Object.keys(_).forEach(U=>{b.on(U,_[U])})})},t.default=a}),Vc=mt(t=>{ct(),ft(),ht();var e=t&&t.__createBinding||(Object.create?function(m,b,_,S){S===void 0&&(S=_);var U=Object.getOwnPropertyDescriptor(b,_);(!U||("get"in U?!b.__esModule:U.writable||U.configurable))&&(U={enumerable:!0,get:function(){return b[_]}}),Object.defineProperty(m,S,U)}:function(m,b,_,S){S===void 0&&(S=_),m[S]=b[_]}),r=t&&t.__setModuleDefault||(Object.create?function(m,b){Object.defineProperty(m,"default",{enumerable:!0,value:b})}:function(m,b){m.default=b}),n=t&&t.__importStar||function(m){if(m&&m.__esModule)return m;var b={};if(m!=null)for(var _ in m)_!=="default"&&Object.prototype.hasOwnProperty.call(m,_)&&e(b,m,_);return r(b,m),b},l=t&&t.__exportStar||function(m,b){for(var _ in m)_!=="default"&&!Object.prototype.hasOwnProperty.call(b,_)&&e(b,m,_)},o=t&&t.__importDefault||function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReasonCodes=t.KeepaliveManager=t.UniqueMessageIdProvider=t.DefaultMessageIdProvider=t.Store=t.MqttClient=t.connectAsync=t.connect=t.Client=void 0;var s=o(Ka());t.MqttClient=s.default;var i=o(Ip());t.DefaultMessageIdProvider=i.default;var a=o(ay());t.UniqueMessageIdProvider=a.default;var u=o(Tp());t.Store=u.default;var c=n(wy());t.connect=c.default,Object.defineProperty(t,"connectAsync",{enumerable:!0,get:function(){return c.connectAsync}});var d=o(Vp());t.KeepaliveManager=d.default,t.Client=s.default,l(Ka(),t),l(Nn(),t);var f=Lo();Object.defineProperty(t,"ReasonCodes",{enumerable:!0,get:function(){return f.ReasonCodes}})});const ob=mt(t=>{ct(),ft(),ht();var e=t&&t.__createBinding||(Object.create?function(s,i,a,u){u===void 0&&(u=a);var c=Object.getOwnPropertyDescriptor(i,a);(!c||("get"in c?!i.__esModule:c.writable||c.configurable))&&(c={enumerable:!0,get:function(){return i[a]}}),Object.defineProperty(s,u,c)}:function(s,i,a,u){u===void 0&&(u=a),s[u]=i[a]}),r=t&&t.__setModuleDefault||(Object.create?function(s,i){Object.defineProperty(s,"default",{enumerable:!0,value:i})}:function(s,i){s.default=i}),n=t&&t.__importStar||function(s){if(s&&s.__esModule)return s;var i={};if(s!=null)for(var a in s)a!=="default"&&Object.prototype.hasOwnProperty.call(s,a)&&e(i,s,a);return r(i,s),i},l=t&&t.__exportStar||function(s,i){for(var a in s)a!=="default"&&!Object.prototype.hasOwnProperty.call(i,a)&&e(i,s,a)};Object.defineProperty(t,"__esModule",{value:!0});var o=n(Vc());t.default=o,l(Vc(),t)})();/*! Bundled license information: - -@jspm/core/nodelibs/browser/buffer.js: - (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) -*/var ye="top",Ce="bottom",Re="right",be="left",tl="auto",Ai=[ye,Ce,Re,be],Pn="start",vi="end",Od="viewport",Kn="popper",qc=Ai.reduce(function(t,e){return t.concat([e+"-"+Pn,e+"-"+vi])},[]),xd=[].concat(Ai,[tl]).reduce(function(t,e){return t.concat([e,e+"-"+Pn,e+"-"+vi])},[]),_y=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Qe(t){return t?(t.nodeName||"").toLowerCase():null}function Pe(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function fn(t){return t instanceof Pe(t).Element||t instanceof Element}function Te(t){return t instanceof Pe(t).HTMLElement||t instanceof HTMLElement}function $l(t){return typeof ShadowRoot<"u"&&(t instanceof Pe(t).ShadowRoot||t instanceof ShadowRoot)}const Ey={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var n=e.styles[r]||{},l=e.attributes[r]||{},o=e.elements[r];Te(o)&&Qe(o)&&(Object.assign(o.style,n),Object.keys(l).forEach(function(s){var i=l[s];i===!1?o.removeAttribute(s):o.setAttribute(s,i===!0?"":i)}))})},effect:function(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(n){var l=e.elements[n],o=e.attributes[n]||{},s=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:r[n]).reduce(function(i,a){return i[a]="",i},{});Te(l)&&Qe(l)&&(Object.assign(l.style,s),Object.keys(o).forEach(function(i){l.removeAttribute(i)}))})}},requires:["computeStyles"]};function Ke(t){return t.split("-")[0]}var cn=Math.max,mo=Math.min,Bn=Math.round;function el(){var t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Cd(){return!/^((?!chrome|android).)*safari/i.test(el())}function Mn(t,e,r){e===void 0&&(e=!1),r===void 0&&(r=!1);var n=t.getBoundingClientRect(),l=1,o=1;e&&Te(t)&&(l=t.offsetWidth>0&&Bn(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&Bn(n.height)/t.offsetHeight||1);var s=(fn(t)?Pe(t):window).visualViewport,i=!Cd()&&r,a=(n.left+(i&&s?s.offsetLeft:0))/l,u=(n.top+(i&&s?s.offsetTop:0))/o,c=n.width/l,d=n.height/o;return{width:c,height:d,top:u,right:a+c,bottom:u+d,left:a,x:a,y:u}}function Vl(t){var e=Mn(t),r=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:n}}function Rd(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&$l(r)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function ur(t){return Pe(t).getComputedStyle(t)}function Sy(t){return["table","td","th"].indexOf(Qe(t))>=0}function Lr(t){return((fn(t)?t.ownerDocument:t.document)||window.document).documentElement}function Uo(t){return Qe(t)==="html"?t:t.assignedSlot||t.parentNode||($l(t)?t.host:null)||Lr(t)}function Hc(t){return Te(t)&&ur(t).position!=="fixed"?t.offsetParent:null}function ki(t){for(var e=Pe(t),r=Hc(t);r&&Sy(r)&&ur(r).position==="static";)r=Hc(r);return r&&(Qe(r)==="html"||Qe(r)==="body"&&ur(r).position==="static")?e:r||function(n){var l=/firefox/i.test(el());if(/Trident/i.test(el())&&Te(n)&&ur(n).position==="fixed")return null;var o=Uo(n);for($l(o)&&(o=o.host);Te(o)&&["html","body"].indexOf(Qe(o))<0;){var s=ur(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||l&&s.willChange==="filter"||l&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}(t)||e}function ql(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Yn(t,e,r){return cn(t,mo(e,r))}function Pd(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Bd(t,e){return e.reduce(function(r,n){return r[n]=t,r},{})}const Ay={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,r=t.state,n=t.name,l=t.options,o=r.elements.arrow,s=r.modifiersData.popperOffsets,i=Ke(r.placement),a=ql(i),u=[be,Re].indexOf(i)>=0?"height":"width";if(o&&s){var c=function(E,w){return Pd(typeof(E=typeof E=="function"?E(Object.assign({},w.rects,{placement:w.placement})):E)!="number"?E:Bd(E,Ai))}(l.padding,r),d=Vl(o),f=a==="y"?ye:be,m=a==="y"?Ce:Re,b=r.rects.reference[u]+r.rects.reference[a]-s[a]-r.rects.popper[u],_=s[a]-r.rects.reference[a],S=ki(o),U=S?a==="y"?S.clientHeight||0:S.clientWidth||0:0,D=b/2-_/2,K=c[f],$=U-d[u]-c[m],Y=U/2-d[u]/2+D,B=Yn(K,Y,$),I=a;r.modifiersData[n]=((e={})[I]=B,e.centerOffset=B-Y,e)}},effect:function(t){var e=t.state,r=t.options.element,n=r===void 0?"[data-popper-arrow]":r;n!=null&&(typeof n!="string"||(n=e.elements.popper.querySelector(n)))&&Rd(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ln(t){return t.split("-")[1]}var ky={top:"auto",right:"auto",bottom:"auto",left:"auto"};function zc(t){var e,r=t.popper,n=t.popperRect,l=t.placement,o=t.variation,s=t.offsets,i=t.position,a=t.gpuAcceleration,u=t.adaptive,c=t.roundOffsets,d=t.isFixed,f=s.x,m=f===void 0?0:f,b=s.y,_=b===void 0?0:b,S=typeof c=="function"?c({x:m,y:_}):{x:m,y:_};m=S.x,_=S.y;var U=s.hasOwnProperty("x"),D=s.hasOwnProperty("y"),K=be,$=ye,Y=window;if(u){var B=ki(r),I="clientHeight",E="clientWidth";B===Pe(r)&&ur(B=Lr(r)).position!=="static"&&i==="absolute"&&(I="scrollHeight",E="scrollWidth"),(l===ye||(l===be||l===Re)&&o===vi)&&($=Ce,_-=(d&&B===Y&&Y.visualViewport?Y.visualViewport.height:B[I])-n.height,_*=a?1:-1),(l===be||(l===ye||l===Ce)&&o===vi)&&(K=Re,m-=(d&&B===Y&&Y.visualViewport?Y.visualViewport.width:B[E])-n.width,m*=a?1:-1)}var w,P=Object.assign({position:i},u&&ky),R=c===!0?function(et){var st=et.x,X=et.y,j=window.devicePixelRatio||1;return{x:Bn(st*j)/j||0,y:Bn(X*j)/j||0}}({x:m,y:_}):{x:m,y:_};return m=R.x,_=R.y,a?Object.assign({},P,((w={})[$]=D?"0":"",w[K]=U?"0":"",w.transform=(Y.devicePixelRatio||1)<=1?"translate("+m+"px, "+_+"px)":"translate3d("+m+"px, "+_+"px, 0)",w)):Object.assign({},P,((e={})[$]=D?_+"px":"",e[K]=U?m+"px":"",e.transform="",e))}var Fi={passive:!0},Iy={left:"right",right:"left",bottom:"top",top:"bottom"};function Wi(t){return t.replace(/left|right|bottom|top/g,function(e){return Iy[e]})}var Ty={start:"end",end:"start"};function Kc(t){return t.replace(/start|end/g,function(e){return Ty[e]})}function Hl(t){var e=Pe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function rl(t){return Mn(Lr(t)).left+Hl(t).scrollLeft}function zl(t){var e=ur(t),r=e.overflow,n=e.overflowX,l=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+l+n)}function Md(t){return["html","body","#document"].indexOf(Qe(t))>=0?t.ownerDocument.body:Te(t)&&zl(t)?t:Md(Uo(t))}function ui(t,e){var r;e===void 0&&(e=[]);var n=Md(t),l=n===((r=t.ownerDocument)==null?void 0:r.body),o=Pe(n),s=l?[o].concat(o.visualViewport||[],zl(n)?n:[]):n,i=e.concat(s);return l?i:i.concat(ui(Uo(s)))}function nl(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Gc(t,e,r){return e===Od?nl(function(n,l){var o=Pe(n),s=Lr(n),i=o.visualViewport,a=s.clientWidth,u=s.clientHeight,c=0,d=0;if(i){a=i.width,u=i.height;var f=Cd();(f||!f&&l==="fixed")&&(c=i.offsetLeft,d=i.offsetTop)}return{width:a,height:u,x:c+rl(n),y:d}}(t,r)):fn(e)?function(n,l){var o=Mn(n,!1,l==="fixed");return o.top=o.top+n.clientTop,o.left=o.left+n.clientLeft,o.bottom=o.top+n.clientHeight,o.right=o.left+n.clientWidth,o.width=n.clientWidth,o.height=n.clientHeight,o.x=o.left,o.y=o.top,o}(e,r):nl(function(n){var l,o=Lr(n),s=Hl(n),i=(l=n.ownerDocument)==null?void 0:l.body,a=cn(o.scrollWidth,o.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),u=cn(o.scrollHeight,o.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),c=-s.scrollLeft+rl(n),d=-s.scrollTop;return ur(i||o).direction==="rtl"&&(c+=cn(o.clientWidth,i?i.clientWidth:0)-a),{width:a,height:u,x:c,y:d}}(Lr(t)))}function Oy(t,e,r,n){var l=e==="clippingParents"?function(a){var u=ui(Uo(a)),c=["absolute","fixed"].indexOf(ur(a).position)>=0&&Te(a)?ki(a):a;return fn(c)?u.filter(function(d){return fn(d)&&Rd(d,c)&&Qe(d)!=="body"}):[]}(t):[].concat(e),o=[].concat(l,[r]),s=o[0],i=o.reduce(function(a,u){var c=Gc(t,u,n);return a.top=cn(c.top,a.top),a.right=mo(c.right,a.right),a.bottom=mo(c.bottom,a.bottom),a.left=cn(c.left,a.left),a},Gc(t,s,n));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function Ld(t){var e,r=t.reference,n=t.element,l=t.placement,o=l?Ke(l):null,s=l?Ln(l):null,i=r.x+r.width/2-n.width/2,a=r.y+r.height/2-n.height/2;switch(o){case ye:e={x:i,y:r.y-n.height};break;case Ce:e={x:i,y:r.y+r.height};break;case Re:e={x:r.x+r.width,y:a};break;case be:e={x:r.x-n.width,y:a};break;default:e={x:r.x,y:r.y}}var u=o?ql(o):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case Pn:e[u]=e[u]-(r[c]/2-n[c]/2);break;case vi:e[u]=e[u]+(r[c]/2-n[c]/2)}}return e}function wi(t,e){e===void 0&&(e={});var r=e,n=r.placement,l=n===void 0?t.placement:n,o=r.strategy,s=o===void 0?t.strategy:o,i=r.boundary,a=i===void 0?"clippingParents":i,u=r.rootBoundary,c=u===void 0?Od:u,d=r.elementContext,f=d===void 0?Kn:d,m=r.altBoundary,b=m!==void 0&&m,_=r.padding,S=_===void 0?0:_,U=Pd(typeof S!="number"?S:Bd(S,Ai)),D=f===Kn?"reference":Kn,K=t.rects.popper,$=t.elements[b?D:f],Y=Oy(fn($)?$:$.contextElement||Lr(t.elements.popper),a,c,s),B=Mn(t.elements.reference),I=Ld({reference:B,element:K,strategy:"absolute",placement:l}),E=nl(Object.assign({},K,I)),w=f===Kn?E:B,P={top:Y.top-w.top+U.top,bottom:w.bottom-Y.bottom+U.bottom,left:Y.left-w.left+U.left,right:w.right-Y.right+U.right},R=t.modifiersData.offset;if(f===Kn&&R){var et=R[l];Object.keys(P).forEach(function(st){var X=[Re,Ce].indexOf(st)>=0?1:-1,j=[ye,Ce].indexOf(st)>=0?"y":"x";P[st]+=et[j]*X})}return P}function xy(t,e){e===void 0&&(e={});var r=e,n=r.placement,l=r.boundary,o=r.rootBoundary,s=r.padding,i=r.flipVariations,a=r.allowedAutoPlacements,u=a===void 0?xd:a,c=Ln(n),d=c?i?qc:qc.filter(function(b){return Ln(b)===c}):Ai,f=d.filter(function(b){return u.indexOf(b)>=0});f.length===0&&(f=d);var m=f.reduce(function(b,_){return b[_]=wi(t,{placement:_,boundary:l,rootBoundary:o,padding:s})[Ke(_)],b},{});return Object.keys(m).sort(function(b,_){return m[b]-m[_]})}const Cy={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,r=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var l=r.mainAxis,o=l===void 0||l,s=r.altAxis,i=s===void 0||s,a=r.fallbackPlacements,u=r.padding,c=r.boundary,d=r.rootBoundary,f=r.altBoundary,m=r.flipVariations,b=m===void 0||m,_=r.allowedAutoPlacements,S=e.options.placement,U=Ke(S),D=a||(U===S||!b?[Wi(S)]:function(T){if(Ke(T)===tl)return[];var q=Wi(T);return[Kc(T),q,Kc(q)]}(S)),K=[S].concat(D).reduce(function(T,q){return T.concat(Ke(q)===tl?xy(e,{placement:q,boundary:c,rootBoundary:d,padding:u,flipVariations:b,allowedAutoPlacements:_}):q)},[]),$=e.rects.reference,Y=e.rects.popper,B=new Map,I=!0,E=K[0],w=0;w=0,X=st?"width":"height",j=wi(e,{placement:P,boundary:c,rootBoundary:d,altBoundary:f,padding:u}),N=st?et?Re:be:et?Ce:ye;$[X]>Y[X]&&(N=Wi(N));var V=Wi(N),nt=[];if(o&&nt.push(j[R]<=0),i&&nt.push(j[N]<=0,j[V]<=0),nt.every(function(T){return T})){E=P,I=!1;break}B.set(P,nt)}if(I)for(var Q=function(T){var q=K.find(function(tt){var it=B.get(tt);if(it)return it.slice(0,T).every(function(lt){return lt})});if(q)return E=q,"break"},G=b?3:1;G>0&&Q(G)!=="break";G--);e.placement!==E&&(e.modifiersData[n]._skip=!0,e.placement=E,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Qc(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function Yc(t){return[ye,Re,Ce,be].some(function(e){return t[e]>=0})}const Ry={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,r=t.options,n=t.name,l=r.offset,o=l===void 0?[0,0]:l,s=xd.reduce(function(c,d){return c[d]=function(f,m,b){var _=Ke(f),S=[be,ye].indexOf(_)>=0?-1:1,U=typeof b=="function"?b(Object.assign({},m,{placement:f})):b,D=U[0],K=U[1];return D=D||0,K=(K||0)*S,[be,Re].indexOf(_)>=0?{x:K,y:D}:{x:D,y:K}}(d,e.rects,o),c},{}),i=s[e.placement],a=i.x,u=i.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=a,e.modifiersData.popperOffsets.y+=u),e.modifiersData[n]=s}},Py={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,r=t.options,n=t.name,l=r.mainAxis,o=l===void 0||l,s=r.altAxis,i=s!==void 0&&s,a=r.boundary,u=r.rootBoundary,c=r.altBoundary,d=r.padding,f=r.tether,m=f===void 0||f,b=r.tetherOffset,_=b===void 0?0:b,S=wi(e,{boundary:a,rootBoundary:u,padding:d,altBoundary:c}),U=Ke(e.placement),D=Ln(e.placement),K=!D,$=ql(U),Y=$==="x"?"y":"x",B=e.modifiersData.popperOffsets,I=e.rects.reference,E=e.rects.popper,w=typeof _=="function"?_(Object.assign({},e.rects,{placement:e.placement})):_,P=typeof w=="number"?{mainAxis:w,altAxis:w}:Object.assign({mainAxis:0,altAxis:0},w),R=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,et={x:0,y:0};if(B){if(o){var st,X=$==="y"?ye:be,j=$==="y"?Ce:Re,N=$==="y"?"height":"width",V=B[$],nt=V+S[X],Q=V-S[j],G=m?-E[N]/2:0,T=D===Pn?I[N]:E[N],q=D===Pn?-E[N]:-I[N],tt=e.elements.arrow,it=m&&tt?Vl(tt):{width:0,height:0},lt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},ut=lt[X],pt=lt[j],H=Yn(0,I[N],it[N]),rt=K?I[N]/2-G-H-ut-P.mainAxis:T-H-ut-P.mainAxis,Z=K?-I[N]/2+G+H+pt+P.mainAxis:q+H+pt+P.mainAxis,dt=e.elements.arrow&&ki(e.elements.arrow),L=dt?$==="y"?dt.clientTop||0:dt.clientLeft||0:0,A=(st=R==null?void 0:R[$])!=null?st:0,F=V+Z-A,h=Yn(m?mo(nt,V+rt-A-L):nt,V,m?cn(Q,F):Q);B[$]=h,et[$]=h-V}if(i){var p,y=$==="x"?ye:be,O=$==="x"?Ce:Re,C=B[Y],x=Y==="y"?"height":"width",g=C+S[y],v=C-S[O],k=[ye,be].indexOf(U)!==-1,M=(p=R==null?void 0:R[Y])!=null?p:0,W=k?g:C-I[x]-E[x]-M+P.altAxis,J=k?C+I[x]+E[x]-M-P.altAxis:v,at=m&&k?function(ot,vt,bt){var wt=Yn(ot,vt,bt);return wt>bt?bt:wt}(W,C,J):Yn(m?W:g,C,m?J:v);B[Y]=at,et[Y]=at-C}e.modifiersData[n]=et}},requiresIfExists:["offset"]};function By(t,e,r){r===void 0&&(r=!1);var n,l,o=Te(e),s=Te(e)&&function(d){var f=d.getBoundingClientRect(),m=Bn(f.width)/d.offsetWidth||1,b=Bn(f.height)/d.offsetHeight||1;return m!==1||b!==1}(e),i=Lr(e),a=Mn(t,s,r),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!r)&&((Qe(e)!=="body"||zl(i))&&(u=(n=e)!==Pe(n)&&Te(n)?{scrollLeft:(l=n).scrollLeft,scrollTop:l.scrollTop}:Hl(n)),Te(e)?((c=Mn(e,!0)).x+=e.clientLeft,c.y+=e.clientTop):i&&(c.x=rl(i))),{x:a.left+u.scrollLeft-c.x,y:a.top+u.scrollTop-c.y,width:a.width,height:a.height}}function My(t){var e=new Map,r=new Set,n=[];function l(o){r.add(o.name),[].concat(o.requires||[],o.requiresIfExists||[]).forEach(function(s){if(!r.has(s)){var i=e.get(s);i&&l(i)}}),n.push(o)}return t.forEach(function(o){e.set(o.name,o)}),t.forEach(function(o){r.has(o.name)||l(o)}),n}function Ly(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}var Jc={placement:"bottom",modifiers:[],strategy:"absolute"};function Xc(){for(var t=arguments.length,e=new Array(t),r=0;r{};let $n={},Ke={},Xe=null,Ve={mark:fe,measure:fe};try{typeof window<"u"&&($n=window),typeof document<"u"&&(Ke=document),typeof MutationObserver<"u"&&(Xe=MutationObserver),typeof performance<"u"&&(Ve=performance)}catch{}const{userAgent:ue=""}=$n.navigator||{},Y=$n,v=Ke,me=Xe,sn=Ve;Y.document;const R=!!v.documentElement&&!!v.head&&typeof v.addEventListener=="function"&&typeof v.createElement=="function",Ge=~ue.indexOf("MSIE")||~ue.indexOf("Trident/");var Ze={classic:{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fab:"brands","fa-brands":"brands"},duotone:{fa:"solid",fad:"solid","fa-solid":"solid","fa-duotone":"solid",fadr:"regular","fa-regular":"regular",fadl:"light","fa-light":"light",fadt:"thin","fa-thin":"thin"},sharp:{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"},"sharp-duotone":{fa:"solid",fasds:"solid","fa-solid":"solid",fasdr:"regular","fa-regular":"regular",fasdl:"light","fa-light":"light",fasdt:"thin","fa-thin":"thin"}},Je=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone"],O="classic",hn="duotone",Qe=[O,hn,"sharp","sharp-duotone"],Pt=new Map([["classic",{defaultShortPrefixId:"fas",defaultStyleId:"solid",styleIds:["solid","regular","light","thin","brands"],futureStyleIds:[],defaultFontWeight:900}],["sharp",{defaultShortPrefixId:"fass",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["duotone",{defaultShortPrefixId:"fad",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["sharp-duotone",{defaultShortPrefixId:"fasds",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}]]),St=["fak","fa-kit","fakd","fa-kit-duotone"],Ct={fak:"kit","fa-kit":"kit"},jt={fakd:"kit-duotone","fa-kit-duotone":"kit-duotone"},Et=["fak","fakd"],It={kit:"fak"},Ft={"kit-duotone":"fakd"},cn={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},Dt=["fak","fa-kit","fakd","fa-kit-duotone"],En={classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"}},In=["fa","fas","far","fal","fat","fad","fadr","fadl","fadt","fab","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt","fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone","fa-solid","fa-regular","fa-light","fa-thin","fa-duotone","fa-brands"],$e=[1,2,3,4,5,6,7,8,9,10],Rt=$e.concat([11,12,13,14,15,16,17,18,19,20]),Tt=[...Object.keys({classic:["fas","far","fal","fat","fad"],duotone:["fadr","fadl","fadt"],sharp:["fass","fasr","fasl","fast"],"sharp-duotone":["fasds","fasdr","fasdl","fasdt"]}),"solid","regular","light","thin","duotone","brands","2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",cn.GROUP,cn.SWAP_OPACITY,cn.PRIMARY,cn.SECONDARY].concat($e.map(n=>"".concat(n,"x"))).concat(Rt.map(n=>"w-".concat(n)));const I="___FONT_AWESOME___",Fn=16,nt="svg-inline--fa",U="data-fa-i2svg",Dn="data-fa-pseudo-element",Rn="data-prefix",Tn="data-icon",de="fontawesome-i2svg",Bt=["HTML","HEAD","STYLE","SCRIPT"],et=(()=>{try{return!0}catch{return!1}})();function an(n){return new Proxy(n,{get:(e,t)=>t in e?e[t]:e[O]})}const tt=s({},Ze);tt[O]=s(s(s(s({},{"fa-duotone":"duotone"}),Ze[O]),Ct),jt);const Yt=an(tt),Bn=s({},{classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",brands:"fab"},duotone:{solid:"fad",regular:"fadr",light:"fadl",thin:"fadt"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds",regular:"fasdr",light:"fasdl",thin:"fasdt"}});Bn[O]=s(s(s(s({},{duotone:"fad"}),Bn[O]),It),Ft);const pe=an(Bn),Yn=s({},En);Yn[O]=s(s({},Yn[O]),{fak:"fa-kit"});const ne=an(Yn),zn=s({},{classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"}});zn[O]=s(s({},zn[O]),{"fa-kit":"fak"}),an(zn);const Wt=/fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/,at="fa-layers-text",Ht=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i;an(s({},{classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"}}));const _t=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],An={GROUP:"duotone-group",PRIMARY:"primary",SECONDARY:"secondary"},Ut=["kit",...Tt],nn=Y.FontAwesomeConfig||{};v&&typeof v.querySelector=="function"&&[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(n=>{let[e,t]=n;const a=function(r){return r===""||r!=="false"&&(r==="true"||r)}(function(r){var i=v.querySelector("script["+r+"]");if(i)return i.getAttribute(r)}(e));a!=null&&(nn[t]=a)});const rt={styleDefault:"solid",familyDefault:O,cssPrefix:"fa",replacementClass:nt,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};nn.familyPrefix&&(nn.cssPrefix=nn.familyPrefix);const V=s(s({},rt),nn);V.autoReplaceSvg||(V.observeMutations=!1);const p={};Object.keys(rt).forEach(n=>{Object.defineProperty(p,n,{enumerable:!0,set:function(e){V[n]=e,Wn.forEach(t=>t(p))},get:function(){return V[n]}})}),Object.defineProperty(p,"familyPrefix",{enumerable:!0,set:function(n){V.cssPrefix=n,Wn.forEach(e=>e(p))},get:function(){return V.cssPrefix}}),Y.FontAwesomeConfig=p;const Wn=[],B=Fn,C={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function tn(){let n=12,e="";for(;n-- >0;)e+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return e}function J(n){const e=[];for(let t=(n||[]).length>>>0;t--;)e[t]=n[t];return e}function ee(n){return n.classList?J(n.classList):(n.getAttribute("class")||"").split(" ").filter(e=>e)}function ge(n){return"".concat(n).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function bn(n){return Object.keys(n||{}).reduce((e,t)=>e+"".concat(t,": ").concat(n[t].trim(),";"),"")}function te(n){return n.size!==C.size||n.x!==C.x||n.y!==C.y||n.rotate!==C.rotate||n.flipX||n.flipY}function it(){const n="fa",e=nt,t=p.cssPrefix,a=p.replacementClass;let r=`:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"; + --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"; + --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro"; + --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro"; + --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone"; + --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 6 Duotone"; + --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 6 Duotone"; + --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 6 Duotone"; + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"; + --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone"; + --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 6 Sharp Duotone"; + --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 6 Sharp Duotone"; + --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 6 Sharp Duotone"; +} + +svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa { + overflow: visible; + box-sizing: content-box; +} + +.svg-inline--fa { + display: var(--fa-display, inline-block); + height: 1em; + overflow: visible; + vertical-align: -0.125em; +} +.svg-inline--fa.fa-2xs { + vertical-align: 0.1em; +} +.svg-inline--fa.fa-xs { + vertical-align: 0em; +} +.svg-inline--fa.fa-sm { + vertical-align: -0.0714285705em; +} +.svg-inline--fa.fa-lg { + vertical-align: -0.2em; +} +.svg-inline--fa.fa-xl { + vertical-align: -0.25em; +} +.svg-inline--fa.fa-2xl { + vertical-align: -0.3125em; +} +.svg-inline--fa.fa-pull-left { + margin-right: var(--fa-pull-margin, 0.3em); + width: auto; +} +.svg-inline--fa.fa-pull-right { + margin-left: var(--fa-pull-margin, 0.3em); + width: auto; +} +.svg-inline--fa.fa-li { + width: var(--fa-li-width, 2em); + top: 0.25em; +} +.svg-inline--fa.fa-fw { + width: var(--fa-fw-width, 1.25em); +} + +.fa-layers svg.svg-inline--fa { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; +} + +.fa-layers-counter, .fa-layers-text { + display: inline-block; + position: absolute; + text-align: center; +} + +.fa-layers { + display: inline-block; + height: 1em; + position: relative; + text-align: center; + vertical-align: -0.125em; + width: 1em; +} +.fa-layers svg.svg-inline--fa { + transform-origin: center center; +} + +.fa-layers-text { + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transform-origin: center center; +} + +.fa-layers-counter { + background-color: var(--fa-counter-background-color, #ff253a); + border-radius: var(--fa-counter-border-radius, 1em); + box-sizing: border-box; + color: var(--fa-inverse, #fff); + line-height: var(--fa-counter-line-height, 1); + max-width: var(--fa-counter-max-width, 5em); + min-width: var(--fa-counter-min-width, 1.5em); + overflow: hidden; + padding: var(--fa-counter-padding, 0.25em 0.5em); + right: var(--fa-right, 0); + text-overflow: ellipsis; + top: var(--fa-top, 0); + transform: scale(var(--fa-counter-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-bottom-right { + bottom: var(--fa-bottom, 0); + right: var(--fa-right, 0); + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom right; +} + +.fa-layers-bottom-left { + bottom: var(--fa-bottom, 0); + left: var(--fa-left, 0); + right: auto; + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom left; +} + +.fa-layers-top-right { + top: var(--fa-top, 0); + right: var(--fa-right, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-top-left { + left: var(--fa-left, 0); + right: auto; + top: var(--fa-top, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top left; +} + +.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: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; +} + +.fa-xs { + font-size: 0.75em; + line-height: 0.0833333337em; + vertical-align: 0.125em; +} + +.fa-sm { + font-size: 0.875em; + line-height: 0.0714285718em; + vertical-align: 0.0535714295em; +} + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; +} + +.fa-xl { + font-size: 1.5em; + line-height: 0.0416666682em; + vertical-align: -0.125em; +} + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.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(-1 * var(--fa-li-width, 2em)); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; +} + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); +} + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); +} + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); +} + +.fa-beat { + animation-name: fa-beat; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-bounce { + animation-name: fa-bounce; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); +} + +.fa-fade { + animation-name: fa-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-beat-fade { + animation-name: fa-beat-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-flip { + animation-name: fa-flip; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-shake { + animation-name: fa-shake; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 2s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin-reverse { + --fa-animation-direction: reverse; +} + +.fa-pulse, +.fa-spin-pulse { + animation-name: fa-spin; + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, steps(8)); +} + +@media (prefers-reduced-motion: reduce) { + .fa-beat, +.fa-bounce, +.fa-fade, +.fa-beat-fade, +.fa-flip, +.fa-pulse, +.fa-shake, +.fa-spin, +.fa-spin-pulse { + animation-delay: -1ms; + animation-duration: 1ms; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; + } +} +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); + } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); + } +} +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); + } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + } + 64% { + transform: scale(1, 1) translateY(0); + } + 100% { + transform: scale(1, 1) translateY(0); + } +} +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); + } +} +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + transform: scale(1); + } + 50% { + opacity: 1; + transform: scale(var(--fa-beat-fade-scale, 1.125)); + } +} +@keyframes fa-flip { + 50% { + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + } +} +@keyframes fa-shake { + 0% { + transform: rotate(-15deg); + } + 4% { + transform: rotate(15deg); + } + 8%, 24% { + transform: rotate(-18deg); + } + 12%, 28% { + transform: rotate(18deg); + } + 16% { + transform: rotate(-22deg); + } + 20% { + transform: rotate(22deg); + } + 32% { + transform: rotate(-12deg); + } + 36% { + transform: rotate(12deg); + } + 40%, 100% { + transform: rotate(0deg); + } +} +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.fa-rotate-90 { + transform: rotate(90deg); +} + +.fa-rotate-180 { + transform: rotate(180deg); +} + +.fa-rotate-270 { + transform: rotate(270deg); +} + +.fa-flip-horizontal { + transform: scale(-1, 1); +} + +.fa-flip-vertical { + transform: scale(1, -1); +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -1); +} + +.fa-rotate-by { + transform: rotate(var(--fa-rotate-angle, 0)); +} + +.fa-stack { + display: inline-block; + vertical-align: middle; + height: 2em; + position: relative; + width: 2.5em; +} + +.fa-stack-1x, +.fa-stack-2x { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; + z-index: var(--fa-stack-z-index, auto); +} + +.svg-inline--fa.fa-stack-1x { + height: 1em; + width: 1.25em; +} +.svg-inline--fa.fa-stack-2x { + height: 2em; + width: 2.5em; +} + +.fa-inverse { + color: var(--fa-inverse, #fff); +} + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.sr-only-focusable:not(:focus), +.fa-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; +} + +.svg-inline--fa .fa-primary { + fill: var(--fa-primary-color, currentColor); + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa .fa-secondary { + fill: var(--fa-secondary-color, currentColor); + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-primary { + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-secondary { + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa mask .fa-primary, +.svg-inline--fa mask .fa-secondary { + fill: black; +}`;if(t!==n||a!==e){const i=new RegExp("\\.".concat(n,"\\-"),"g"),o=new RegExp("\\--".concat(n,"\\-"),"g"),l=new RegExp("\\.".concat(e),"g");r=r.replace(i,".".concat(t,"-")).replace(o,"--".concat(t,"-")).replace(l,".".concat(a))}return r}let he=!1;function Ln(){p.autoAddCss&&!he&&(function(n){if(!n||!R)return;const e=v.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=n;const t=v.head.childNodes;let a=null;for(let r=t.length-1;r>-1;r--){const i=t[r],o=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(a=i)}v.head.insertBefore(e,a)}(it()),he=!0)}var qt={mixout:()=>({dom:{css:it,insertCss:Ln}}),hooks:()=>({beforeDOMElementCreation(){Ln()},beforeI2svg(){Ln()}})};const F=Y||{};F[I]||(F[I]={}),F[I].styles||(F[I].styles={}),F[I].hooks||(F[I].hooks={}),F[I].shims||(F[I].shims=[]);var j=F[I];const ot=[],st=function(){v.removeEventListener("DOMContentLoaded",st),pn=1,ot.map(n=>n())};let pn=!1;function rn(n){const{tag:e,attributes:t={},children:a=[]}=n;return typeof n=="string"?ge(n):"<".concat(e," ").concat(function(r){return Object.keys(r||{}).reduce((i,o)=>i+"".concat(o,'="').concat(ge(r[o]),'" '),"").trim()}(t),">").concat(a.map(rn).join(""),"")}function be(n,e,t){if(n&&n[e]&&n[e][t])return{prefix:e,iconName:t,icon:n[e][t]}}R&&(pn=(v.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(v.readyState),pn||v.addEventListener("DOMContentLoaded",st));var On=function(n,e,t,a){var r,i,o,l=Object.keys(n),f=l.length,c=e;for(t===void 0?(r=1,o=n[l[0]]):(r=0,o=t);r=55296&&o<=56319&&r{const a=n[t];return a.icon?e[a.iconName]=a.icon:e[t]=a,e},{})}function Hn(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{skipHooks:a=!1}=t,r=ye(e);typeof j.hooks.addPack!="function"||a?j.styles[n]=s(s({},j.styles[n]||{}),r):j.hooks.addPack(n,ye(e)),n==="fas"&&Hn("fa",e)}const{styles:en,shims:Kt}=j,lt=Object.keys(ne),Xt=lt.reduce((n,e)=>(n[e]=Object.keys(ne[e]),n),{});let ae=null,ft={},ut={},mt={},dt={},pt={};function Vt(n,e){const t=e.split("-"),a=t[0],r=t.slice(1).join("-");return a!==n||r===""||(i=r,~Ut.indexOf(i))?null:r;var i}const gt=()=>{const n=a=>On(en,(r,i,o)=>(r[o]=On(i,a,{}),r),{});ft=n((a,r,i)=>(r[3]&&(a[r[3]]=i),r[2]&&r[2].filter(o=>typeof o=="number").forEach(o=>{a[o.toString(16)]=i}),a)),ut=n((a,r,i)=>(a[i]=i,r[2]&&r[2].filter(o=>typeof o=="string").forEach(o=>{a[o]=i}),a)),pt=n((a,r,i)=>{const o=r[2];return a[i]=i,o.forEach(l=>{a[l]=i}),a});const e="far"in en||p.autoFetchSvg,t=On(Kt,(a,r)=>{const i=r[0];let o=r[1];const l=r[2];return o!=="far"||e||(o="fas"),typeof i=="string"&&(a.names[i]={prefix:o,iconName:l}),typeof i=="number"&&(a.unicodes[i.toString(16)]={prefix:o,iconName:l}),a},{names:{},unicodes:{}});mt=t.names,dt=t.unicodes,ae=yn(p.styleDefault,{family:p.familyDefault})};var ve;function _n(n,e){return(ft[n]||{})[e]}function _(n,e){return(pt[n]||{})[e]}function ht(n){return mt[n]||{prefix:null,iconName:null}}function W(){return ae}ve=n=>{ae=yn(n.styleDefault,{family:p.familyDefault})},Wn.push(ve),gt();function yn(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{family:t=O}=e,a=Yt[t][n];if(t===hn&&!n)return"fad";const r=pe[t][n]||pe[t][a],i=n in j.styles?n:null;return r||i||null}function xe(n){return n.sort().filter((e,t,a)=>a.indexOf(e)===t)}function vn(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{skipLookups:t=!1}=e;let a=null;const r=In.concat(Dt),i=xe(n.filter(d=>r.includes(d))),o=xe(n.filter(d=>!In.includes(d))),l=i.filter(d=>(a=d,!Je.includes(d))),[f=null]=l,c=function(d){let u=O;const h=lt.reduce((g,b)=>(g[b]="".concat(p.cssPrefix,"-").concat(b),g),{});return Qe.forEach(g=>{(d.includes(h[g])||d.some(b=>Xt[g].includes(b)))&&(u=g)}),u}(i),m=s(s({},function(d){let u=[],h=null;return d.forEach(g=>{const b=Vt(p.cssPrefix,g);b?h=b:g&&u.push(g)}),{iconName:h,rest:u}}(o)),{},{prefix:yn(f,{family:c})});return s(s(s({},m),function(d){const{values:u,family:h,canonical:g,givenPrefix:b="",styles:k={},config:z={}}=d,x=h===hn,w=u.includes("fa-duotone")||u.includes("fad"),M=z.familyDefault==="duotone",y=g.prefix==="fad"||g.prefix==="fa-duotone";if(!x&&(w||M||y)&&(g.prefix="fad"),(u.includes("fa-brands")||u.includes("fab"))&&(g.prefix="fab"),!g.prefix&&Gt.includes(h)&&(Object.keys(k).find(A=>Zt.includes(A))||z.autoFetchSvg)){const A=Pt.get(h).defaultShortPrefixId;g.prefix=A,g.iconName=_(g.prefix,g.iconName)||g.iconName}return g.prefix!=="fa"&&b!=="fa"||(g.prefix=W()||"fas"),g}({values:n,family:c,styles:en,config:p,canonical:m,givenPrefix:a})),function(d,u,h){let{prefix:g,iconName:b}=h;if(d||!g||!b)return{prefix:g,iconName:b};const k=u==="fa"?ht(b):{},z=_(g,b);return b=k.iconName||z||b,g=k.prefix||g,g!=="far"||en.far||!en.fas||p.autoFetchSvg||(g="fas"),{prefix:g,iconName:b}}(t,a,m))}const Gt=Qe.filter(n=>n!==O||n!==hn),Zt=Object.keys(En).filter(n=>n!==O).map(n=>Object.keys(En[n])).flat();let ke=[],G={};const Z={},Jt=Object.keys(Z);function Un(n,e){for(var t=arguments.length,a=new Array(t>2?t-2:0),r=2;r{e=i.apply(null,[e,...a])}),e}function q(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),a=1;a{r.apply(null,t)})}function H(){const n=arguments[0],e=Array.prototype.slice.call(arguments,1);return Z[n]?Z[n].apply(null,e):void 0}function qn(n){n.prefix==="fa"&&(n.prefix="fas");let{iconName:e}=n;const t=n.prefix||W();if(e)return e=_(t,e)||e,be(bt.definitions,t,e)||be(j.styles,t,e)}const bt=new class{constructor(){this.definitions={}}add(){for(var n=arguments.length,e=new Array(n),t=0;t{this.definitions[r]=s(s({},this.definitions[r]||{}),a[r]),Hn(r,a[r]);const i=ne[O][r];i&&Hn(i,a[r]),gt()})}reset(){this.definitions={}}_pullDefinitions(n,e){const t=e.prefix&&e.iconName&&e.icon?{0:e}:e;return Object.keys(t).map(a=>{const{prefix:r,iconName:i,icon:o}=t[a],l=o[2];n[r]||(n[r]={}),l.length>0&&l.forEach(f=>{typeof f=="string"&&(n[r][f]=o)}),n[r][i]=o}),n}},Qt={i2svg:function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return R?(q("beforeI2svg",n),H("pseudoElements2svg",n),H("i2svg",n)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:e}=n;var t;p.autoReplaceSvg===!1&&(p.autoReplaceSvg=!0),p.observeMutations=!0,t=()=>{$t({autoReplaceSvgRoot:e}),q("watch",n)},R&&(pn?setTimeout(t,0):ot.push(t))}},on={noAuto:()=>{p.autoReplaceSvg=!1,p.observeMutations=!1,q("noAuto")},config:p,dom:Qt,parse:{icon:n=>{if(n===null)return null;if(typeof n=="object"&&n.prefix&&n.iconName)return{prefix:n.prefix,iconName:_(n.prefix,n.iconName)||n.iconName};if(Array.isArray(n)&&n.length===2){const e=n[1].indexOf("fa-")===0?n[1].slice(3):n[1],t=yn(n[0]);return{prefix:t,iconName:_(t,e)||e}}if(typeof n=="string"&&(n.indexOf("".concat(p.cssPrefix,"-"))>-1||n.match(Wt))){const e=vn(n.split(" "),{skipLookups:!0});return{prefix:e.prefix||W(),iconName:_(e.prefix,e.iconName)||e.iconName}}if(typeof n=="string"){const e=W();return{prefix:e,iconName:_(e,n)||n}}}},library:bt,findIconDefinition:qn,toHtml:rn},$t=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:e=v}=n;(Object.keys(j.styles).length>0||p.autoFetchSvg)&&R&&p.autoReplaceSvg&&on.dom.i2svg({node:e})};function xn(n,e){return Object.defineProperty(n,"abstract",{get:e}),Object.defineProperty(n,"html",{get:function(){return n.abstract.map(t=>rn(t))}}),Object.defineProperty(n,"node",{get:function(){if(!R)return;const t=v.createElement("div");return t.innerHTML=n.html,t.children}}),n}function re(n){const{icons:{main:e,mask:t},prefix:a,iconName:r,transform:i,symbol:o,title:l,maskId:f,titleId:c,extra:m,watchable:d=!1}=n,{width:u,height:h}=t.found?t:e,g=Et.includes(a),b=[p.replacementClass,r?"".concat(p.cssPrefix,"-").concat(r):""].filter(y=>m.classes.indexOf(y)===-1).filter(y=>y!==""||!!y).concat(m.classes).join(" ");let k={children:[],attributes:s(s({},m.attributes),{},{"data-prefix":a,"data-icon":r,class:b,role:m.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(u," ").concat(h)})};const z=g&&!~m.classes.indexOf("fa-fw")?{width:"".concat(u/h*16*.0625,"em")}:{};d&&(k.attributes[U]=""),l&&(k.children.push({tag:"title",attributes:{id:k.attributes["aria-labelledby"]||"title-".concat(c||tn())},children:[l]}),delete k.attributes.title);const x=s(s({},k),{},{prefix:a,iconName:r,main:e,mask:t,maskId:f,transform:i,symbol:o,styles:s(s({},z),m.styles)}),{children:w,attributes:M}=t.found&&e.found?H("generateAbstractMask",x)||{children:[],attributes:{}}:H("generateAbstractIcon",x)||{children:[],attributes:{}};return x.children=w,x.attributes=M,o?function(y){let{prefix:A,iconName:L,children:E,attributes:T,symbol:S}=y;const P=S===!0?"".concat(A,"-").concat(p.cssPrefix,"-").concat(L):S;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:s(s({},T),{},{id:P}),children:E}]}]}(x):function(y){let{children:A,main:L,mask:E,attributes:T,styles:S,transform:P}=y;if(te(P)&&L.found&&!E.found){const{width:kn,height:wn}=L,se={x:kn/wn/2,y:.5};T.style=bn(s(s({},S),{},{"transform-origin":"".concat(se.x+P.x/16,"em ").concat(se.y+P.y/16,"em")}))}return[{tag:"svg",attributes:T,children:A}]}(x)}function we(n){const{content:e,width:t,height:a,transform:r,title:i,extra:o,watchable:l=!1}=n,f=s(s(s({},o.attributes),i?{title:i}:{}),{},{class:o.classes.join(" ")});l&&(f[U]="");const c=s({},o.styles);te(r)&&(c.transform=function(u){let{transform:h,width:g=Fn,height:b=Fn,startCentered:k=!1}=u,z="";return z+=k&&Ge?"translate(".concat(h.x/B-g/2,"em, ").concat(h.y/B-b/2,"em) "):k?"translate(calc(-50% + ".concat(h.x/B,"em), calc(-50% + ").concat(h.y/B,"em)) "):"translate(".concat(h.x/B,"em, ").concat(h.y/B,"em) "),z+="scale(".concat(h.size/B*(h.flipX?-1:1),", ").concat(h.size/B*(h.flipY?-1:1),") "),z+="rotate(".concat(h.rotate,"deg) "),z}({transform:r,startCentered:!0,width:t,height:a}),c["-webkit-transform"]=c.transform);const m=bn(c);m.length>0&&(f.style=m);const d=[];return d.push({tag:"span",attributes:f,children:[e]}),i&&d.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),d}const{styles:Mn}=j;function Kn(n){const e=n[0],t=n[1],[a]=n.slice(4);let r=null;return r=Array.isArray(a)?{tag:"g",attributes:{class:"".concat(p.cssPrefix,"-").concat(An.GROUP)},children:[{tag:"path",attributes:{class:"".concat(p.cssPrefix,"-").concat(An.SECONDARY),fill:"currentColor",d:a[0]}},{tag:"path",attributes:{class:"".concat(p.cssPrefix,"-").concat(An.PRIMARY),fill:"currentColor",d:a[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:a}},{found:!0,width:e,height:t,icon:r}}const na={found:!1,width:512,height:512};function Xn(n,e){let t=e;return e==="fa"&&p.styleDefault!==null&&(e=W()),new Promise((a,r)=>{if(t==="fa"){const i=ht(n)||{};n=i.iconName||n,e=i.prefix||e}if(n&&e&&Mn[e]&&Mn[e][n])return a(Kn(Mn[e][n]));!et&&p.showMissingIcons,a(s(s({},na),{},{icon:p.showMissingIcons&&n&&H("missingIconAbstract")||{}}))})}const ze=()=>{},Vn=p.measurePerformance&&sn&&sn.mark&&sn.measure?sn:{mark:ze,measure:ze},$='FA "6.7.2"',ea=n=>{Vn.mark("".concat($," ").concat(n," ends")),Vn.measure("".concat($," ").concat(n),"".concat($," ").concat(n," begins"),"".concat($," ").concat(n," ends"))};var ie=n=>(Vn.mark("".concat($," ").concat(n," begins")),()=>ea(n));const mn=()=>{};function Ae(n){return typeof(n.getAttribute?n.getAttribute(U):null)=="string"}function ta(n){return v.createElementNS("http://www.w3.org/2000/svg",n)}function aa(n){return v.createElement(n)}function yt(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{ceFn:t=n.tag==="svg"?ta:aa}=e;if(typeof n=="string")return v.createTextNode(n);const a=t(n.tag);return Object.keys(n.attributes||[]).forEach(function(r){a.setAttribute(r,n.attributes[r])}),(n.children||[]).forEach(function(r){a.appendChild(yt(r,{ceFn:t}))}),a}const dn={replace:function(n){const e=n[0];if(e.parentNode)if(n[1].forEach(t=>{e.parentNode.insertBefore(yt(t),e)}),e.getAttribute(U)===null&&p.keepOriginalSource){let t=v.createComment(function(a){let r=" ".concat(a.outerHTML," ");return r="".concat(r,"Font Awesome fontawesome.com "),r}(e));e.parentNode.replaceChild(t,e)}else e.remove()},nest:function(n){const e=n[0],t=n[1];if(~ee(e).indexOf(p.replacementClass))return dn.replace(n);const a=new RegExp("".concat(p.cssPrefix,"-.*"));if(delete t[0].attributes.id,t[0].attributes.class){const i=t[0].attributes.class.split(" ").reduce((o,l)=>(l===p.replacementClass||l.match(a)?o.toSvg.push(l):o.toNode.push(l),o),{toNode:[],toSvg:[]});t[0].attributes.class=i.toSvg.join(" "),i.toNode.length===0?e.removeAttribute("class"):e.setAttribute("class",i.toNode.join(" "))}const r=t.map(i=>rn(i)).join(` +`);e.setAttribute(U,""),e.innerHTML=r}};function Le(n){n()}function vt(n,e){const t=typeof e=="function"?e:mn;if(n.length===0)t();else{let a=Le;p.mutateApproach==="async"&&(a=Y.requestAnimationFrame||Le),a(()=>{const r=p.autoReplaceSvg===!0?dn.replace:dn[p.autoReplaceSvg]||dn.replace,i=ie("mutate");n.map(r),i(),t()})}}let oe=!1;function xt(){oe=!0}function Gn(){oe=!1}let gn=null;function Oe(n){if(!me||!p.observeMutations)return;const{treeCallback:e=mn,nodeCallback:t=mn,pseudoElementsCallback:a=mn,observeMutationsRoot:r=v}=n;gn=new me(i=>{if(oe)return;const o=W();J(i).forEach(l=>{if(l.type==="childList"&&l.addedNodes.length>0&&!Ae(l.addedNodes[0])&&(p.searchPseudoElements&&a(l.target),e(l.target)),l.type==="attributes"&&l.target.parentNode&&p.searchPseudoElements&&a(l.target.parentNode),l.type==="attributes"&&Ae(l.target)&&~_t.indexOf(l.attributeName))if(l.attributeName==="class"&&function(c){const m=c.getAttribute?c.getAttribute(Rn):null,d=c.getAttribute?c.getAttribute(Tn):null;return m&&d}(l.target)){const{prefix:c,iconName:m}=vn(ee(l.target));l.target.setAttribute(Rn,c||o),m&&l.target.setAttribute(Tn,m)}else(f=l.target)&&f.classList&&f.classList.contains&&f.classList.contains(p.replacementClass)&&t(l.target);var f})}),R&&gn.observe(r,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}function ra(n){const e=n.getAttribute("data-prefix"),t=n.getAttribute("data-icon"),a=n.innerText!==void 0?n.innerText.trim():"";let r=vn(ee(n));return r.prefix||(r.prefix=W()),e&&t&&(r.prefix=e,r.iconName=t),r.iconName&&r.prefix||(r.prefix&&a.length>0&&(r.iconName=(i=r.prefix,o=n.innerText,(ut[i]||{})[o]||_n(r.prefix,ct(n.innerText)))),!r.iconName&&p.autoFetchSvg&&n.firstChild&&n.firstChild.nodeType===Node.TEXT_NODE&&(r.iconName=n.firstChild.data)),r;var i,o}function Me(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0};const{iconName:t,prefix:a,rest:r}=ra(n),i=function(f){const c=J(f.attributes).reduce((u,h)=>(u.name!=="class"&&u.name!=="style"&&(u[h.name]=h.value),u),{}),m=f.getAttribute("title"),d=f.getAttribute("data-fa-title-id");return p.autoA11y&&(m?c["aria-labelledby"]="".concat(p.replacementClass,"-title-").concat(d||tn()):(c["aria-hidden"]="true",c.focusable="false")),c}(n),o=Un("parseNodeAttributes",{},n);let l=e.styleParser?function(f){const c=f.getAttribute("style");let m=[];return c&&(m=c.split(";").reduce((d,u)=>{const h=u.split(":"),g=h[0],b=h.slice(1);return g&&b.length>0&&(d[g]=b.join(":").trim()),d},{})),m}(n):[];return s({iconName:t,title:n.getAttribute("title"),titleId:n.getAttribute("data-fa-title-id"),prefix:a,transform:C,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:r,styles:l,attributes:i}},o)}const{styles:ia}=j;function kt(n){const e=p.autoReplaceSvg==="nest"?Me(n,{styleParser:!1}):Me(n);return~e.extra.classes.indexOf(at)?H("generateLayersText",n,e):H("generateSvgReplacementMutation",n,e)}function Ne(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!R)return Promise.resolve();const t=v.documentElement.classList,a=m=>t.add("".concat(de,"-").concat(m)),r=m=>t.remove("".concat(de,"-").concat(m)),i=p.autoFetchSvg?[...St,...In]:Je.concat(Object.keys(ia));i.includes("fa")||i.push("fa");const o=[".".concat(at,":not([").concat(U,"])")].concat(i.map(m=>".".concat(m,":not([").concat(U,"])"))).join(", ");if(o.length===0)return Promise.resolve();let l=[];try{l=J(n.querySelectorAll(o))}catch{}if(!(l.length>0))return Promise.resolve();a("pending"),r("complete");const f=ie("onTree"),c=l.reduce((m,d)=>{try{const u=kt(d);u&&m.push(u)}catch(u){et||u.name}return m},[]);return new Promise((m,d)=>{Promise.all(c).then(u=>{vt(u,()=>{a("active"),a("complete"),r("pending"),typeof e=="function"&&e(),f(),m()})}).catch(u=>{f(),d(u)})})}function oa(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;kt(n).then(t=>{t&&vt([t],e)})}const sa=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:t=C,symbol:a=!1,mask:r=null,maskId:i=null,title:o=null,titleId:l=null,classes:f=[],attributes:c={},styles:m={}}=e;if(!n)return;const{prefix:d,iconName:u,icon:h}=n;return xn(s({type:"icon"},n),()=>(q("beforeDOMElementCreation",{iconDefinition:n,params:e}),p.autoA11y&&(o?c["aria-labelledby"]="".concat(p.replacementClass,"-title-").concat(l||tn()):(c["aria-hidden"]="true",c.focusable="false")),re({icons:{main:Kn(h),mask:r?Kn(r.icon):{found:!1,width:null,height:null,icon:{}}},prefix:d,iconName:u,transform:s(s({},C),t),symbol:a,title:o,maskId:i,titleId:l,extra:{attributes:c,styles:m,classes:f}})))};var ca={mixout(){return{icon:(n=sa,function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=(e||{}).icon?e:qn(e||{});let{mask:r}=t;return r&&(r=(r||{}).icon?r:qn(r||{})),n(a,s(s({},t),{},{mask:r}))})};var n},hooks:()=>({mutationObserverCallbacks:n=>(n.treeCallback=Ne,n.nodeCallback=oa,n)}),provides(n){n.i2svg=function(e){const{node:t=v,callback:a=()=>{}}=e;return Ne(t,a)},n.generateSvgReplacementMutation=function(e,t){const{iconName:a,title:r,titleId:i,prefix:o,transform:l,symbol:f,mask:c,maskId:m,extra:d}=t;return new Promise((u,h)=>{Promise.all([Xn(a,o),c.iconName?Xn(c.iconName,c.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(g=>{let[b,k]=g;u([e,re({icons:{main:b,mask:k},prefix:o,iconName:a,transform:l,symbol:f,maskId:m,title:r,titleId:i,extra:d,watchable:!0})])}).catch(h)})},n.generateAbstractIcon=function(e){let{children:t,attributes:a,main:r,transform:i,styles:o}=e;const l=bn(o);let f;return l.length>0&&(a.style=l),te(i)&&(f=H("generateAbstractTransformGrouping",{main:r,transform:i,containerWidth:r.width,iconWidth:r.width})),t.push(f||r.icon),{children:t,attributes:a}}}},la={mixout:()=>({layer(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{classes:t=[]}=e;return xn({type:"layer"},()=>{q("beforeDOMElementCreation",{assembler:n,params:e});let a=[];return n(r=>{Array.isArray(r)?r.map(i=>{a=a.concat(i.abstract)}):a=a.concat(r.abstract)}),[{tag:"span",attributes:{class:["".concat(p.cssPrefix,"-layers"),...t].join(" ")},children:a}]})}})},fa={mixout:()=>({counter(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{title:t=null,classes:a=[],attributes:r={},styles:i={}}=e;return xn({type:"counter",content:n},()=>(q("beforeDOMElementCreation",{content:n,params:e}),function(o){const{content:l,title:f,extra:c}=o,m=s(s(s({},c.attributes),f?{title:f}:{}),{},{class:c.classes.join(" ")}),d=bn(c.styles);d.length>0&&(m.style=d);const u=[];return u.push({tag:"span",attributes:m,children:[l]}),f&&u.push({tag:"span",attributes:{class:"sr-only"},children:[f]}),u}({content:n.toString(),title:t,extra:{attributes:r,styles:i,classes:["".concat(p.cssPrefix,"-layers-counter"),...a]}})))}})},ua={mixout:()=>({text(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:t=C,title:a=null,classes:r=[],attributes:i={},styles:o={}}=e;return xn({type:"text",content:n},()=>(q("beforeDOMElementCreation",{content:n,params:e}),we({content:n,transform:s(s({},C),t),title:a,extra:{attributes:i,styles:o,classes:["".concat(p.cssPrefix,"-layers-text"),...r]}})))}}),provides(n){n.generateLayersText=function(e,t){const{title:a,transform:r,extra:i}=t;let o=null,l=null;if(Ge){const f=parseInt(getComputedStyle(e).fontSize,10),c=e.getBoundingClientRect();o=c.width/f,l=c.height/f}return p.autoA11y&&!a&&(i.attributes["aria-hidden"]="true"),Promise.resolve([e,we({content:e.innerHTML,width:o,height:l,transform:r,title:a,extra:i,watchable:!0})])}}};const ma=new RegExp('"',"ug"),Pe=[1105920,1112319],Se=s(s(s(s({},{FontAwesome:{normal:"fas",400:"fas"}}),{"Font Awesome 6 Free":{900:"fas",400:"far"},"Font Awesome 6 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 6 Brands":{400:"fab",normal:"fab"},"Font Awesome 6 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 6 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 6 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"}}),{"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}}),{"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}}),Zn=Object.keys(Se).reduce((n,e)=>(n[e.toLowerCase()]=Se[e],n),{}),da=Object.keys(Zn).reduce((n,e)=>{const t=Zn[e];return n[e]=t[900]||[...Object.entries(t)][0][1],n},{});function Ce(n,e){const t="".concat("data-fa-pseudo-element-pending").concat(e.replace(":","-"));return new Promise((a,r)=>{if(n.getAttribute(t)!==null)return a();const i=J(n.children).filter(d=>d.getAttribute(Dn)===e)[0],o=Y.getComputedStyle(n,e),l=o.getPropertyValue("font-family"),f=l.match(Ht),c=o.getPropertyValue("font-weight"),m=o.getPropertyValue("content");if(i&&!f)return n.removeChild(i),a();if(f&&m!=="none"&&m!==""){const d=o.getPropertyValue("content");let u=function(x,w){const M=x.replace(/^['"]|['"]$/g,"").toLowerCase(),y=parseInt(w),A=isNaN(y)?"normal":y;return(Zn[M]||{})[A]||da[M]}(l,c);const{value:h,isSecondary:g}=function(x){const w=x.replace(ma,""),M=function(L,E){const T=L.length;let S,P=L.charCodeAt(E);return P>=55296&&P<=56319&&T>E+1&&(S=L.charCodeAt(E+1),S>=56320&&S<=57343)?1024*(P-55296)+S-56320+65536:P}(w,0),y=M>=Pe[0]&&M<=Pe[1],A=w.length===2&&w[0]===w[1];return{value:ct(A?w[0]:w),isSecondary:y||A}}(d),b=f[0].startsWith("FontAwesome");let k=_n(u,h),z=k;if(b){const x=function(w){const M=dt[w],y=_n("fas",w);return M||(y?{prefix:"fas",iconName:y}:null)||{prefix:null,iconName:null}}(h);x.iconName&&x.prefix&&(k=x.iconName,u=x.prefix)}if(!k||g||i&&i.getAttribute(Rn)===u&&i.getAttribute(Tn)===z)a();else{n.setAttribute(t,z),i&&n.removeChild(i);const x={iconName:null,title:null,titleId:null,prefix:null,transform:C,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},{extra:w}=x;w.attributes[Dn]=e,Xn(k,u).then(M=>{const y=re(s(s({},x),{},{icons:{main:M,mask:{prefix:null,iconName:null,rest:[]}},prefix:u,iconName:z,extra:w,watchable:!0})),A=v.createElementNS("http://www.w3.org/2000/svg","svg");e==="::before"?n.insertBefore(A,n.firstChild):n.appendChild(A),A.outerHTML=y.map(L=>rn(L)).join(` +`),n.removeAttribute(t),a()}).catch(r)}}else a()})}function pa(n){return Promise.all([Ce(n,"::before"),Ce(n,"::after")])}function ga(n){return!(n.parentNode===document.head||~Bt.indexOf(n.tagName.toUpperCase())||n.getAttribute(Dn)||n.parentNode&&n.parentNode.tagName==="svg")}function je(n){if(R)return new Promise((e,t)=>{const a=J(n.querySelectorAll("*")).filter(ga).map(pa),r=ie("searchPseudoElements");xt(),Promise.all(a).then(()=>{r(),Gn(),e()}).catch(()=>{r(),Gn(),t()})})}let Ee=!1;const Ie=n=>n.toLowerCase().split(" ").reduce((e,t)=>{const a=t.toLowerCase().split("-"),r=a[0];let i=a.slice(1).join("-");if(r&&i==="h")return e.flipX=!0,e;if(r&&i==="v")return e.flipY=!0,e;if(i=parseFloat(i),isNaN(i))return e;switch(r){case"grow":e.size=e.size+i;break;case"shrink":e.size=e.size-i;break;case"left":e.x=e.x-i;break;case"right":e.x=e.x+i;break;case"up":e.y=e.y-i;break;case"down":e.y=e.y+i;break;case"rotate":e.rotate=e.rotate+i}return e},{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0}),Nn={x:0,y:0,width:"100%",height:"100%"};function Fe(n){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return n.attributes&&(n.attributes.fill||e)&&(n.attributes.fill="black"),n}(function(n,e){let{mixoutsTo:t}=e;ke=n,G={},Object.keys(Z).forEach(a=>{Jt.indexOf(a)===-1&&delete Z[a]}),ke.forEach(a=>{const r=a.mixout?a.mixout():{};if(Object.keys(r).forEach(i=>{typeof r[i]=="function"&&(t[i]=r[i]),typeof r[i]=="object"&&Object.keys(r[i]).forEach(o=>{t[i]||(t[i]={}),t[i][o]=r[i][o]})}),a.hooks){const i=a.hooks();Object.keys(i).forEach(o=>{G[o]||(G[o]=[]),G[o].push(i[o])})}a.provides&&a.provides(Z)})})([qt,ca,la,fa,ua,{hooks:()=>({mutationObserverCallbacks:n=>(n.pseudoElementsCallback=je,n)}),provides(n){n.pseudoElements2svg=function(e){const{node:t=v}=e;p.searchPseudoElements&&je(t)}}},{mixout:()=>({dom:{unwatch(){xt(),Ee=!0}}}),hooks:()=>({bootstrap(){Oe(Un("mutationObserverCallbacks",{}))},noAuto(){gn&&gn.disconnect()},watch(n){const{observeMutationsRoot:e}=n;Ee?Gn():Oe(Un("mutationObserverCallbacks",{observeMutationsRoot:e}))}})},{mixout:()=>({parse:{transform:n=>Ie(n)}}),hooks:()=>({parseNodeAttributes(n,e){const t=e.getAttribute("data-fa-transform");return t&&(n.transform=Ie(t)),n}}),provides(n){n.generateAbstractTransformGrouping=function(e){let{main:t,transform:a,containerWidth:r,iconWidth:i}=e;const o={transform:"translate(".concat(r/2," 256)")},l="translate(".concat(32*a.x,", ").concat(32*a.y,") "),f="scale(".concat(a.size/16*(a.flipX?-1:1),", ").concat(a.size/16*(a.flipY?-1:1),") "),c="rotate(".concat(a.rotate," 0 0)"),m={outer:o,inner:{transform:"".concat(l," ").concat(f," ").concat(c)},path:{transform:"translate(".concat(i/2*-1," -256)")}};return{tag:"g",attributes:s({},m.outer),children:[{tag:"g",attributes:s({},m.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:s(s({},t.icon.attributes),m.path)}]}]}}}},{hooks:()=>({parseNodeAttributes(n,e){const t=e.getAttribute("data-fa-mask"),a=t?vn(t.split(" ").map(r=>r.trim())):{prefix:null,iconName:null,rest:[]};return a.prefix||(a.prefix=W()),n.mask=a,n.maskId=e.getAttribute("data-fa-mask-id"),n}}),provides(n){n.generateAbstractMask=function(e){let{children:t,attributes:a,main:r,mask:i,maskId:o,transform:l}=e;const{width:f,icon:c}=r,{width:m,icon:d}=i,u=function(A){let{transform:L,containerWidth:E,iconWidth:T}=A;const S={transform:"translate(".concat(E/2," 256)")},P="translate(".concat(32*L.x,", ").concat(32*L.y,") "),kn="scale(".concat(L.size/16*(L.flipX?-1:1),", ").concat(L.size/16*(L.flipY?-1:1),") "),wn="rotate(".concat(L.rotate," 0 0)");return{outer:S,inner:{transform:"".concat(P," ").concat(kn," ").concat(wn)},path:{transform:"translate(".concat(T/2*-1," -256)")}}}({transform:l,containerWidth:m,iconWidth:f}),h={tag:"rect",attributes:s(s({},Nn),{},{fill:"white"})},g=c.children?{children:c.children.map(Fe)}:{},b={tag:"g",attributes:s({},u.inner),children:[Fe(s({tag:c.tag,attributes:s(s({},c.attributes),u.path)},g))]},k={tag:"g",attributes:s({},u.outer),children:[b]},z="mask-".concat(o||tn()),x="clip-".concat(o||tn()),w={tag:"mask",attributes:s(s({},Nn),{},{id:z,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[h,k]},M={tag:"defs",children:[{tag:"clipPath",attributes:{id:x},children:(y=d,y.tag==="g"?y.children:[y])},w]};var y;return t.push(M,{tag:"rect",attributes:s({fill:"currentColor","clip-path":"url(#".concat(x,")"),mask:"url(#".concat(z,")")},Nn)}),{children:t,attributes:a}}}},{provides(n){let e=!1;Y.matchMedia&&(e=Y.matchMedia("(prefers-reduced-motion: reduce)").matches),n.missingIconAbstract=function(){const t=[],a={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};t.push({tag:"path",attributes:s(s({},a),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});const i=s(s({},r),{},{attributeName:"opacity"}),o={tag:"circle",attributes:s(s({},a),{},{cx:"256",cy:"364",r:"28"}),children:[]};return e||o.children.push({tag:"animate",attributes:s(s({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:s(s({},i),{},{values:"1;0;1;1;0;1;"})}),t.push(o),t.push({tag:"path",attributes:s(s({},a),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:e?[]:[{tag:"animate",attributes:s(s({},i),{},{values:"1;0;0;0;0;1;"})}]}),e||t.push({tag:"path",attributes:s(s({},a),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:s(s({},i),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:t}}}},{hooks:()=>({parseNodeAttributes(n,e){const t=e.getAttribute("data-fa-symbol"),a=t!==null&&(t===""||t);return n.symbol=a,n}})}],{mixoutsTo:on});const za=on.library,Jn=on.parse,ha=on.icon;function De(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);e&&(a=a.filter(function(r){return Object.getOwnPropertyDescriptor(n,r).enumerable})),t.push.apply(t,a)}return t}function D(n){for(var e=1;e=0)continue;f[c]=o[c]}return f}(n,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(r[t]=n[t])}return r}var Pn,Re,X,ln,Sn,fn,Q,Te,Be,Ye,We,He,_e,Ue,un,Cn,va=typeof globalThis<"u"?globalThis:typeof window<"u"?window:ce!==void 0?ce:typeof self<"u"?self:{},wt={exports:{}};Pn=wt,Re=va,X=function(n,e,t){if(!Be(e)||We(e)||He(e)||_e(e)||Te(e))return e;var a,r=0,i=0;if(Ye(e))for(a=[],i=e.length;r1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof n=="string")return n;var a=(n.children||[]).map(function(f){return zt(f)}),r=Object.keys(n.attributes||{}).reduce(function(f,c){var m=n.attributes[c];switch(c){case"class":f.class=m.split(/\s+/).reduce(function(d,u){return d[u]=!0,d},{});break;case"style":f.style=m.split(";").map(function(d){return d.trim()}).filter(function(d){return d}).reduce(function(d,u){var h=u.indexOf(":"),g=xa.camelize(u.slice(0,h)),b=u.slice(h+1).trim();return d[g]=b,d},{});break;default:f.attrs[c]=m}return f},{attrs:{},class:{},style:{}});t.class;var i=t.style,o=i===void 0?{}:i,l=ya(t,ka);return Mt(n.tag,D(D(D({},e),{},{class:r.class,style:D(D({},r.style),o)},r.attrs),l),a)}var At=!1;try{At=!0}catch{}function jn(n,e){return Array.isArray(e)&&e.length>0||!Array.isArray(e)&&e?N({},n,e):{}}function qe(n){return n&&Qn(n)==="object"&&n.prefix&&n.iconName&&n.icon?n:Jn.icon?Jn.icon(n):n===null?null:Qn(n)==="object"&&n.prefix&&n.iconName?n:Array.isArray(n)&&n.length===2?{prefix:n[0],iconName:n[1]}:typeof n=="string"?{prefix:"fas",iconName:n}:void 0}var Aa=Lt({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(n){return[!0,!1,"horizontal","vertical","both"].indexOf(n)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},maskId:{type:String,default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(n){return["right","left"].indexOf(n)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(n){return[90,180,270].indexOf(Number.parseInt(n,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(n){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(n)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},titleId:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beat:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1}},setup:function(n,e){var t=e.attrs,a=K(function(){return qe(n.icon)}),r=K(function(){return jn("classes",function(c){var m,d=(N(N(N(N(N(N(N(N(N(N(m={"fa-spin":c.spin,"fa-pulse":c.pulse,"fa-fw":c.fixedWidth,"fa-border":c.border,"fa-li":c.listItem,"fa-inverse":c.inverse,"fa-flip":c.flip===!0,"fa-flip-horizontal":c.flip==="horizontal"||c.flip==="both","fa-flip-vertical":c.flip==="vertical"||c.flip==="both"},"fa-".concat(c.size),c.size!==null),"fa-rotate-".concat(c.rotation),c.rotation!==null),"fa-pull-".concat(c.pull),c.pull!==null),"fa-swap-opacity",c.swapOpacity),"fa-bounce",c.bounce),"fa-shake",c.shake),"fa-beat",c.beat),"fa-fade",c.fade),"fa-beat-fade",c.beatFade),"fa-flash",c.flash),N(N(m,"fa-spin-pulse",c.spinPulse),"fa-spin-reverse",c.spinReverse));return Object.keys(d).map(function(u){return d[u]?u:null}).filter(function(u){return u})}(n))}),i=K(function(){return jn("transform",typeof n.transform=="string"?Jn.transform(n.transform):n.transform)}),o=K(function(){return jn("mask",qe(n.mask))}),l=K(function(){return ha(a.value,D(D(D(D({},r.value),i.value),o.value),{},{symbol:n.symbol,title:n.title,titleId:n.titleId,maskId:n.maskId}))});Ot(l,function(c){if(!c)return function(){var m;!At&&console&&typeof console.error=="function"&&(m=console).error.apply(m,arguments)}("Could not find one or more icon(s)",a.value,o.value)},{immediate:!0});var f=K(function(){return l.value?zt(l.value.abstract[0],{},t):null});return function(){return f.value}}});/*! + * Font Awesome Free 6.7.2 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 2024 Fonticons, Inc. + */const La={prefix:"fas",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm64 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 400l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},Oa={prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z"]},Ma={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},Na={prefix:"fas",iconName:"star",icon:[576,512,[11088,61446],"f005","M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"]},Pa={prefix:"fas",iconName:"charging-station",icon:[576,512,[],"f5e7","M96 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-144 16 0c22.1 0 40 17.9 40 40l0 32c0 39.8 32.2 72 72 72s72-32.2 72-72l0-123.7c32.5-10.2 56-40.5 56-76.3l0-32c0-8.8-7.2-16-16-16l-16 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-32 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-16 0c-8.8 0-16 7.2-16 16l0 32c0 35.8 23.5 66.1 56 76.3L472 376c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-48.6-39.4-88-88-88l-16 0 0-192c0-35.3-28.7-64-64-64L96 0zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9 57.8 0c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9L96 208c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z"]},Sa={prefix:"fas",iconName:"car-battery",icon:[512,512,["battery-car"],"f5df","M80 96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-32zM80 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16z"]},Ca={prefix:"fas",iconName:"plug-circle-bolt",icon:[576,512,[],"e55b","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},ja={prefix:"fas",iconName:"solar-panel",icon:[640,512,[],"f5ba","M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384l217 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 217 0c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0L122.2 0zM260.9 64l118.2 0 10.4 104-139 0L260.9 64zM202.3 168l-100.8 0L122.2 64l90.4 0L202.3 168zM91.8 216l105.6 0L187.1 320 71 320 91.8 216zm153.9 0l148.6 0 10.4 104-169.4 0 10.4-104zm196.8 0l105.6 0L569 320l-116 0L442.5 216zm96-48l-100.8 0L427.3 64l90.4 0 31.4-6.3L517.8 64l20.8 104z"]},Ea={prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48C576 64.5 511.5 0 432 0S288 64.5 288 144l0 48L64 192c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-32 0 0-48z"]},Ia={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Fa={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Da={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]},Ra={prefix:"fas",iconName:"plug-circle-check",icon:[576,512,[],"e55c","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},Ta={prefix:"fas",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},Ba={prefix:"fas",iconName:"power-off",icon:[512,512,[9211],"f011","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z"]},Ya={prefix:"fas",iconName:"calculator",icon:[384,512,[128425],"f1ec","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},Wa={prefix:"fas",iconName:"delete-left",icon:[576,512,[9003,"backspace"],"f55a","M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},Ha={prefix:"fas",iconName:"house",icon:[576,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"]},_a={prefix:"fas",iconName:"calendar-week",icon:[448,512,[],"f784","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L80 256z"]},Ua={prefix:"fas",iconName:"bolt",icon:[448,512,[9889,"zap"],"f0e7","M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z"]},qa={prefix:"fas",iconName:"car",icon:[512,512,[128664,"automobile"],"f1b9","M135.2 117.4L109.1 192l293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 144 0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L96 400l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Ka={prefix:"fas",iconName:"plug-circle-xmark",icon:[576,512,[],"e560","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},Xa={prefix:"fas",iconName:"eraser",icon:[576,512,[],"f12d","M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7L288 480l9.4 0L512 480c17.7 0 32-14.3 32-32s-14.3-32-32-32l-124.1 0L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416l-9.4 0-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z"]},Va={prefix:"fas",iconName:"gauge-high",icon:[512,512,[62461,"tachometer-alt","tachometer-alt-fast"],"f625","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Ga={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Za={prefix:"fas",iconName:"calendar-day",icon:[448,512,[],"f783","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-96 0z"]},Ja={prefix:"fas",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},Qa={prefix:"far",iconName:"star",icon:[576,512,[11088,61446],"f005","M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"]},$a={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]};export{Ra as A,Ca as B,Da as C,Ba as D,Aa as F,Xa as a,Oa as b,Ea as c,Va as d,Sa as e,Wa as f,ja as g,Ha as h,Pa as i,Ya as j,Ia as k,za as l,qa as m,Ma as n,Ja as o,Ga as p,Fa as q,Na as r,Qa as s,Ta as t,$a as u,Ua as v,Za as w,_a as x,La as y,Ka as z}; diff --git a/packages/modules/display_themes/cards/web/assets/vendor-fortawesome-DhL64LM6.js b/packages/modules/display_themes/cards/web/assets/vendor-fortawesome-DhL64LM6.js deleted file mode 100644 index 29a29263dc..0000000000 --- a/packages/modules/display_themes/cards/web/assets/vendor-fortawesome-DhL64LM6.js +++ /dev/null @@ -1,555 +0,0 @@ -import{g as fe,d as zt,c as J,w as Lt,h as At}from"./vendor-CFVb6_YQ.js";const ue=()=>{};let te={},qe={},Ke=null,Xe={mark:ue,measure:ue};try{typeof window<"u"&&(te=window),typeof document<"u"&&(qe=document),typeof MutationObserver<"u"&&(Ke=MutationObserver),typeof performance<"u"&&(Xe=performance)}catch{}const{userAgent:me=""}=te.navigator||{},_=te,g=qe,de=Ke,pn=Xe;_.document;const B=!!g.documentElement&&!!g.head&&typeof g.addEventListener=="function"&&typeof g.createElement=="function",Ve=~me.indexOf("MSIE")||~me.indexOf("Trident/");var h="classic",Ge="duotone",O="sharp",C="sharp-duotone",Nt=[h,Ge,O,C],Mt={fak:"kit","fa-kit":"kit"},Ot={fakd:"kit-duotone","fa-kit-duotone":"kit-duotone"},Ze={classic:{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands"},sharp:{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"},"sharp-duotone":{fa:"solid",fasds:"solid","fa-solid":"solid"}},Je=[1,2,3,4,5,6,7,8,9,10],Ct=Je.concat([11,12,13,14,15,16,17,18,19,20]),on={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},Pt=[...Object.keys({classic:["fas","far","fal","fat"],sharp:["fass","fasr","fasl","fast"],"sharp-duotone":["fasds"]}),"solid","regular","light","thin","duotone","brands","2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",on.GROUP,on.SWAP_OPACITY,on.PRIMARY,on.SECONDARY].concat(Je.map(n=>"".concat(n,"x"))).concat(Ct.map(n=>"w-".concat(n))),St={kit:"fak"},jt={"kit-duotone":"fakd"};const R="___FONT_AWESOME___",Dn=16,Qe="svg-inline--fa",G="data-fa-i2svg",Tn="data-fa-pseudo-element",Bn="data-prefix",Yn="data-icon",pe="fontawesome-i2svg",Et=["HTML","HEAD","STYLE","SCRIPT"],$e=(()=>{try{return!0}catch{return!1}})(),nt=[h,O,C];function un(n){return new Proxy(n,{get:(e,t)=>t in e?e[t]:e[h]})}const et={...Ze};et[h]={...Ze[h],...Mt,...Ot};const X=un(et),Wn={classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds"}};Wn[h]={...Wn[h],...St,...jt};const cn=un(Wn),Hn={classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid"}};Hn[h]={...Hn[h],fak:"fa-kit"};const V=un(Hn),_n={classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds"}};_n[h]={..._n[h],"fa-kit":"fak"};const Ft=un(_n),It=/fa(s|r|l|t|d|b|k|kd|ss|sr|sl|st|sds)?[\-\ ]/,tt="fa-layers-text",Rt=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i;un({classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds"}});const Dt=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],On=on,Q=new Set;Object.keys(cn[h]).map(Q.add.bind(Q)),Object.keys(cn[O]).map(Q.add.bind(Q)),Object.keys(cn[C]).map(Q.add.bind(Q));const Tt=["kit",...Pt],ln=_.FontAwesomeConfig||{};g&&typeof g.querySelector=="function"&&[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(n=>{let[e,t]=n;const a=function(r){return r===""||r!=="false"&&(r==="true"||r)}(function(r){var i=g.querySelector("script["+r+"]");if(i)return i.getAttribute(r)}(e));a!=null&&(ln[t]=a)});const at={styleDefault:"solid",familyDefault:"classic",cssPrefix:"fa",replacementClass:Qe,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};ln.familyPrefix&&(ln.cssPrefix=ln.familyPrefix);const nn={...at,...ln};nn.autoReplaceSvg||(nn.observeMutations=!1);const f={};Object.keys(at).forEach(n=>{Object.defineProperty(f,n,{enumerable:!0,set:function(e){nn[n]=e,Un.forEach(t=>t(f))},get:function(){return nn[n]}})}),Object.defineProperty(f,"familyPrefix",{enumerable:!0,set:function(n){nn.cssPrefix=n,Un.forEach(e=>e(f))},get:function(){return nn.cssPrefix}}),_.FontAwesomeConfig=f;const Un=[],W=Dn,E={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function fn(){let n=12,e="";for(;n-- >0;)e+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return e}function an(n){const e=[];for(let t=(n||[]).length>>>0;t--;)e[t]=n[t];return e}function ae(n){return n.classList?an(n.classList):(n.getAttribute("class")||"").split(" ").filter(e=>e)}function ge(n){return"".concat(n).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function wn(n){return Object.keys(n||{}).reduce((e,t)=>e+"".concat(t,": ").concat(n[t].trim(),";"),"")}function re(n){return n.size!==E.size||n.x!==E.x||n.y!==E.y||n.rotate!==E.rotate||n.flipX||n.flipY}function rt(){const n="fa",e=Qe,t=f.cssPrefix,a=f.replacementClass;let r=`:root, :host { - --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"; - --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"; - --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro"; - --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro"; - --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone"; - --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"; - --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp"; - --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp"; - --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp"; - --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp"; - --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone"; -} - -svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa { - overflow: visible; - box-sizing: content-box; -} - -.svg-inline--fa { - display: var(--fa-display, inline-block); - height: 1em; - overflow: visible; - vertical-align: -0.125em; -} -.svg-inline--fa.fa-2xs { - vertical-align: 0.1em; -} -.svg-inline--fa.fa-xs { - vertical-align: 0em; -} -.svg-inline--fa.fa-sm { - vertical-align: -0.0714285705em; -} -.svg-inline--fa.fa-lg { - vertical-align: -0.2em; -} -.svg-inline--fa.fa-xl { - vertical-align: -0.25em; -} -.svg-inline--fa.fa-2xl { - vertical-align: -0.3125em; -} -.svg-inline--fa.fa-pull-left { - margin-right: var(--fa-pull-margin, 0.3em); - width: auto; -} -.svg-inline--fa.fa-pull-right { - margin-left: var(--fa-pull-margin, 0.3em); - width: auto; -} -.svg-inline--fa.fa-li { - width: var(--fa-li-width, 2em); - top: 0.25em; -} -.svg-inline--fa.fa-fw { - width: var(--fa-fw-width, 1.25em); -} - -.fa-layers svg.svg-inline--fa { - bottom: 0; - left: 0; - margin: auto; - position: absolute; - right: 0; - top: 0; -} - -.fa-layers-counter, .fa-layers-text { - display: inline-block; - position: absolute; - text-align: center; -} - -.fa-layers { - display: inline-block; - height: 1em; - position: relative; - text-align: center; - vertical-align: -0.125em; - width: 1em; -} -.fa-layers svg.svg-inline--fa { - transform-origin: center center; -} - -.fa-layers-text { - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - transform-origin: center center; -} - -.fa-layers-counter { - background-color: var(--fa-counter-background-color, #ff253a); - border-radius: var(--fa-counter-border-radius, 1em); - box-sizing: border-box; - color: var(--fa-inverse, #fff); - line-height: var(--fa-counter-line-height, 1); - max-width: var(--fa-counter-max-width, 5em); - min-width: var(--fa-counter-min-width, 1.5em); - overflow: hidden; - padding: var(--fa-counter-padding, 0.25em 0.5em); - right: var(--fa-right, 0); - text-overflow: ellipsis; - top: var(--fa-top, 0); - transform: scale(var(--fa-counter-scale, 0.25)); - transform-origin: top right; -} - -.fa-layers-bottom-right { - bottom: var(--fa-bottom, 0); - right: var(--fa-right, 0); - top: auto; - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: bottom right; -} - -.fa-layers-bottom-left { - bottom: var(--fa-bottom, 0); - left: var(--fa-left, 0); - right: auto; - top: auto; - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: bottom left; -} - -.fa-layers-top-right { - top: var(--fa-top, 0); - right: var(--fa-right, 0); - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: top right; -} - -.fa-layers-top-left { - left: var(--fa-left, 0); - right: auto; - top: var(--fa-top, 0); - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: top left; -} - -.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: 0.625em; - line-height: 0.1em; - vertical-align: 0.225em; -} - -.fa-xs { - font-size: 0.75em; - line-height: 0.0833333337em; - vertical-align: 0.125em; -} - -.fa-sm { - font-size: 0.875em; - line-height: 0.0714285718em; - vertical-align: 0.0535714295em; -} - -.fa-lg { - font-size: 1.25em; - line-height: 0.05em; - vertical-align: -0.075em; -} - -.fa-xl { - font-size: 1.5em; - line-height: 0.0416666682em; - vertical-align: -0.125em; -} - -.fa-2xl { - font-size: 2em; - line-height: 0.03125em; - vertical-align: -0.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(-1 * var(--fa-li-width, 2em)); - position: absolute; - text-align: center; - width: var(--fa-li-width, 2em); - line-height: inherit; -} - -.fa-border { - border-color: var(--fa-border-color, #eee); - border-radius: var(--fa-border-radius, 0.1em); - border-style: var(--fa-border-style, solid); - border-width: var(--fa-border-width, 0.08em); - padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); -} - -.fa-pull-left { - float: left; - margin-right: var(--fa-pull-margin, 0.3em); -} - -.fa-pull-right { - float: right; - margin-left: var(--fa-pull-margin, 0.3em); -} - -.fa-beat { - animation-name: fa-beat; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); -} - -.fa-bounce { - animation-name: fa-bounce; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); -} - -.fa-fade { - animation-name: fa-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); -} - -.fa-beat-fade { - animation-name: fa-beat-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); -} - -.fa-flip { - animation-name: fa-flip; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); -} - -.fa-shake { - animation-name: fa-shake; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); -} - -.fa-spin { - animation-name: fa-spin; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 2s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); -} - -.fa-spin-reverse { - --fa-animation-direction: reverse; -} - -.fa-pulse, -.fa-spin-pulse { - animation-name: fa-spin; - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, steps(8)); -} - -@media (prefers-reduced-motion: reduce) { - .fa-beat, -.fa-bounce, -.fa-fade, -.fa-beat-fade, -.fa-flip, -.fa-pulse, -.fa-shake, -.fa-spin, -.fa-spin-pulse { - animation-delay: -1ms; - animation-duration: 1ms; - animation-iteration-count: 1; - transition-delay: 0s; - transition-duration: 0s; - } -} -@keyframes fa-beat { - 0%, 90% { - transform: scale(1); - } - 45% { - transform: scale(var(--fa-beat-scale, 1.25)); - } -} -@keyframes fa-bounce { - 0% { - transform: scale(1, 1) translateY(0); - } - 10% { - transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); - } - 30% { - transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); - } - 50% { - transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); - } - 57% { - transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); - } - 64% { - transform: scale(1, 1) translateY(0); - } - 100% { - transform: scale(1, 1) translateY(0); - } -} -@keyframes fa-fade { - 50% { - opacity: var(--fa-fade-opacity, 0.4); - } -} -@keyframes fa-beat-fade { - 0%, 100% { - opacity: var(--fa-beat-fade-opacity, 0.4); - transform: scale(1); - } - 50% { - opacity: 1; - transform: scale(var(--fa-beat-fade-scale, 1.125)); - } -} -@keyframes fa-flip { - 50% { - transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); - } -} -@keyframes fa-shake { - 0% { - transform: rotate(-15deg); - } - 4% { - transform: rotate(15deg); - } - 8%, 24% { - transform: rotate(-18deg); - } - 12%, 28% { - transform: rotate(18deg); - } - 16% { - transform: rotate(-22deg); - } - 20% { - transform: rotate(22deg); - } - 32% { - transform: rotate(-12deg); - } - 36% { - transform: rotate(12deg); - } - 40%, 100% { - transform: rotate(0deg); - } -} -@keyframes fa-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -.fa-rotate-90 { - transform: rotate(90deg); -} - -.fa-rotate-180 { - transform: rotate(180deg); -} - -.fa-rotate-270 { - transform: rotate(270deg); -} - -.fa-flip-horizontal { - transform: scale(-1, 1); -} - -.fa-flip-vertical { - transform: scale(1, -1); -} - -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1, -1); -} - -.fa-rotate-by { - transform: rotate(var(--fa-rotate-angle, 0)); -} - -.fa-stack { - display: inline-block; - vertical-align: middle; - height: 2em; - position: relative; - width: 2.5em; -} - -.fa-stack-1x, -.fa-stack-2x { - bottom: 0; - left: 0; - margin: auto; - position: absolute; - right: 0; - top: 0; - z-index: var(--fa-stack-z-index, auto); -} - -.svg-inline--fa.fa-stack-1x { - height: 1em; - width: 1.25em; -} -.svg-inline--fa.fa-stack-2x { - height: 2em; - width: 2.5em; -} - -.fa-inverse { - color: var(--fa-inverse, #fff); -} - -.sr-only, -.fa-sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; -} - -.sr-only-focusable:not(:focus), -.fa-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; -} - -.svg-inline--fa .fa-primary { - fill: var(--fa-primary-color, currentColor); - opacity: var(--fa-primary-opacity, 1); -} - -.svg-inline--fa .fa-secondary { - fill: var(--fa-secondary-color, currentColor); - opacity: var(--fa-secondary-opacity, 0.4); -} - -.svg-inline--fa.fa-swap-opacity .fa-primary { - opacity: var(--fa-secondary-opacity, 0.4); -} - -.svg-inline--fa.fa-swap-opacity .fa-secondary { - opacity: var(--fa-primary-opacity, 1); -} - -.svg-inline--fa mask .fa-primary, -.svg-inline--fa mask .fa-secondary { - fill: black; -} - -.fad.fa-inverse, -.fa-duotone.fa-inverse { - color: var(--fa-inverse, #fff); -}`;if(t!==n||a!==e){const i=new RegExp("\\.".concat(n,"\\-"),"g"),o=new RegExp("\\--".concat(n,"\\-"),"g"),c=new RegExp("\\.".concat(e),"g");r=r.replace(i,".".concat(t,"-")).replace(o,"--".concat(t,"-")).replace(c,".".concat(a))}return r}let he=!1;function Cn(){f.autoAddCss&&!he&&(function(n){if(!n||!B)return;const e=g.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=n;const t=g.head.childNodes;let a=null;for(let r=t.length-1;r>-1;r--){const i=t[r],o=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(a=i)}g.head.insertBefore(e,a)}(rt()),he=!0)}var Bt={mixout:()=>({dom:{css:rt,insertCss:Cn}}),hooks:()=>({beforeDOMElementCreation(){Cn()},beforeI2svg(){Cn()}})};const D=_||{};D[R]||(D[R]={}),D[R].styles||(D[R].styles={}),D[R].hooks||(D[R].hooks={}),D[R].shims||(D[R].shims=[]);var F=D[R];const it=[],ot=function(){g.removeEventListener("DOMContentLoaded",ot),xn=1,it.map(n=>n())};let xn=!1;function mn(n){const{tag:e,attributes:t={},children:a=[]}=n;return typeof n=="string"?ge(n):"<".concat(e," ").concat(function(r){return Object.keys(r||{}).reduce((i,o)=>i+"".concat(o,'="').concat(ge(r[o]),'" '),"").trim()}(t),">").concat(a.map(mn).join(""),"")}function be(n,e,t){if(n&&n[e]&&n[e][t])return{prefix:e,iconName:t,icon:n[e][t]}}B&&(xn=(g.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(g.readyState),xn||g.addEventListener("DOMContentLoaded",ot));var Pn=function(n,e,t,a){var r,i,o,c=Object.keys(n),l=c.length,s=e;for(t===void 0?(r=1,o=n[c[0]]):(r=0,o=t);r=55296&&o<=56319&&r{const a=n[t];return a.icon?e[a.iconName]=a.icon:e[t]=a,e},{})}function qn(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{skipHooks:a=!1}=t,r=ye(e);typeof F.hooks.addPack!="function"||a?F.styles[n]={...F.styles[n]||{},...r}:F.hooks.addPack(n,ye(e)),n==="fas"&&qn("fa",e)}const{styles:K,shims:Yt}=F,Wt={[h]:Object.values(V[h]),[O]:Object.values(V[O]),[C]:Object.values(V[C])};let ie=null,ct={},lt={},ft={},ut={},mt={};const Ht={[h]:Object.keys(X[h]),[O]:Object.keys(X[O]),[C]:Object.keys(X[C])};function _t(n,e){const t=e.split("-"),a=t[0],r=t.slice(1).join("-");return a!==n||r===""||(i=r,~Tt.indexOf(i))?null:r;var i}const dt=()=>{const n=a=>Pn(K,(r,i,o)=>(r[o]=Pn(i,a,{}),r),{});ct=n((a,r,i)=>(r[3]&&(a[r[3]]=i),r[2]&&r[2].filter(o=>typeof o=="number").forEach(o=>{a[o.toString(16)]=i}),a)),lt=n((a,r,i)=>(a[i]=i,r[2]&&r[2].filter(o=>typeof o=="string").forEach(o=>{a[o]=i}),a)),mt=n((a,r,i)=>{const o=r[2];return a[i]=i,o.forEach(c=>{a[c]=i}),a});const e="far"in K||f.autoFetchSvg,t=Pn(Yt,(a,r)=>{const i=r[0];let o=r[1];const c=r[2];return o!=="far"||e||(o="fas"),typeof i=="string"&&(a.names[i]={prefix:o,iconName:c}),typeof i=="number"&&(a.unicodes[i.toString(16)]={prefix:o,iconName:c}),a},{names:{},unicodes:{}});ft=t.names,ut=t.unicodes,ie=zn(f.styleDefault,{family:f.familyDefault})};var ve;function Kn(n,e){return(ct[n]||{})[e]}function H(n,e){return(mt[n]||{})[e]}function pt(n){return ft[n]||{prefix:null,iconName:null}}function U(){return ie}ve=n=>{ie=zn(n.styleDefault,{family:f.familyDefault})},Un.push(ve),dt();function zn(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{family:t=h}=e,a=X[t][n],r=cn[t][n]||cn[t][a],i=n in F.styles?n:null;return r||i||null}const Ut={[h]:Object.keys(V[h]),[O]:Object.keys(V[O]),[C]:Object.keys(V[C])};function Ln(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{skipLookups:t=!1}=e,a={[h]:"".concat(f.cssPrefix,"-").concat(h),[O]:"".concat(f.cssPrefix,"-").concat(O),[C]:"".concat(f.cssPrefix,"-").concat(C)};let r=null,i=h;const o=Nt.filter(l=>l!==Ge);o.forEach(l=>{(n.includes(a[l])||n.some(s=>Ut[l].includes(s)))&&(i=l)});const c=n.reduce((l,s)=>{const u=_t(f.cssPrefix,s);if(K[s]?(s=Wt[i].includes(s)?Ft[i][s]:s,r=s,l.prefix=s):Ht[i].indexOf(s)>-1?(r=s,l.prefix=zn(s,{family:i})):u?l.iconName=u:s===f.replacementClass||o.some(d=>s===a[d])||l.rest.push(s),!t&&l.prefix&&l.iconName){const d=r==="fa"?pt(l.iconName):{},m=H(l.prefix,l.iconName);d.prefix&&(r=null),l.iconName=d.iconName||m||l.iconName,l.prefix=d.prefix||l.prefix,l.prefix!=="far"||K.far||!K.fas||f.autoFetchSvg||(l.prefix="fas")}return l},{prefix:null,iconName:null,rest:[]});return(n.includes("fa-brands")||n.includes("fab"))&&(c.prefix="fab"),(n.includes("fa-duotone")||n.includes("fad"))&&(c.prefix="fad"),c.prefix||i!==O||!K.fass&&!f.autoFetchSvg||(c.prefix="fass",c.iconName=H(c.prefix,c.iconName)||c.iconName),c.prefix||i!==C||!K.fasds&&!f.autoFetchSvg||(c.prefix="fasds",c.iconName=H(c.prefix,c.iconName)||c.iconName),c.prefix!=="fa"&&r!=="fa"||(c.prefix=U()||"fas"),c}let xe=[],en={};const tn={},qt=Object.keys(tn);function Xn(n,e){for(var t=arguments.length,a=new Array(t>2?t-2:0),r=2;r{e=i.apply(null,[e,...a])}),e}function Z(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),a=1;a{r.apply(null,t)})}function q(){const n=arguments[0],e=Array.prototype.slice.call(arguments,1);return tn[n]?tn[n].apply(null,e):void 0}function Vn(n){n.prefix==="fa"&&(n.prefix="fas");let{iconName:e}=n;const t=n.prefix||U();if(e)return e=H(t,e)||e,be(gt.definitions,t,e)||be(F.styles,t,e)}const gt=new class{constructor(){this.definitions={}}add(){for(var n=arguments.length,e=new Array(n),t=0;t{this.definitions[r]={...this.definitions[r]||{},...a[r]},qn(r,a[r]);const i=V[h][r];i&&qn(i,a[r]),dt()})}reset(){this.definitions={}}_pullDefinitions(n,e){const t=e.prefix&&e.iconName&&e.icon?{0:e}:e;return Object.keys(t).map(a=>{const{prefix:r,iconName:i,icon:o}=t[a],c=o[2];n[r]||(n[r]={}),c.length>0&&c.forEach(l=>{typeof l=="string"&&(n[r][l]=o)}),n[r][i]=o}),n}},Kt={i2svg:function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return B?(Z("beforeI2svg",n),q("pseudoElements2svg",n),q("i2svg",n)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:e}=n;var t;f.autoReplaceSvg===!1&&(f.autoReplaceSvg=!0),f.observeMutations=!0,t=()=>{Xt({autoReplaceSvgRoot:e}),Z("watch",n)},B&&(xn?setTimeout(t,0):it.push(t))}},dn={noAuto:()=>{f.autoReplaceSvg=!1,f.observeMutations=!1,Z("noAuto")},config:f,dom:Kt,parse:{icon:n=>{if(n===null)return null;if(typeof n=="object"&&n.prefix&&n.iconName)return{prefix:n.prefix,iconName:H(n.prefix,n.iconName)||n.iconName};if(Array.isArray(n)&&n.length===2){const e=n[1].indexOf("fa-")===0?n[1].slice(3):n[1],t=zn(n[0]);return{prefix:t,iconName:H(t,e)||e}}if(typeof n=="string"&&(n.indexOf("".concat(f.cssPrefix,"-"))>-1||n.match(It))){const e=Ln(n.split(" "),{skipLookups:!0});return{prefix:e.prefix||U(),iconName:H(e.prefix,e.iconName)||e.iconName}}if(typeof n=="string"){const e=U();return{prefix:e,iconName:H(e,n)||n}}}},library:gt,findIconDefinition:Vn,toHtml:mn},Xt=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:e=g}=n;(Object.keys(F.styles).length>0||f.autoFetchSvg)&&B&&f.autoReplaceSvg&&dn.dom.i2svg({node:e})};function An(n,e){return Object.defineProperty(n,"abstract",{get:e}),Object.defineProperty(n,"html",{get:function(){return n.abstract.map(t=>mn(t))}}),Object.defineProperty(n,"node",{get:function(){if(!B)return;const t=g.createElement("div");return t.innerHTML=n.html,t.children}}),n}function oe(n){const{icons:{main:e,mask:t},prefix:a,iconName:r,transform:i,symbol:o,title:c,maskId:l,titleId:s,extra:u,watchable:d=!1}=n,{width:m,height:p}=t.found?t:e,w=a==="fak",z=[f.replacementClass,r?"".concat(f.cssPrefix,"-").concat(r):""].filter(b=>u.classes.indexOf(b)===-1).filter(b=>b!==""||!!b).concat(u.classes).join(" ");let k={children:[],attributes:{...u.attributes,"data-prefix":a,"data-icon":r,class:z,role:u.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(p)}};const N=w&&!~u.classes.indexOf("fa-fw")?{width:"".concat(m/p*16*.0625,"em")}:{};d&&(k.attributes[G]=""),c&&(k.children.push({tag:"title",attributes:{id:k.attributes["aria-labelledby"]||"title-".concat(s||fn())},children:[c]}),delete k.attributes.title);const y={...k,prefix:a,iconName:r,main:e,mask:t,maskId:l,transform:i,symbol:o,styles:{...N,...u.styles}},{children:v,attributes:M}=t.found&&e.found?q("generateAbstractMask",y)||{children:[],attributes:{}}:q("generateAbstractIcon",y)||{children:[],attributes:{}};return y.children=v,y.attributes=M,o?function(b){let{prefix:L,iconName:x,children:I,attributes:Y,symbol:P}=b;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:{...Y,id:P===!0?"".concat(L,"-").concat(f.cssPrefix,"-").concat(x):P},children:I}]}]}(y):function(b){let{children:L,main:x,mask:I,attributes:Y,styles:P,transform:S}=b;if(re(S)&&x.found&&!I.found){const{width:Nn,height:Mn}=x,le={x:Nn/Mn/2,y:.5};Y.style=wn({...P,"transform-origin":"".concat(le.x+S.x/16,"em ").concat(le.y+S.y/16,"em")})}return[{tag:"svg",attributes:Y,children:L}]}(y)}function ke(n){const{content:e,width:t,height:a,transform:r,title:i,extra:o,watchable:c=!1}=n,l={...o.attributes,...i?{title:i}:{},class:o.classes.join(" ")};c&&(l[G]="");const s={...o.styles};re(r)&&(s.transform=function(m){let{transform:p,width:w=Dn,height:z=Dn,startCentered:k=!1}=m,N="";return N+=k&&Ve?"translate(".concat(p.x/W-w/2,"em, ").concat(p.y/W-z/2,"em) "):k?"translate(calc(-50% + ".concat(p.x/W,"em), calc(-50% + ").concat(p.y/W,"em)) "):"translate(".concat(p.x/W,"em, ").concat(p.y/W,"em) "),N+="scale(".concat(p.size/W*(p.flipX?-1:1),", ").concat(p.size/W*(p.flipY?-1:1),") "),N+="rotate(".concat(p.rotate,"deg) "),N}({transform:r,startCentered:!0,width:t,height:a}),s["-webkit-transform"]=s.transform);const u=wn(s);u.length>0&&(l.style=u);const d=[];return d.push({tag:"span",attributes:l,children:[e]}),i&&d.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),d}const{styles:Sn}=F;function Gn(n){const e=n[0],t=n[1],[a]=n.slice(4);let r=null;return r=Array.isArray(a)?{tag:"g",attributes:{class:"".concat(f.cssPrefix,"-").concat(On.GROUP)},children:[{tag:"path",attributes:{class:"".concat(f.cssPrefix,"-").concat(On.SECONDARY),fill:"currentColor",d:a[0]}},{tag:"path",attributes:{class:"".concat(f.cssPrefix,"-").concat(On.PRIMARY),fill:"currentColor",d:a[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:a}},{found:!0,width:e,height:t,icon:r}}const Vt={found:!1,width:512,height:512};function Zn(n,e){let t=e;return e==="fa"&&f.styleDefault!==null&&(e=U()),new Promise((a,r)=>{if(t==="fa"){const i=pt(n)||{};n=i.iconName||n,e=i.prefix||e}if(n&&e&&Sn[e]&&Sn[e][n])return a(Gn(Sn[e][n]));!$e&&f.showMissingIcons,a({...Vt,icon:f.showMissingIcons&&n&&q("missingIconAbstract")||{}})})}const we=()=>{},Jn=f.measurePerformance&&pn&&pn.mark&&pn.measure?pn:{mark:we,measure:we},sn='FA "6.6.0"',Gt=n=>{Jn.mark("".concat(sn," ").concat(n," ends")),Jn.measure("".concat(sn," ").concat(n),"".concat(sn," ").concat(n," begins"),"".concat(sn," ").concat(n," ends"))};var se=n=>(Jn.mark("".concat(sn," ").concat(n," begins")),()=>Gt(n));const yn=()=>{};function ze(n){return typeof(n.getAttribute?n.getAttribute(G):null)=="string"}function Zt(n){return g.createElementNS("http://www.w3.org/2000/svg",n)}function Jt(n){return g.createElement(n)}function ht(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{ceFn:t=n.tag==="svg"?Zt:Jt}=e;if(typeof n=="string")return g.createTextNode(n);const a=t(n.tag);return Object.keys(n.attributes||[]).forEach(function(r){a.setAttribute(r,n.attributes[r])}),(n.children||[]).forEach(function(r){a.appendChild(ht(r,{ceFn:t}))}),a}const vn={replace:function(n){const e=n[0];if(e.parentNode)if(n[1].forEach(t=>{e.parentNode.insertBefore(ht(t),e)}),e.getAttribute(G)===null&&f.keepOriginalSource){let t=g.createComment(function(a){let r=" ".concat(a.outerHTML," ");return r="".concat(r,"Font Awesome fontawesome.com "),r}(e));e.parentNode.replaceChild(t,e)}else e.remove()},nest:function(n){const e=n[0],t=n[1];if(~ae(e).indexOf(f.replacementClass))return vn.replace(n);const a=new RegExp("".concat(f.cssPrefix,"-.*"));if(delete t[0].attributes.id,t[0].attributes.class){const i=t[0].attributes.class.split(" ").reduce((o,c)=>(c===f.replacementClass||c.match(a)?o.toSvg.push(c):o.toNode.push(c),o),{toNode:[],toSvg:[]});t[0].attributes.class=i.toSvg.join(" "),i.toNode.length===0?e.removeAttribute("class"):e.setAttribute("class",i.toNode.join(" "))}const r=t.map(i=>mn(i)).join(` -`);e.setAttribute(G,""),e.innerHTML=r}};function Le(n){n()}function bt(n,e){const t=typeof e=="function"?e:yn;if(n.length===0)t();else{let a=Le;f.mutateApproach==="async"&&(a=_.requestAnimationFrame||Le),a(()=>{const r=f.autoReplaceSvg===!0?vn.replace:vn[f.autoReplaceSvg]||vn.replace,i=se("mutate");n.map(r),i(),t()})}}let ce=!1;function yt(){ce=!0}function Qn(){ce=!1}let kn=null;function Ae(n){if(!de||!f.observeMutations)return;const{treeCallback:e=yn,nodeCallback:t=yn,pseudoElementsCallback:a=yn,observeMutationsRoot:r=g}=n;kn=new de(i=>{if(ce)return;const o=U();an(i).forEach(c=>{if(c.type==="childList"&&c.addedNodes.length>0&&!ze(c.addedNodes[0])&&(f.searchPseudoElements&&a(c.target),e(c.target)),c.type==="attributes"&&c.target.parentNode&&f.searchPseudoElements&&a(c.target.parentNode),c.type==="attributes"&&ze(c.target)&&~Dt.indexOf(c.attributeName))if(c.attributeName==="class"&&function(s){const u=s.getAttribute?s.getAttribute(Bn):null,d=s.getAttribute?s.getAttribute(Yn):null;return u&&d}(c.target)){const{prefix:s,iconName:u}=Ln(ae(c.target));c.target.setAttribute(Bn,s||o),u&&c.target.setAttribute(Yn,u)}else(l=c.target)&&l.classList&&l.classList.contains&&l.classList.contains(f.replacementClass)&&t(c.target);var l})}),B&&kn.observe(r,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}function Qt(n){const e=n.getAttribute("data-prefix"),t=n.getAttribute("data-icon"),a=n.innerText!==void 0?n.innerText.trim():"";let r=Ln(ae(n));return r.prefix||(r.prefix=U()),e&&t&&(r.prefix=e,r.iconName=t),r.iconName&&r.prefix||(r.prefix&&a.length>0&&(r.iconName=(i=r.prefix,o=n.innerText,(lt[i]||{})[o]||Kn(r.prefix,st(n.innerText)))),!r.iconName&&f.autoFetchSvg&&n.firstChild&&n.firstChild.nodeType===Node.TEXT_NODE&&(r.iconName=n.firstChild.data)),r;var i,o}function Ne(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0};const{iconName:t,prefix:a,rest:r}=Qt(n),i=function(l){const s=an(l.attributes).reduce((m,p)=>(m.name!=="class"&&m.name!=="style"&&(m[p.name]=p.value),m),{}),u=l.getAttribute("title"),d=l.getAttribute("data-fa-title-id");return f.autoA11y&&(u?s["aria-labelledby"]="".concat(f.replacementClass,"-title-").concat(d||fn()):(s["aria-hidden"]="true",s.focusable="false")),s}(n),o=Xn("parseNodeAttributes",{},n);let c=e.styleParser?function(l){const s=l.getAttribute("style");let u=[];return s&&(u=s.split(";").reduce((d,m)=>{const p=m.split(":"),w=p[0],z=p.slice(1);return w&&z.length>0&&(d[w]=z.join(":").trim()),d},{})),u}(n):[];return{iconName:t,title:n.getAttribute("title"),titleId:n.getAttribute("data-fa-title-id"),prefix:a,transform:E,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:r,styles:c,attributes:i},...o}}const{styles:$t}=F;function vt(n){const e=f.autoReplaceSvg==="nest"?Ne(n,{styleParser:!1}):Ne(n);return~e.extra.classes.indexOf(tt)?q("generateLayersText",n,e):q("generateSvgReplacementMutation",n,e)}let j=new Set;function Me(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!B)return Promise.resolve();const t=g.documentElement.classList,a=u=>t.add("".concat(pe,"-").concat(u)),r=u=>t.remove("".concat(pe,"-").concat(u)),i=f.autoFetchSvg?j:nt.map(u=>"fa-".concat(u)).concat(Object.keys($t));i.includes("fa")||i.push("fa");const o=[".".concat(tt,":not([").concat(G,"])")].concat(i.map(u=>".".concat(u,":not([").concat(G,"])"))).join(", ");if(o.length===0)return Promise.resolve();let c=[];try{c=an(n.querySelectorAll(o))}catch{}if(!(c.length>0))return Promise.resolve();a("pending"),r("complete");const l=se("onTree"),s=c.reduce((u,d)=>{try{const m=vt(d);m&&u.push(m)}catch(m){$e||m.name}return u},[]);return new Promise((u,d)=>{Promise.all(s).then(m=>{bt(m,()=>{a("active"),a("complete"),r("pending"),typeof e=="function"&&e(),l(),u()})}).catch(m=>{l(),d(m)})})}function na(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;vt(n).then(t=>{t&&bt([t],e)})}nt.map(n=>{j.add("fa-".concat(n))}),Object.keys(X[h]).map(j.add.bind(j)),Object.keys(X[O]).map(j.add.bind(j)),Object.keys(X[C]).map(j.add.bind(j)),j=[...j];const ea=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:t=E,symbol:a=!1,mask:r=null,maskId:i=null,title:o=null,titleId:c=null,classes:l=[],attributes:s={},styles:u={}}=e;if(!n)return;const{prefix:d,iconName:m,icon:p}=n;return An({type:"icon",...n},()=>(Z("beforeDOMElementCreation",{iconDefinition:n,params:e}),f.autoA11y&&(o?s["aria-labelledby"]="".concat(f.replacementClass,"-title-").concat(c||fn()):(s["aria-hidden"]="true",s.focusable="false")),oe({icons:{main:Gn(p),mask:r?Gn(r.icon):{found:!1,width:null,height:null,icon:{}}},prefix:d,iconName:m,transform:{...E,...t},symbol:a,title:o,maskId:i,titleId:c,extra:{attributes:s,styles:u,classes:l}})))};var ta={mixout(){return{icon:(n=ea,function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=(e||{}).icon?e:Vn(e||{});let{mask:r}=t;return r&&(r=(r||{}).icon?r:Vn(r||{})),n(a,{...t,mask:r})})};var n},hooks:()=>({mutationObserverCallbacks:n=>(n.treeCallback=Me,n.nodeCallback=na,n)}),provides(n){n.i2svg=function(e){const{node:t=g,callback:a=()=>{}}=e;return Me(t,a)},n.generateSvgReplacementMutation=function(e,t){const{iconName:a,title:r,titleId:i,prefix:o,transform:c,symbol:l,mask:s,maskId:u,extra:d}=t;return new Promise((m,p)=>{Promise.all([Zn(a,o),s.iconName?Zn(s.iconName,s.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(w=>{let[z,k]=w;m([e,oe({icons:{main:z,mask:k},prefix:o,iconName:a,transform:c,symbol:l,maskId:u,title:r,titleId:i,extra:d,watchable:!0})])}).catch(p)})},n.generateAbstractIcon=function(e){let{children:t,attributes:a,main:r,transform:i,styles:o}=e;const c=wn(o);let l;return c.length>0&&(a.style=c),re(i)&&(l=q("generateAbstractTransformGrouping",{main:r,transform:i,containerWidth:r.width,iconWidth:r.width})),t.push(l||r.icon),{children:t,attributes:a}}}},aa={mixout:()=>({layer(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{classes:t=[]}=e;return An({type:"layer"},()=>{Z("beforeDOMElementCreation",{assembler:n,params:e});let a=[];return n(r=>{Array.isArray(r)?r.map(i=>{a=a.concat(i.abstract)}):a=a.concat(r.abstract)}),[{tag:"span",attributes:{class:["".concat(f.cssPrefix,"-layers"),...t].join(" ")},children:a}]})}})},ra={mixout:()=>({counter(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{title:t=null,classes:a=[],attributes:r={},styles:i={}}=e;return An({type:"counter",content:n},()=>(Z("beforeDOMElementCreation",{content:n,params:e}),function(o){const{content:c,title:l,extra:s}=o,u={...s.attributes,...l?{title:l}:{},class:s.classes.join(" ")},d=wn(s.styles);d.length>0&&(u.style=d);const m=[];return m.push({tag:"span",attributes:u,children:[c]}),l&&m.push({tag:"span",attributes:{class:"sr-only"},children:[l]}),m}({content:n.toString(),title:t,extra:{attributes:r,styles:i,classes:["".concat(f.cssPrefix,"-layers-counter"),...a]}})))}})},ia={mixout:()=>({text(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:t=E,title:a=null,classes:r=[],attributes:i={},styles:o={}}=e;return An({type:"text",content:n},()=>(Z("beforeDOMElementCreation",{content:n,params:e}),ke({content:n,transform:{...E,...t},title:a,extra:{attributes:i,styles:o,classes:["".concat(f.cssPrefix,"-layers-text"),...r]}})))}}),provides(n){n.generateLayersText=function(e,t){const{title:a,transform:r,extra:i}=t;let o=null,c=null;if(Ve){const l=parseInt(getComputedStyle(e).fontSize,10),s=e.getBoundingClientRect();o=s.width/l,c=s.height/l}return f.autoA11y&&!a&&(i.attributes["aria-hidden"]="true"),Promise.resolve([e,ke({content:e.innerHTML,width:o,height:c,transform:r,title:a,extra:i,watchable:!0})])}}};const oa=new RegExp('"',"ug"),Oe=[1105920,1112319],Ce={FontAwesome:{normal:"fas",400:"fas"},"Font Awesome 6 Free":{900:"fas",400:"far"},"Font Awesome 6 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 6 Brands":{400:"fab",normal:"fab"},"Font Awesome 6 Duotone":{900:"fad"},"Font Awesome 6 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 6 Sharp Duotone":{900:"fasds"},"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"},"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}},$n=Object.keys(Ce).reduce((n,e)=>(n[e.toLowerCase()]=Ce[e],n),{}),sa=Object.keys($n).reduce((n,e)=>{const t=$n[e];return n[e]=t[900]||[...Object.entries(t)][0][1],n},{});function Pe(n,e){const t="".concat("data-fa-pseudo-element-pending").concat(e.replace(":","-"));return new Promise((a,r)=>{if(n.getAttribute(t)!==null)return a();const i=an(n.children).filter(d=>d.getAttribute(Tn)===e)[0],o=_.getComputedStyle(n,e),c=o.getPropertyValue("font-family"),l=c.match(Rt),s=o.getPropertyValue("font-weight"),u=o.getPropertyValue("content");if(i&&!l)return n.removeChild(i),a();if(l&&u!=="none"&&u!==""){const d=o.getPropertyValue("content");let m=function(y,v){const M=y.replace(/^['"]|['"]$/g,"").toLowerCase(),b=parseInt(v),L=isNaN(b)?"normal":b;return($n[M]||{})[L]||sa[M]}(c,s);const{value:p,isSecondary:w}=function(y){const v=y.replace(oa,""),M=function(x,I){const Y=x.length;let P,S=x.charCodeAt(I);return S>=55296&&S<=56319&&Y>I+1&&(P=x.charCodeAt(I+1),P>=56320&&P<=57343)?1024*(S-55296)+P-56320+65536:S}(v,0),b=M>=Oe[0]&&M<=Oe[1],L=v.length===2&&v[0]===v[1];return{value:st(L?v[0]:v),isSecondary:b||L}}(d),z=l[0].startsWith("FontAwesome");let k=Kn(m,p),N=k;if(z){const y=function(v){const M=ut[v],b=Kn("fas",v);return M||(b?{prefix:"fas",iconName:b}:null)||{prefix:null,iconName:null}}(p);y.iconName&&y.prefix&&(k=y.iconName,m=y.prefix)}if(!k||w||i&&i.getAttribute(Bn)===m&&i.getAttribute(Yn)===N)a();else{n.setAttribute(t,N),i&&n.removeChild(i);const y={iconName:null,title:null,titleId:null,prefix:null,transform:E,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},{extra:v}=y;v.attributes[Tn]=e,Zn(k,m).then(M=>{const b=oe({...y,icons:{main:M,mask:{prefix:null,iconName:null,rest:[]}},prefix:m,iconName:N,extra:v,watchable:!0}),L=g.createElementNS("http://www.w3.org/2000/svg","svg");e==="::before"?n.insertBefore(L,n.firstChild):n.appendChild(L),L.outerHTML=b.map(x=>mn(x)).join(` -`),n.removeAttribute(t),a()}).catch(r)}}else a()})}function ca(n){return Promise.all([Pe(n,"::before"),Pe(n,"::after")])}function la(n){return!(n.parentNode===document.head||~Et.indexOf(n.tagName.toUpperCase())||n.getAttribute(Tn)||n.parentNode&&n.parentNode.tagName==="svg")}function Se(n){if(B)return new Promise((e,t)=>{const a=an(n.querySelectorAll("*")).filter(la).map(ca),r=se("searchPseudoElements");yt(),Promise.all(a).then(()=>{r(),Qn(),e()}).catch(()=>{r(),Qn(),t()})})}let je=!1;const Ee=n=>n.toLowerCase().split(" ").reduce((e,t)=>{const a=t.toLowerCase().split("-"),r=a[0];let i=a.slice(1).join("-");if(r&&i==="h")return e.flipX=!0,e;if(r&&i==="v")return e.flipY=!0,e;if(i=parseFloat(i),isNaN(i))return e;switch(r){case"grow":e.size=e.size+i;break;case"shrink":e.size=e.size-i;break;case"left":e.x=e.x-i;break;case"right":e.x=e.x+i;break;case"up":e.y=e.y-i;break;case"down":e.y=e.y+i;break;case"rotate":e.rotate=e.rotate+i}return e},{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0}),jn={x:0,y:0,width:"100%",height:"100%"};function Fe(n){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return n.attributes&&(n.attributes.fill||e)&&(n.attributes.fill="black"),n}(function(n,e){let{mixoutsTo:t}=e;xe=n,en={},Object.keys(tn).forEach(a=>{qt.indexOf(a)===-1&&delete tn[a]}),xe.forEach(a=>{const r=a.mixout?a.mixout():{};if(Object.keys(r).forEach(i=>{typeof r[i]=="function"&&(t[i]=r[i]),typeof r[i]=="object"&&Object.keys(r[i]).forEach(o=>{t[i]||(t[i]={}),t[i][o]=r[i][o]})}),a.hooks){const i=a.hooks();Object.keys(i).forEach(o=>{en[o]||(en[o]=[]),en[o].push(i[o])})}a.provides&&a.provides(tn)})})([Bt,ta,aa,ra,ia,{hooks:()=>({mutationObserverCallbacks:n=>(n.pseudoElementsCallback=Se,n)}),provides(n){n.pseudoElements2svg=function(e){const{node:t=g}=e;f.searchPseudoElements&&Se(t)}}},{mixout:()=>({dom:{unwatch(){yt(),je=!0}}}),hooks:()=>({bootstrap(){Ae(Xn("mutationObserverCallbacks",{}))},noAuto(){kn&&kn.disconnect()},watch(n){const{observeMutationsRoot:e}=n;je?Qn():Ae(Xn("mutationObserverCallbacks",{observeMutationsRoot:e}))}})},{mixout:()=>({parse:{transform:n=>Ee(n)}}),hooks:()=>({parseNodeAttributes(n,e){const t=e.getAttribute("data-fa-transform");return t&&(n.transform=Ee(t)),n}}),provides(n){n.generateAbstractTransformGrouping=function(e){let{main:t,transform:a,containerWidth:r,iconWidth:i}=e;const o={transform:"translate(".concat(r/2," 256)")},c="translate(".concat(32*a.x,", ").concat(32*a.y,") "),l="scale(".concat(a.size/16*(a.flipX?-1:1),", ").concat(a.size/16*(a.flipY?-1:1),") "),s="rotate(".concat(a.rotate," 0 0)"),u={transform:"".concat(c," ").concat(l," ").concat(s)},d={transform:"translate(".concat(i/2*-1," -256)")};return{tag:"g",attributes:{...o},children:[{tag:"g",attributes:{...u},children:[{tag:t.icon.tag,children:t.icon.children,attributes:{...t.icon.attributes,...d}}]}]}}}},{hooks:()=>({parseNodeAttributes(n,e){const t=e.getAttribute("data-fa-mask"),a=t?Ln(t.split(" ").map(r=>r.trim())):{prefix:null,iconName:null,rest:[]};return a.prefix||(a.prefix=U()),n.mask=a,n.maskId=e.getAttribute("data-fa-mask-id"),n}}),provides(n){n.generateAbstractMask=function(e){let{children:t,attributes:a,main:r,mask:i,maskId:o,transform:c}=e;const{width:l,icon:s}=r,{width:u,icon:d}=i,m=function(L){let{transform:x,containerWidth:I,iconWidth:Y}=L;const P={transform:"translate(".concat(I/2," 256)")},S="translate(".concat(32*x.x,", ").concat(32*x.y,") "),Nn="scale(".concat(x.size/16*(x.flipX?-1:1),", ").concat(x.size/16*(x.flipY?-1:1),") "),Mn="rotate(".concat(x.rotate," 0 0)");return{outer:P,inner:{transform:"".concat(S," ").concat(Nn," ").concat(Mn)},path:{transform:"translate(".concat(Y/2*-1," -256)")}}}({transform:c,containerWidth:u,iconWidth:l}),p={tag:"rect",attributes:{...jn,fill:"white"}},w=s.children?{children:s.children.map(Fe)}:{},z={tag:"g",attributes:{...m.inner},children:[Fe({tag:s.tag,attributes:{...s.attributes,...m.path},...w})]},k={tag:"g",attributes:{...m.outer},children:[z]},N="mask-".concat(o||fn()),y="clip-".concat(o||fn()),v={tag:"mask",attributes:{...jn,id:N,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"},children:[p,k]},M={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(b=d,b.tag==="g"?b.children:[b])},v]};var b;return t.push(M,{tag:"rect",attributes:{fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(N,")"),...jn}}),{children:t,attributes:a}}}},{provides(n){let e=!1;_.matchMedia&&(e=_.matchMedia("(prefers-reduced-motion: reduce)").matches),n.missingIconAbstract=function(){const t=[],a={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};t.push({tag:"path",attributes:{...a,d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}});const i={...r,attributeName:"opacity"},o={tag:"circle",attributes:{...a,cx:"256",cy:"364",r:"28"},children:[]};return e||o.children.push({tag:"animate",attributes:{...r,attributeName:"r",values:"28;14;28;28;14;28;"}},{tag:"animate",attributes:{...i,values:"1;0;1;1;0;1;"}}),t.push(o),t.push({tag:"path",attributes:{...a,opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"},children:e?[]:[{tag:"animate",attributes:{...i,values:"1;0;0;0;0;1;"}}]}),e||t.push({tag:"path",attributes:{...a,opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"},children:[{tag:"animate",attributes:{...i,values:"0;0;1;1;0;0;"}}]}),{tag:"g",attributes:{class:"missing"},children:t}}}},{hooks:()=>({parseNodeAttributes(n,e){const t=e.getAttribute("data-fa-symbol"),a=t!==null&&(t===""||t);return n.symbol=a,n}})}],{mixoutsTo:dn});const ba=dn.library,ne=dn.parse,fa=dn.icon;function Ie(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);e&&(a=a.filter(function(r){return Object.getOwnPropertyDescriptor(n,r).enumerable})),t.push.apply(t,a)}return t}function T(n){for(var e=1;e=0)continue;l[s]=o[s]}return l}(n,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(r[t]=n[t])}return r}var En,Re,$,gn,Fn,hn,rn,De,Te,Be,Ye,We,He,_e,bn,In,da=typeof globalThis<"u"?globalThis:typeof window<"u"?window:fe!==void 0?fe:typeof self<"u"?self:{},xt={exports:{}};En=xt,Re=da,$=function(n,e,t){if(!Te(e)||Ye(e)||We(e)||He(e)||De(e))return e;var a,r=0,i=0;if(Be(e))for(a=[],i=e.length;r1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof n=="string")return n;var a=(n.children||[]).map(function(l){return kt(l)}),r=Object.keys(n.attributes||{}).reduce(function(l,s){var u=n.attributes[s];switch(s){case"class":l.class=u.split(/\s+/).reduce(function(d,m){return d[m]=!0,d},{});break;case"style":l.style=u.split(";").map(function(d){return d.trim()}).filter(function(d){return d}).reduce(function(d,m){var p=m.indexOf(":"),w=pa.camelize(m.slice(0,p)),z=m.slice(p+1).trim();return d[w]=z,d},{});break;default:l.attrs[s]=u}return l},{attrs:{},class:{},style:{}});t.class;var i=t.style,o=i===void 0?{}:i,c=ma(t,ga);return At(n.tag,T(T(T({},e),{},{class:r.class,style:T(T({},r.style),o)},r.attrs),c),a)}var wt=!1;try{wt=!0}catch{}function Rn(n,e){return Array.isArray(e)&&e.length>0||!Array.isArray(e)&&e?A({},n,e):{}}function Ue(n){return n&&ee(n)==="object"&&n.prefix&&n.iconName&&n.icon?n:ne.icon?ne.icon(n):n===null?null:ee(n)==="object"&&n.prefix&&n.iconName?n:Array.isArray(n)&&n.length===2?{prefix:n[0],iconName:n[1]}:typeof n=="string"?{prefix:"fas",iconName:n}:void 0}var ya=zt({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(n){return[!0,!1,"horizontal","vertical","both"].indexOf(n)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},maskId:{type:String,default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(n){return["right","left"].indexOf(n)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(n){return[90,180,270].indexOf(Number.parseInt(n,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(n){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(n)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},titleId:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beat:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1}},setup:function(n,e){var t=e.attrs,a=J(function(){return Ue(n.icon)}),r=J(function(){return Rn("classes",function(s){var u,d=(A(A(A(A(A(A(A(A(A(A(u={"fa-spin":s.spin,"fa-pulse":s.pulse,"fa-fw":s.fixedWidth,"fa-border":s.border,"fa-li":s.listItem,"fa-inverse":s.inverse,"fa-flip":s.flip===!0,"fa-flip-horizontal":s.flip==="horizontal"||s.flip==="both","fa-flip-vertical":s.flip==="vertical"||s.flip==="both"},"fa-".concat(s.size),s.size!==null),"fa-rotate-".concat(s.rotation),s.rotation!==null),"fa-pull-".concat(s.pull),s.pull!==null),"fa-swap-opacity",s.swapOpacity),"fa-bounce",s.bounce),"fa-shake",s.shake),"fa-beat",s.beat),"fa-fade",s.fade),"fa-beat-fade",s.beatFade),"fa-flash",s.flash),A(A(u,"fa-spin-pulse",s.spinPulse),"fa-spin-reverse",s.spinReverse));return Object.keys(d).map(function(m){return d[m]?m:null}).filter(function(m){return m})}(n))}),i=J(function(){return Rn("transform",typeof n.transform=="string"?ne.transform(n.transform):n.transform)}),o=J(function(){return Rn("mask",Ue(n.mask))}),c=J(function(){return fa(a.value,T(T(T(T({},r.value),i.value),o.value),{},{symbol:n.symbol,title:n.title,titleId:n.titleId,maskId:n.maskId}))});Lt(c,function(s){if(!s)return function(){var u;!wt&&console&&typeof console.error=="function"&&(u=console).error.apply(u,arguments)}("Could not find one or more icon(s)",a.value,o.value)},{immediate:!0});var l=J(function(){return c.value?kt(c.value.abstract[0],{},t):null});return function(){return l.value}}});const va={prefix:"fas",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm64 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 400l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"]},xa={prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z"]},ka={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},wa={prefix:"fas",iconName:"star",icon:[576,512,[11088,61446],"f005","M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"]},za={prefix:"fas",iconName:"charging-station",icon:[576,512,[],"f5e7","M96 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-144 16 0c22.1 0 40 17.9 40 40l0 32c0 39.8 32.2 72 72 72s72-32.2 72-72l0-123.7c32.5-10.2 56-40.5 56-76.3l0-32c0-8.8-7.2-16-16-16l-16 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-32 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-16 0c-8.8 0-16 7.2-16 16l0 32c0 35.8 23.5 66.1 56 76.3L472 376c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-48.6-39.4-88-88-88l-16 0 0-192c0-35.3-28.7-64-64-64L96 0zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9 57.8 0c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9L96 208c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z"]},La={prefix:"fas",iconName:"car-battery",icon:[512,512,["battery-car"],"f5df","M80 96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-32zM80 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16z"]},Aa={prefix:"fas",iconName:"plug-circle-bolt",icon:[576,512,[],"e55b","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"]},Na={prefix:"fas",iconName:"solar-panel",icon:[640,512,[],"f5ba","M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384l217 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 217 0c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0L122.2 0zM260.9 64l118.2 0 10.4 104-139 0L260.9 64zM202.3 168l-100.8 0L122.2 64l90.4 0L202.3 168zM91.8 216l105.6 0L187.1 320 71 320 91.8 216zm153.9 0l148.6 0 10.4 104-169.4 0 10.4-104zm196.8 0l105.6 0L569 320l-116 0L442.5 216zm96-48l-100.8 0L427.3 64l90.4 0 31.4-6.3L517.8 64l20.8 104z"]},Ma={prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48C576 64.5 511.5 0 432 0S288 64.5 288 144l0 48L64 192c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-32 0 0-48z"]},Oa={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},Ca={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]},Pa={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"]},Sa={prefix:"fas",iconName:"plug-circle-check",icon:[576,512,[],"e55c","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"]},ja={prefix:"fas",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},Ea={prefix:"fas",iconName:"power-off",icon:[512,512,[9211],"f011","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z"]},Fa={prefix:"fas",iconName:"calculator",icon:[384,512,[128425],"f1ec","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"]},Ia={prefix:"fas",iconName:"delete-left",icon:[576,512,[9003,"backspace"],"f55a","M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},Ra={prefix:"fas",iconName:"house",icon:[576,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"]},Da={prefix:"fas",iconName:"calendar-week",icon:[448,512,[],"f784","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L80 256z"]},Ta={prefix:"fas",iconName:"bolt",icon:[448,512,[9889,"zap"],"f0e7","M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z"]},Ba={prefix:"fas",iconName:"car",icon:[512,512,[128664,"automobile"],"f1b9","M135.2 117.4L109.1 192l293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 144 0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L96 400l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},Ya={prefix:"fas",iconName:"plug-circle-xmark",icon:[576,512,[],"e560","M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},Wa={prefix:"fas",iconName:"eraser",icon:[576,512,[],"f12d","M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7L288 480l9.4 0L512 480c17.7 0 32-14.3 32-32s-14.3-32-32-32l-124.1 0L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416l-9.4 0-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z"]},Ha={prefix:"fas",iconName:"gauge-high",icon:[512,512,[62461,"tachometer-alt","tachometer-alt-fast"],"f625","M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},_a={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Ua={prefix:"fas",iconName:"calendar-day",icon:[448,512,[],"f783","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-96 0z"]},qa={prefix:"fas",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},Ka={prefix:"far",iconName:"star",icon:[576,512,[11088,61446],"f005","M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"]},Xa={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]};export{Sa as A,Aa as B,Pa as C,Ea as D,ya as F,Wa as a,xa as b,Ma as c,Ha as d,La as e,Ia as f,Na as g,Ra as h,za as i,Fa as j,Oa as k,ba as l,Ba as m,ka as n,qa as o,_a as p,Ca as q,wa as r,Ka as s,ja as t,Xa as u,Ta as v,Ua as w,Da as x,va as y,Ya as z}; diff --git a/packages/modules/display_themes/cards/web/assets/vendor-inkline-C_NPDnDu.js b/packages/modules/display_themes/cards/web/assets/vendor-inkline-C_NPDnDu.js new file mode 100644 index 0000000000..e6d1e8e5bc --- /dev/null +++ b/packages/modules/display_themes/cards/web/assets/vendor-inkline-C_NPDnDu.js @@ -0,0 +1 @@ +import{h as nt,w as Bt,r as zt,d as c,a as At,b as $,v as x,e as o,f,i as m,j as d,m as h,o as l,k as P,l as V,n as Y,p as A,q as y,s as I,t as E,u as Q,T as L,x as _,y as G,z,F as j,A as X,c as se,B as Vt,C as Ot,D as Lt,E as Dt,G as Nt}from"./vendor-BMrK3KHF.js";const p=(e,t)=>{const i=e.__vccOpts||e;for(const[a,s]of t)i[a]=s;return i};function g(e){let t=e.color;return t||(t=e.$inkline.options.colorMode==="system"?typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e.$inkline.options.colorMode),{[`-${t}`]:!0}}function lt(e,t){if(!e||!t)return!1;if(t.indexOf(" ")!==-1)throw new Error("Class name should not contain spaces.");return e.classList?e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}function _e(e,t){if(!e)return;let i=e.className;const a=(t||"").split(" ");for(let s=0,r=a.length;s"-"+s.toLowerCase())}function rt(e,t){return["string","number"].indexOf(typeof t)>-1&&t!==""?`${He(e)}-${t}`:He(e)}function Re(e){return e.charAt(0).toUpperCase()+e.slice(1)}function U(e){if(Array.isArray(e)){const t=e.slice().map(U),i=Object.keys(t);return Object.keys(e).filter(a=>!i.includes(a)).forEach(a=>{t[a]=e[a]}),t}return typeof e=="object"?Object.keys(e).reduce((t,i)=>(t[i]=U(e[i]),t),{}):e}function Fe(e){if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return e.type!=="hidden"&&e.type!=="file";case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}}function Tt(e){if(!Fe(e))return!1;try{e.focus()}catch{}return typeof window<"u"&&document.activeElement===e}function ot(e){for(let t=0;t"u")return;if(e.currentStyle)return e.currentStyle[t];const i=window.getComputedStyle(e,null);return i.getPropertyValue?i.getPropertyValue(t):i[t]}const dt=e=>e instanceof Function,J={xs:[0,575],sm:[576,767],md:[768,991],lg:[992,1199],xl:[1200,1399],xxl:[1400,1/0]},je=["","xs","sm","md","lg","xl","xxl"],Pt={tab:["Tab",9],enter:["Enter",13],esc:["Escape",27],space:[" ","Space",32],left:["ArrowLeft","Left",37],up:["ArrowUp","Up",38],right:["ArrowRight","Right",39],down:["ArrowDown","Down",40]},Qe={pristine:!0,dirty:!1,untouched:!0,touched:!1,valid:!0,invalid:!1,errors:[]},Rt={value:"",validators:[]},ut=["value","validators","pristine","dirty","untouched","touched","valid","invalid","errors"],k=(e,t)=>{const i=t.key||t.keyIdentifier||t.keyCode;return Pt[e].indexOf(i)!==-1};function Et(e,t,i){e&&t&&e.removeEventListener(t,i,!1)}function Mt(e,t,i){e&&t&&e.detachEvent("on"+t,i)}const T=typeof window>"u"?()=>{}:window.document.removeEventListener?Et:Mt;function _t(e,t,i){e&&t&&i&&e.addEventListener(t,i,!1)}function Ft(e,t,i){e&&t&&i&&e.attachEvent("on"+t,i)}const O=typeof window>"u"?()=>{}:window.document.addEventListener?_t:Ft,ct=e=>e.map(t=>t.type==="element"?nt(t.name,t.attributes,ct(t.children)):t.value);function pt(e,t){if(!e||!t)return;const i=t.split(" ");let a=" "+e.className+" ";for(let s=0,r=i.length;si&&i[a],e)}function ne(e,t,i){return t&&t.split(".").reduce((a,s)=>(Object.keys(i).forEach(r=>{a[s][r]=i[r]}),a&&a[s]),e),Object.keys(i).forEach(a=>{e[a]=i[a]}),e}function S(e){return`${e?`${e}-`:""}${Math.random().toString(36).substr(2,9)}`}const D={"en-US":/^[A-Z]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ω]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sl-SI":/^[A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/},N={"en-US":/^[0-9A-Z]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sl-SI":/^[0-9A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/};["AU","GB","HK","IN","NZ","ZA","ZM"].forEach(e=>{D[`en-${e}`]=D["en-US"],N[`en-${e}`]=N["en-US"]}),["AE","BH","DZ","EG","IQ","JO","KW","LB","LY","MA","QM","QA","SA","SD","SY","TN","YE"].forEach(e=>{D[`ar-${e}`]=D.ar,N[`ar-${e}`]=N.ar}),D["pt-BR"]=D["pt-PT"],N["pt-BR"]=N["pt-PT"],D["pl-Pl"]=D["pl-PL"],N["pl-Pl"]=N["pl-PL"];const Ye=/^(([^<>()[\]\\.,;:\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,}))$/,jt={alpha:function(e,t={}){const i=t.locale||"en-US",a=s=>{let r=String(s);return t.allowDashes&&(r=r.replace(/-/g,"")),t.allowSpaces&&(r=r.replace(/ /g,"")),r};return e.constructor===Array?e.every(s=>D[i].test(a(s))):D[i].test(a(e))},alphanumeric:function(e,t={}){const i=t.locale||"en-US",a=s=>{let r=String(s);return t.allowDashes&&(r=r.replace(/-/g,"")),t.allowSpaces&&(r=r.replace(/ /g,"")),r};return e.constructor===Array?e.every(s=>N[i].test(a(s))):N[i].test(a(e))},custom:function(e,t={validator:()=>!0}){return e.constructor===Array?e.every(i=>t.validator(i)):t.validator(e)},number:function(e,t={allowNegative:!1,allowDecimal:!1}){let i="\\d+";t.allowNegative&&(i="[-]?"+i),t.allowDecimal&&(i+="([\\.\\,]\\d+)?");const a=new RegExp(`^${i}$`);return e.constructor===Array?e.every(s=>a.test(s)):a.test(e)},email:function(e){return e.constructor===Array?e.every(t=>!t||Ye.test(String(t))):!e||Ye.test(String(e))},max:function(e,t={value:0}){if(e==null)return!1;const i=a=>Number(a);return Array.isArray(e)?e.every(a=>i(a)<=t.value):i(e)<=t.value},maxLength:function(e,t={value:0}){return e!=null&&(e.constructor===Array?e.length<=t.value:typeof e=="object"?Object.keys(e).length<=t.value:String(e).length<=t.value)},min:function(e,t={value:0}){if(e==null)return!1;const i=a=>Number(a);return Array.isArray(e)?e.every(a=>i(a)>=t.value):i(e)>=t.value},minLength:function(e,t={value:0}){return e!=null&&(e.constructor===Array?e.length>=t.value:typeof e=="object"?Object.keys(e).length>=t.value:String(e).length>=t.value)},required:function(e,t={invalidateFalse:!1}){return e!=null&&(e.constructor===Array?!!e.length:typeof e=="boolean"?!t.invalidateFalse||e:!!String(e).trim().length)},sameAs:function(e,t={}){if(!t.target)return!1;const i=M(t.schema(),t.target);if(!i)throw new Error(`Could not find target with name '${t.target}' in 'sameAs' validator.`);return e===i.value}};function ht(e){const t=Object.keys(e).length===0||Array.isArray(e.validators)||e.hasOwnProperty("value")?{...Qe,...Rt}:Qe;return Object.entries(t).forEach(([i,a])=>{e.hasOwnProperty(i)||(e[i]=a)}),Object.keys(e).filter(i=>!ut.includes(i)).forEach(i=>{(typeof e[i]=="object"||Array.isArray(e[i]))&&(e[i]=ht(e[i]))}),e}const Ee={locale:"en",messages:{en:{validation:{alpha:e=>{let t;switch(!0){case(e.allowSpaces&&e.allowDashes):t="letters, spaces, and dashes";break;case e.allowSpaces:t="letters and spaces";break;case e.allowDashes:t="letters and dashes";break;default:t="letters"}return`Please enter ${t} only.`},alphanumeric:e=>{let t;switch(!0){case(e.allowSpaces&&e.allowDashes):t="letters, numbers, spaces, and dashes";break;case e.allowSpaces:t="letters, numbers, and spaces";break;case e.allowDashes:t="letters, numbers, and dashes";break;default:t="letters and numbers"}return`Please enter ${t} only.`},number:e=>{let t;switch(!0){case(e.allowNegative&&e.allowDecimal):t="positive or negative decimal numbers";break;case e.allowNegative:t="positive or negative numbers";break;case e.allowDecimal:t="decimal numbers";break;default:t="numbers"}return`Please enter ${t} only.`},email:()=>"Please enter a valid email address.",max:()=>"Please enter a maximum value of {value}.",maxLength:()=>"Please enter up to {value} characters.",min:()=>"Please enter a minimum value of {value}.",minLength:()=>"Please enter at least {value} characters.",required:()=>"Please enter a value for this field.",sameAs:()=>"Please make sure that the two values match.",custom:()=>"Please enter a correct value for this field."}}}};function Gt(e,t=""){const i=[];return e.valid=(e.validators||[]).reduce((a,s)=>{const r=typeof s=="string"?{name:s}:s,n=jt[r.name](e.value,r);if(!n){const{name:b,message:B,...F}=r,w={name:t.split(".").pop(),value:e.value,...F},xt=(B instanceof Function?B():B)||function(We,ie={}){const ae=M(Ee.messages[Ee.locale],We),Ct=dt(ae)?ae(ie):ae||We;return Object.keys(ie).reduce((St,Ue)=>St.replace(new RegExp(`{${Ue}}`,"g"),`${ie[Ue]}`),Ct)}(`validation.${b}`,w);i.push({name:b,message:xt,path:t})}return a&&n},!0),e.invalid=!e.valid,e.errors=i,e}function mt(e,t=""){return e.valid=Object.keys(e).filter(i=>!ut.includes(i)).reduce((i,a)=>(Object.keys(e[a]).length===0||e[a].validators||e[a].value?e[a]=Gt(e[a],`${t}`?`${t}.${a}`:a):e[a]=mt(e[a],`${t}`?`${t}.${a}`:a),i&&e[a].valid),!0),e.invalid=!e.valid,e}function le(e){return mt(e,"")}const Zt=Object.freeze(Object.defineProperty({__proto__:null,inkCaretDown:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"28",viewBox:"0 0 16 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"caret-down",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M16 11c0 0.266-0.109 0.516-0.297 0.703l-7 7c-0.187 0.187-0.438 0.297-0.703 0.297s-0.516-0.109-0.703-0.297l-7-7c-0.187-0.187-0.297-0.438-0.297-0.703 0-0.547 0.453-1 1-1h14c0.547 0 1 0.453 1 1z"},children:[]}]},inkCheck:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"check",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M23.625 3.5l-13.125 13.125-6.125-6.125-4.375 4.375 10.5 10.5 17.5-17.5z"},children:[]}]},inkChevronDown:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"chevron-down",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M26.297 12.625l-11.594 11.578c-0.391 0.391-1.016 0.391-1.406 0l-11.594-11.578c-0.391-0.391-0.391-1.031 0-1.422l2.594-2.578c0.391-0.391 1.016-0.391 1.406 0l8.297 8.297 8.297-8.297c0.391-0.391 1.016-0.391 1.406 0l2.594 2.578c0.391 0.391 0.391 1.031 0 1.422z"},children:[]}]},inkCircle:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"28",viewBox:"0 0 24 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"circle",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M24 14c0 6.625-5.375 12-12 12s-12-5.375-12-12 5.375-12 12-12 12 5.375 12 12z"},children:[]}]},inkDanger:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"danger",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M14 2.625c-3.038 0-5.895 1.183-8.043 3.332s-3.332 5.005-3.332 8.043c0 3.038 1.183 5.895 3.332 8.043s5.005 3.332 8.043 3.332c3.038 0 5.895-1.183 8.043-3.332s3.332-5.005 3.332-8.043c0-3.038-1.183-5.895-3.332-8.043s-5.005-3.332-8.043-3.332zM14 0v0c7.732 0 14 6.268 14 14s-6.268 14-14 14c-7.732 0-14-6.268-14-14s6.268-14 14-14zM12.25 19.25h3.5v3.5h-3.5zM12.25 5.25h3.5v10.5h-3.5z"},children:[]}]},inkInfo:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"info",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M12.25 8.313c0-0.722 0.591-1.313 1.313-1.313h0.875c0.722 0 1.313 0.591 1.313 1.313v0.875c0 0.722-0.591 1.313-1.313 1.313h-0.875c-0.722 0-1.313-0.591-1.313-1.313v-0.875z"},children:[]},{name:"path",type:"element",value:"",attributes:{d:"M17.5 21h-7v-1.75h1.75v-5.25h-1.75v-1.75h5.25v7h1.75z"},children:[]},{name:"path",type:"element",value:"",attributes:{d:"M14 0c-7.732 0-14 6.268-14 14s6.268 14 14 14 14-6.268 14-14-6.268-14-14-14zM14 25.375c-6.282 0-11.375-5.093-11.375-11.375s5.093-11.375 11.375-11.375 11.375 5.093 11.375 11.375-5.093 11.375-11.375 11.375z"},children:[]}]},inkMinus:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"minus",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M0 11.375v5.25c0 0.483 0.392 0.875 0.875 0.875h26.25c0.483 0 0.875-0.392 0.875-0.875v-5.25c0-0.483-0.392-0.875-0.875-0.875h-26.25c-0.483 0-0.875 0.392-0.875 0.875z"},children:[]}]},inkPlus:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"plus",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M27.125 10.5h-9.625v-9.625c0-0.483-0.392-0.875-0.875-0.875h-5.25c-0.483 0-0.875 0.392-0.875 0.875v9.625h-9.625c-0.483 0-0.875 0.392-0.875 0.875v5.25c0 0.483 0.392 0.875 0.875 0.875h9.625v9.625c0 0.483 0.392 0.875 0.875 0.875h5.25c0.483 0 0.875-0.392 0.875-0.875v-9.625h9.625c0.483 0 0.875-0.392 0.875-0.875v-5.25c0-0.483-0.392-0.875-0.875-0.875z"},children:[]}]},inkSearch:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"search",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M27.132 23.827l-6.632-5.641c-0.686-0.617-1.419-0.9-2.011-0.873 1.566-1.834 2.511-4.213 2.511-6.813 0-5.799-4.701-10.5-10.5-10.5s-10.5 4.701-10.5 10.5 4.701 10.5 10.5 10.5c2.6 0 4.98-0.946 6.813-2.511-0.027 0.592 0.256 1.326 0.873 2.011l5.641 6.632c0.966 1.073 2.544 1.164 3.506 0.201s0.872-2.54-0.201-3.506zM10.5 17.5c-3.866 0-7-3.134-7-7s3.134-7 7-7 7 3.134 7 7-3.134 7-7 7z"},children:[]}]},inkSort:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"28",viewBox:"0 0 16 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"sort",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M16 17c0 0.266-0.109 0.516-0.297 0.703l-7 7c-0.187 0.187-0.438 0.297-0.703 0.297s-0.516-0.109-0.703-0.297l-7-7c-0.187-0.187-0.297-0.438-0.297-0.703 0-0.547 0.453-1 1-1h14c0.547 0 1 0.453 1 1zM16 11c0 0.547-0.453 1-1 1h-14c-0.547 0-1-0.453-1-1 0-0.266 0.109-0.516 0.297-0.703l7-7c0.187-0.187 0.438-0.297 0.703-0.297s0.516 0.109 0.703 0.297l7 7c0.187 0.187 0.297 0.438 0.297 0.703z"},children:[]}]},inkSortAsc:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"28",viewBox:"0 0 16 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"sort-asc",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M16 11c0 0.547-0.453 1-1 1h-14c-0.547 0-1-0.453-1-1 0-0.266 0.109-0.516 0.297-0.703l7-7c0.187-0.187 0.438-0.297 0.703-0.297s0.516 0.109 0.703 0.297l7 7c0.187 0.187 0.297 0.438 0.297 0.703z"},children:[]}]},inkSortDesc:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"28",viewBox:"0 0 16 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"sort-desc",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M16 17c0 0.266-0.109 0.516-0.297 0.703l-7 7c-0.187 0.187-0.438 0.297-0.703 0.297s-0.516-0.109-0.703-0.297l-7-7c-0.187-0.187-0.297-0.438-0.297-0.703 0-0.547 0.453-1 1-1h14c0.547 0 1 0.453 1 1z"},children:[]}]},inkTimes:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"times",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M27.745 22.495c-0-0-0-0-0-0l-8.494-8.494 8.494-8.494c0-0 0-0 0-0 0.091-0.091 0.158-0.198 0.2-0.312 0.116-0.311 0.050-0.675-0.2-0.925l-4.013-4.013c-0.25-0.25-0.614-0.316-0.925-0.2-0.114 0.042-0.221 0.109-0.312 0.2 0 0-0 0-0 0l-8.494 8.494-8.494-8.494c-0-0-0-0-0-0-0.091-0.091-0.198-0.158-0.312-0.2-0.311-0.116-0.675-0.050-0.925 0.2l-4.013 4.013c-0.25 0.25-0.316 0.614-0.2 0.925 0.042 0.114 0.109 0.221 0.2 0.312 0 0 0 0 0 0l8.494 8.494-8.494 8.494c-0 0-0 0-0 0-0.091 0.091-0.157 0.198-0.2 0.312-0.116 0.311-0.050 0.675 0.2 0.925l4.013 4.013c0.25 0.25 0.614 0.316 0.925 0.2 0.114-0.042 0.221-0.109 0.312-0.2 0-0 0-0 0-0l8.494-8.494 8.494 8.494c0 0 0 0 0 0 0.092 0.091 0.198 0.158 0.312 0.2 0.311 0.116 0.675 0.050 0.925-0.2l4.013-4.013c0.25-0.25 0.316-0.614 0.2-0.925-0.042-0.114-0.109-0.221-0.2-0.312z"},children:[]}]},inkWarning:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"warning",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M14 2.537l11.733 23.385h-23.467l11.733-23.385zM14 0c-0.603 0-1.207 0.407-1.665 1.221l-11.951 23.819c-0.916 1.628-0.137 2.96 1.731 2.96h23.77c1.868 0 2.647-1.332 1.731-2.96h0l-11.951-23.819c-0.458-0.814-1.061-1.221-1.665-1.221v0z"},children:[]},{name:"path",type:"element",value:"",attributes:{d:"M15.75 22.75c0 0.966-0.784 1.75-1.75 1.75s-1.75-0.784-1.75-1.75c0-0.966 0.784-1.75 1.75-1.75s1.75 0.784 1.75 1.75z"},children:[]},{name:"path",type:"element",value:"",attributes:{d:"M14 19.25c-0.966 0-1.75-0.784-1.75-1.75v-5.25c0-0.966 0.784-1.75 1.75-1.75s1.75 0.784 1.75 1.75v5.25c0 0.966-0.784 1.75-1.75 1.75z"},children:[]}]}},Symbol.toStringTag,{value:"Module"})),Je="inkline-color-mode",re=e=>{let t;t=e==="system"?matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e,pt(document.body,"-light -dark"),_e(document.body,`-${t}`)},Kt={components:{},icons:{},colorMode:"system",locale:"en",validateOn:["input","blur"],color:"",size:"",routerComponent:"router-link",componentOptions:{}};function qt({icons:e,components:t,...i}){return{form:a=>ht(a),setLocale(a){(function(s){Ee.locale=s})(a)},options:zt(i)}}const W={prototype:void 0},yn={install(e,t={}){const i={...Kt,...t};for(const r in i.components)e.component(i.components[r].name,i.components[r]);if(typeof window<"u"){const r=localStorage.getItem(Je);r&&(i.colorMode=r)}const a=qt(i);W.prototype=a,e.config.globalProperties.$inkline=a,e.provide("inkline",a);const s={...Zt,...i.icons};if(e.provide("inklineIcons",s),typeof window<"u"){Bt(()=>a.options.colorMode,b=>{re(b),localStorage.setItem(Je,b)});const r=()=>{a.options.colorMode==="system"&&re(a.options.colorMode)},n=matchMedia("(prefers-color-scheme: dark)");n.addEventListener?n.addEventListener("change",r):n.addListener(r),_e(document.body,"inkline"),re(i.colorMode)}}};function u(e,t,i=""){return()=>{var a;return W.prototype?(a=W.prototype.options.componentOptions[e])!=null&&a[t]?W.prototype.options.componentOptions[e][t]:W.prototype.options[t]:i}}function v(e){return["","xs","sm","md","lg","xl","xxl"].includes(e)}const ft=c({props:{collapse:{type:[String,Boolean],default:"md"},modelValue:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{open:this.modelValue,windowWidth:typeof window<"u"?window.innerWidth:0}},computed:{collapsibleClasses(){return{"-open":this.open,"-collapsible":this.collapsible,[`-collapse-${this.collapse}`]:!!this.collapse}},collapsible(){return this.collapse===!0||this.collapse===!1?this.collapse:this.windowWidth<=J[this.collapse][1]}},watch:{modelValue(e){this.open=e}},created(){typeof window<"u"&&(O(window,"resize",this.onWindowResize),this.onWindowResize())},beforeUnmount(){typeof window<"u"&&T(window,"resize",this.onWindowResize)},methods:{setOpen(e){this.open=e,this.$emit("update:modelValue",this.open)},toggleOpen(){this.open=!this.open,this.$emit("update:modelValue",this.open)},onWindowResize(){if(this.collapse===!0||this.collapse===!1||typeof window>"u")return;const e=window.innerWidth;this.windowWidth<=J[this.collapse][1]&&e>J[this.collapse][1]&&this.setOpen(!1),this.windowWidth=window.innerWidth}}}),R=c({inject:{formGroup:{default:()=>({})},form:{default:()=>({})}},computed:{isDisabled(){return this.disabled||this.form.isDisabled||this.formGroup.isDisabled},isReadonly(){return this.readonly||this.form.isReadonly||this.formGroup.isReadonly},parent(){return this.formGroup.$?this.formGroup:this.form},schema(){const e=this.parent.schema||{};return this.name!==""?M(e,`${this.name}`):e}}}),Z=c({props:{tag:{type:String,default:"a"}},computed:{isTag(){return this.$attrs.to?this.routerComponent:this.$attrs.href?"a":this.tag},isComponent(){return this.isTag===this.routerComponent},routerComponent(){return this.$inkline.options.routerComponent}}}),Wt=e=>({name:"offset",options:{offset:[0,e]}}),bt=({offset:e})=>[Wt(e),{name:"arrow",options:{padding:6}},{name:"preventOverflow",options:{padding:8}},{name:"computeStyles",options:{gpuAcceleration:!1,adaptive:!1}}],ee=c({props:{placement:{type:String,default:"auto"},offset:{type:Number,default:6},popperOptions:{type:Object,default:()=>({})}},data:()=>({popperInstance:void 0}),watch:{placement(e){this.popperInstance&&this.popperInstance.setOptions({placement:e})}},beforeUnmount(){this.destroyPopper()},methods:{createPopper(){if(typeof window>"u")return;const e=bt({offset:this.offset});this.popperInstance=At(this.$refs.wrapper,this.$refs.popup,{strategy:"fixed",placement:this.placement,modifiers:e,...this.popperOptions})},destroyPopper(){this.popperInstance&&(this.popperInstance.destroy(),this.popperInstance=void 0)}}}),Ge=c({props:{disabled:{type:Boolean,default:!1},modelValue:{type:Boolean,default:void 0},trigger:{type:Array,default:()=>["hover","click","focus"]},interactable:{type:Boolean,default:!0},hoverHideDelay:{type:Number,default:300}},emits:["update:modelValue","click-outside"],data(){return{visible:this.modelValue,triggerStack:0,hoverHideTransition:!1}},watch:{modelValue(e){e?this.show():this.hide()}},mounted(){if(!this.$slots.default)throw new Error("Popup components require one child element to be used as trigger.");this.addEventListeners()},beforeUnmount(){this.removeEventListeners()},methods:{show(){this.disabled||this.visible||(this.triggerStack+=1,this.visible=!0,this.createPopper(),this.$emit("update:modelValue",!0))},hide(){!this.disabled&&this.visible&&(this.triggerStack-=1,this.triggerStack<=0&&(this.triggerStack=0,this.visible=!1,this.$emit("update:modelValue",!1)))},hoverShow(){this.hoverHideTransition=!1,this.show()},hoverHide(){this.hoverHideTransition=!0,setTimeout(()=>{this.hoverHideTransition&&this.hide()},this.hoverHideDelay)},onClick(){this.visible?this.hide():this.show()},onClickOutside(e){this.visible&&this.$emit("click-outside",e),this.modelValue||this.hide()},addEventListeners(){[].concat(this.trigger).forEach(e=>{switch(e){case"hover":O(this.$refs.trigger,"mouseenter",this.interactable?this.hoverShow:this.show),O(this.$refs.trigger,"mouseleave",this.interactable?this.hoverHide:this.hide),this.interactable&&(O(this.$refs.popup,"mouseenter",this.hoverShow),O(this.$refs.popup,"mouseleave",this.hoverHide));break;case"click":O(this.$refs.trigger,"click",this.onClick);break;case"focus":for(const t of this.$refs.trigger.children)O(t,"focus",this.show),O(t,"blur",this.hide)}})},removeEventListeners(){[].concat(this.trigger).forEach(e=>{switch(e){case"hover":T(this.$refs.trigger,"mouseenter",this.interactable?this.hoverShow:this.show),T(this.$refs.trigger,"mouseleave",this.interactable?this.hoverHide:this.hide),this.interactable&&(T(this.$refs.popup,"mouseenter",this.hoverShow),T(this.$refs.popup,"mouseleave",this.hoverHide));break;case"click":T(this.$refs.trigger,"click",this.onClick);break;case"focus":for(const t of this.$refs.trigger.children)T(t,"focus",this.show),T(t,"blur",this.hide)}})},focusTrigger(){for(const e of this.$refs.trigger.children)if(ot(e)){e.focus();break}}}}),oe="IAlert",Ut=c({name:oe,inheritAttrs:!1,props:{size:{type:String,default:u(oe,"size"),validator:v},color:{type:String,default:u(oe,"color")},modelValue:{type:Boolean,default:!0},dismissible:{type:Boolean,default:!1},dismissAriaLabel:{type:String,default:"Dismiss"}},emits:["update:modelValue"],data:()=>({dismissed:!1}),computed:{classes(){return{[`-${this.color}`]:!!this.color,[`-${this.size}`]:!!this.size,"-dismissible":this.dismissible,"-with-icon":!!this.$slots.icon}}},watch:{modelValue(e){this.dismissed=!e}},methods:{dismiss(){this.dismissed=!0,this.$emit("update:modelValue",!1)}}}),Ht={key:0,class:"icon",role:"img","aria-hidden":"true"},Qt={class:"content"},Yt=["aria-label"],Jt=p(Ut,[["render",function(e,t,i,a,s,r){return $((l(),o("div",h({class:["alert",e.classes],role:"alert"},e.$attrs),[e.$slots.icon?(l(),o("span",Ht,[d(e.$slots,"icon")])):f("",!0),m("div",Qt,[d(e.$slots,"default")]),e.dismissible?(l(),o("span",{key:1,class:"dismiss",role:"button","aria-label":e.dismissAriaLabel,onClick:t[0]||(t[0]=(...n)=>e.dismiss&&e.dismiss(...n))},[d(e.$slots,"dismiss",{},()=>[t[1]||(t[1]=P("×"))])],8,Yt)):f("",!0)],16)),[[x,!e.dismissed]])}]]),de="IBadge",Xt=p(c({name:de,inheritAttrs:!1,props:{color:{type:String,default:u(de,"color")},size:{type:String,default:u(de,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["badge",e.classes]},e.$attrs),[d(e.$slots,"default")],16)}]]),ue="IBreadcrumb",ei=c({name:ue,inheritAttrs:!1,props:{ariaLabel:{type:String,default:"Breadcrumbs"},color:{type:String,default:u(ue,"color")},size:{type:String,default:u(ue,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),ti=["aria-label"],ii=p(ei,[["render",function(e,t,i,a,s,r){return l(),o("nav",h({class:["breadcrumb",e.classes],"aria-label":e.ariaLabel},e.$attrs),[m("ol",null,[d(e.$slots,"default")])],16,ti)}]]),ai=c({name:"IBreadcrumbItem",mixins:[Z],inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},href:{type:String,default:""},to:{type:[String,Object],default:""},tabindex:{type:[Number,String],default:0}},computed:{classes(){return{"-active":this.active,"-disabled":this.disabled}},tabIndex(){return this.disabled||this.active?-1:this.tabindex}}}),si=["is","href","to","tabindex","aria-current"],ni=p(ai,[["render",function(e,t,i,a,s,r){return l(),o("li",h({class:["breadcrumb-item",e.classes]},e.$attrs),[m("a",{is:e.isTag,href:e.href,to:e.to,tabindex:e.tabIndex,"aria-current":e.active?"location":null},[d(e.$slots,"default",{},void 0,!0)],8,si)],16)}],["__scopeId","data-v-28fa6b16"]]),ce="ILoader",li=c({name:ce,inheritAttrs:!1,props:{color:{type:String,default:u(ce,"color")},size:{type:String,default:u(ce,"size")}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),ri={key:0,class:"loader-text"},yt=p(li,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["loader",e.classes],role:"img","aria-hidden":"true"}),[e.$slots.default?(l(),o("span",ri,[d(e.$slots,"default")])):f("",!0),t[0]||(t[0]=m("svg",{viewBox:"25 25 50 50"},[m("circle",{cx:"50",cy:"50",r:"20",fill:"none","stroke-width":"4","stroke-miterlimit":"10"})],-1))],16)}]]),pe="IButton",vt=p(c({name:pe,components:{ILoader:yt},mixins:[Z],inject:{buttonGroup:{default:()=>({})},form:{default:()=>({})},formGroup:{default:()=>({})}},inheritAttrs:!1,props:{active:{type:Boolean,default:!1},block:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},color:{type:String,default:u(pe,"color")},disabled:{type:Boolean,default:!1},link:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},outline:{type:Boolean,default:!1},tag:{type:String,default:"button"},tabindex:{type:[Number,String],default:0},size:{type:String,default:u(pe,"size"),validator:v}},computed:{ariaBusy(){return this.role!=="button"?null:this.loading?"true":"false"},ariaDisabled(){return this.role!=="button"?null:this.disabled?"true":"false"},ariaPressed(){return this.role!=="button"?null:this.active?"true":"false"},classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-active":this.active,"-block":this.block,"-circle":this.circle,"-disabled":this.isDisabled,"-link":this.link,"-outline":this.outline}},isDisabled(){return this.disabled||this.buttonGroup.disabled||this.form.disabled||this.formGroup.disabled},role(){return this.$attrs.to||this.$attrs.href?"link":"button"},tabIndex(){return this.isDisabled?-1:this.tabindex}}}),[["render",function(e,t,i,a,s,r){const n=A("i-loader");return l(),V(Y(e.isTag),h(e.$attrs,{class:["button",e.classes],tag:e.tag,role:e.role,tabindex:e.tabIndex,disabled:e.isDisabled||e.loading,"aria-disabled":e.ariaDisabled,"aria-pressed":e.ariaPressed,"aria-busy":e.ariaBusy,"aria-live":"polite"}),{default:y(()=>[e.loading?d(e.$slots,"loading",{key:0},()=>[I(n)]):f("",!0),e.loading?f("",!0):d(e.$slots,"default",{key:1})]),_:3},16,["tag","role","tabindex","class","disabled","aria-disabled","aria-pressed","aria-busy"])}]]),oi=c({name:"IButtonGroup",inject:{form:{default:()=>({})},buttonGroup:{default:()=>({})},formGroup:{default:()=>({})}},provide(){return{buttonGroup:this}},inheritAttrs:!1,props:{vertical:{type:Boolean,default:!1},block:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},computed:{classes(){return{"-vertical":this.vertical,"-block":this.block,"-disabled":this.isDisabled}},isDisabled(){return this.disabled||this.buttonGroup.disabled||this.form.disabled||this.formGroup.disabled}}}),di=["aria-disabled"],ui=p(oi,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["button-group",e.classes],role:"group","aria-disabled":e.isDisabled},e.$attrs),[d(e.$slots,"default")],16,di)}]]),H={};for(const e of je){e!==""&&(H[e]={type:[String,Boolean,Number],default:!1});for(const t of["first","last"])H[`${t}${Re(e)}`]={type:Boolean,default:!1};for(const t of["offset","push","pull"])H[`${t}${Re(e)}`]={type:[String,Number],default:""}}const Ze=p(c({name:"IColumn",inheritAttrs:!1,props:H,computed:{classes(){return Object.keys(H).reduce((e,t)=>(this[t]&&(e[rt(`-${t}`,this[t])]=!0),e),{})}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["column",e.classes]},e.$attrs),[d(e.$slots,"default")],16)}]]),Ke=p(c({name:"IContainer",inheritAttrs:!1,props:{fluid:{type:Boolean,default:!1}},computed:{classes(){return{"-fluid":this.fluid}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["container",e.classes]},e.$attrs),[d(e.$slots,"default")],16)}]]),he="ICard",ci=c({name:he,inheritAttrs:!1,props:{color:{type:String,default:u(he,"color")},size:{type:String,default:u(he,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),pi={key:0,class:"card-header"},hi={key:1,class:"card-body"},mi={key:2,class:"card-footer"},fi=p(ci,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["card",e.classes]},e.$attrs),[e.$slots.header?(l(),o("header",pi,[d(e.$slots,"header")])):f("",!0),d(e.$slots,"image"),e.$slots.default?(l(),o("div",hi,[d(e.$slots,"default")])):f("",!0),e.$slots.footer?(l(),o("footer",mi,[d(e.$slots,"footer")])):f("",!0)],16)}]]),me="ICheckbox",bi=c({name:me,mixins:[R],inheritAttrs:!1,props:{color:{type:String,default:u(me,"color")},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},value:{default:!1},modelValue:{default:!1},name:{type:[String,Number],default:()=>S("checkbox")},native:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},size:{type:String,default:u(me,"size"),validator:v},tabindex:{type:[Number,String],default:0}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-native":this.native}},checked(){return this.formGroup.checked?this.formGroup.checked.includes(this.value):this.schema?this.schema.value:this.modelValue},tabIndex(){return this.isDisabled?-1:this.tabindex}},methods:{clickInputRef(){this.isReadonly||this.$refs.input.click()},onChange(e){var t,i,a,s;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e.target.checked),(s=(a=this.formGroup).onChange)==null||s.call(a,this.value),this.$emit("update:modelValue",e.target.checked)},onBlur(e){var t,i;(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)}}}),yi=["aria-checked"],vi=["checked","name","disabled","readonly",".indeterminate"],gi=["aria-checked","aria-disabled","aria-readonly","tabindex"],ki=p(bi,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["checkbox",e.classes],"aria-checked":e.checked?"true":"false",role:"checkbox"},e.$attrs),[m("input",{ref:"input",type:"checkbox",checked:e.checked,tabindex:"-1",name:e.name,disabled:e.isDisabled,readonly:e.isReadonly,".indeterminate":e.indeterminate,"aria-hidden":"true",onChange:t[0]||(t[0]=(...n)=>e.onChange&&e.onChange(...n))},null,40,vi),m("label",{class:"checkbox-label","aria-checked":e.checked,"aria-disabled":e.isDisabled,"aria-readonly":e.isReadonly,tabindex:e.tabIndex,onBlur:t[1]||(t[1]=(...n)=>e.onBlur&&e.onBlur(...n)),onClick:t[2]||(t[2]=(...n)=>e.clickInputRef&&e.clickInputRef(...n)),onKeydown:t[3]||(t[3]=E(Q((...n)=>e.clickInputRef&&e.clickInputRef(...n),["stop","prevent"]),["space"]))},[d(e.$slots,"default")],40,gi)],16,yi)}]]),fe="ICheckboxGroup",$i=c({name:fe,mixins:[R],provide(){return{formGroup:this}},inheritAttrs:!1,props:{color:{type:String,default:u(fe,"color")},disabled:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},modelValue:{default:()=>[]},name:{type:[String,Number],default:()=>S("checkbox-group")},readonly:{type:Boolean,default:!1},size:{type:String,default:u(fe,"size"),validator:v}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-inline":this.inline}},checked(){return this.schema?this.schema.value:this.modelValue}},methods:{onChange(e){var a,s;const t=[...this.modelValue],i=t.findIndex(r=>r===e);i!==-1?t.splice(i,1):t.push(e),(s=(a=this.parent).onInput)==null||s.call(a,this.name,t),this.$emit("update:modelValue",t)}}}),wi=["name"],Ii=p($i,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["form-group checkbox-group",e.classes],name:e.name,role:"checkboxgroup"},e.$attrs),[d(e.$slots,"default",{},void 0,!0)],16,wi)}],["__scopeId","data-v-4043b2ce"]]),be="ICollapsible",xi=c({name:be,provide(){return{collapsible:this}},inheritAttrs:!1,props:{accordion:{type:Boolean,default:!1},color:{type:String,default:u(be,"color")},size:{type:String,default:u(be,"size"),validator:v},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{activeItems:[].concat(this.modelValue)}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}},watch:{modelValue(e){this.activeItems=[].concat(e)}},methods:{onItemClick(e){if(this.accordion)return this.activeItems=this.activeItems.indexOf(e.name)>-1?[]:[e.name],this.activeItems;const t=this.activeItems.indexOf(e.name);t>-1?this.activeItems.splice(t,1):this.activeItems.push(e.name),this.$emit("update:modelValue",this.activeItems)}}}),Ci=p(xi,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["collapsible",e.classes],role:"tablist","aria-multiselectable":"true"},e.$attrs),[d(e.$slots,"default")],16)}]]),gt=p(c({name:"IExpandTransition",methods:{onEnter(e){const t=q(e,"width");e.style.width=t,e.style.position="absolute",e.style.visibility="hidden",e.style.height="auto";const i=q(e,"height");e.style.width=null,e.style.position=null,e.style.visibility=null,e.style.height=0,q(e,"height"),setTimeout(()=>{e.style.height=i})},onAfterEnter(e){e.style.height="auto"},onLeave(e){e.style.height=q(e,"height"),q(e,"height"),setTimeout(()=>{e.style.height=0})}}}),[["render",function(e,t,i,a,s,r){return l(),V(L,{name:"expand",onEnter:e.onEnter,onAfterEnter:e.onAfterEnter,onLeave:e.onLeave},{default:y(()=>[d(e.$slots,"default",{},void 0,!0)]),_:3},8,["onEnter","onAfterEnter","onLeave"])}],["__scopeId","data-v-1e395af5"]]),Si=c({name:"ICollapsibleItem",components:{IExpandTransition:gt},inject:{collapsible:{default:()=>({activeItems:[]})}},inheritAttrs:!1,props:{name:{type:String,default:()=>S("collapsible-item")},title:{type:String,default:""}},computed:{active(){return this.collapsible.activeItems.indexOf(this.name)>-1},classes(){return{"-active":this.active}}},methods:{onClick(){this.collapsible.onItemClick(this)}}}),Bi=["name"],zi=["id","aria-expanded","aria-controls","aria-describedby"],Ai=["id","aria-hidden","aria-labelledby"],Vi={class:"content"},Oi=p(Si,[["render",function(e,t,i,a,s,r){const n=A("i-expand-transition");return l(),o("div",h({class:["collapsible-item",e.classes],name:e.name},e.$attrs),[m("a",{class:"collapsible-header",role:"tab",id:`collapsible-item-heading-${e.name}`,"aria-expanded":e.active?"true":"false","aria-controls":`collapsible-item-content-${e.name}`,"aria-describedby":`collapsible-item-content-${e.name}`,tabindex:"0",onClick:t[0]||(t[0]=(...b)=>e.onClick&&e.onClick(...b)),onKeydown:[t[1]||(t[1]=E(Q((...b)=>e.onClick&&e.onClick(...b),["prevent"]),["space"])),t[2]||(t[2]=E(Q((...b)=>e.onClick&&e.onClick(...b),["prevent"]),["enter"]))]},[d(e.$slots,"header",{},()=>[P(_(e.title),1)]),t[3]||(t[3]=m("i",{class:"icon"},null,-1))],40,zi),I(n,null,{default:y(()=>[$(m("div",{class:"collapsible-body",role:"tabpanel",id:`collapsible-item-content-${e.name}`,"aria-hidden":e.active?"false":"true","aria-labelledby":`collapsible-item-heading-${e.name}`},[m("div",Vi,[d(e.$slots,"default")])],8,Ai),[[x,e.active]])]),_:3})],16,Bi)}]]),Li=(e,t)=>i=>{(function(a){return!!a&&!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)})(e)&&i.target&&(e===i.target||e.contains(i.target)||t.value(i))},K={beforeMount(e,t){typeof window<"u"&&O(window.document,"mousedown",Li(e,t))}},ye="IDropdown",Di=c({name:ye,directives:{ClickOutside:K},mixins:[ee,Ge],provide(){return{dropdown:this}},inject:{navbar:{default:()=>({onItemClick:()=>{}})},sidebar:{default:()=>({onItemClick:()=>{}})}},inheritAttrs:!1,props:{animationDuration:{type:Number,default:300},color:{type:String,default:u(ye,"color")},disabled:{type:Boolean,default:!1},hideOnItemClick:{type:Boolean,default:!0},keydownTrigger:{type:Array,default:()=>["up","down","enter","space","tab","esc"]},keydownItem:{type:Array,default:()=>["up","down","enter","space","tab","esc"]},modelValue:{type:Boolean,default:!1},arrow:{type:Boolean,default:!0},placement:{type:String,default:"bottom"},trigger:{type:[String,Array],default:()=>["click"]},offset:{type:Number,default:6},interactable:{type:Boolean,default:!0},popperOptions:{type:Object,default:()=>({})},size:{type:String,default:u(ye,"size"),validator:v}},emits:["click-outside","update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}},mounted(){for(const e of this.$refs.trigger.children)O(e,"keydown",this.onTriggerKeyDown);O(this.$refs.popup,"keydown",this.onItemKeyDown)},beforeUnmount(){for(const e of this.$refs.trigger.children)T(e,"keydown",this.onTriggerKeyDown);T(this.$refs.popup,"keydown",this.onItemKeyDown)},methods:{onEscape(){this.visible=!1,this.$emit("update:modelValue",!1)},handleClickOutside(e){this.visible=!1,this.$emit("update:modelValue",!1),this.onClickOutside(e)},getFocusableItems(){const e=[];for(const t of this.$refs.body.children)Fe(t)&&e.push(t);return e},onTriggerKeyDown(e){if(this.keydownTrigger.length===0)return;const t=this.getFocusableItems(),i=t.findIndex(s=>s.active),a=t[i>-1?i:0];switch(!0){case(k("up",e)&&this.keydownTrigger.includes("up")):case(k("down",e)&&this.keydownTrigger.includes("down")):this.show(),setTimeout(()=>{a.focus()},this.visible?0:this.animationDuration),e.preventDefault(),e.stopPropagation();break;case(k("enter",e)&&this.keydownTrigger.includes("enter")):case(k("space",e)&&this.keydownTrigger.includes("space")):this.onClick(),this.visible||setTimeout(()=>{a.focus()},this.animationDuration),e.preventDefault();break;case(k("tab",e)&&this.keydownTrigger.includes("tab")):case(k("esc",e)&&this.keydownTrigger.includes("esc")):this.hide()}},onItemKeyDown(e){if(this.keydownItem.length!==0)switch(!0){case(k("up",e)&&this.keydownItem.includes("up")):case(k("down",e)&&this.keydownItem.includes("down")):const t=this.getFocusableItems(),i=t.findIndex(r=>r===e.target),a=t.length-1;let s;s=k("up",e)?i>0?i-1:0:i{e.onItemClick()})}}}),Ni={class:"dropdown-trigger",ref:"trigger"},Ti=["aria-hidden"],Pi={key:0,"data-popper-arrow":""},Ri={key:1,class:"dropdown-header"},Ei={key:2,class:"dropdown-body",ref:"body"},Mi={key:3,class:"dropdown-footer"},_i=p(Di,[["render",function(e,t,i,a,s,r){const n=G("click-outside");return $((l(),o("div",h({class:"dropdown-wrapper",ref:"wrapper","aria-haspopup":"true",onKeyup:t[0]||(t[0]=E((...b)=>e.onEscape&&e.onEscape(...b),["esc"]))},e.$attrs),[m("div",Ni,[d(e.$slots,"default")],512),I(L,{name:"zoom-in-top-transition",onAfterLeave:e.destroyPopper},{default:y(()=>[$(m("div",{class:z(["dropdown",e.classes]),role:"menu",ref:"popup","aria-hidden":e.visible?"false":"true"},[e.arrow?(l(),o("span",Pi)):f("",!0),e.$slots.header?(l(),o("div",Ri,[d(e.$slots,"header")])):f("",!0),e.$slots.body?(l(),o("div",Ei,[d(e.$slots,"body")],512)):f("",!0),e.$slots.footer?(l(),o("div",Mi,[d(e.$slots,"footer")])):f("",!0)],10,Ti),[[x,e.visible]])]),_:3},8,["onAfterLeave"])],16)),[[n,e.onClickOutside]])}]]),Fi=p(c({name:"IDropdownDivider",inheritAttrs:!1}),[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:"dropdown-divider",role:"separator"},e.$attrs),null,16)}]]),ji=p(c({name:"IDropdownItem",mixins:[Z],inject:{dropdown:{default:()=>({})}},inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},plaintext:{type:Boolean,default:!1},tag:{type:String,default:"div"},tabindex:{type:[Number,String],default:0}},computed:{classes(){return{"-active":this.active,"-disabled":this.disabled,"-plaintext":this.plaintext}},role(){return this.$attrs.to||this.$attrs.href?"link":"menuitem"},tabIndex(){return this.disabled?-1:this.tabindex}},methods:{onClick(e){var t,i;(i=(t=this.dropdown).onItemClick)==null||i.call(t,this,e)}}}),[["render",function(e,t,i,a,s,r){return l(),V(Y(e.isTag),h(e.$attrs,{class:["dropdown-item",e.classes],role:e.role,tag:e.tag,tabindex:e.tabIndex,disabled:e.disabled,"aria-disabled":e.disabled,"aria-pressed":e.active,onClick:e.onClick}),{default:y(()=>[d(e.$slots,"default")]),_:3},16,["class","role","tag","tabindex","disabled","aria-disabled","aria-pressed","onClick"])}]]),Xe="IForm",Gi=c({name:Xe,mixins:[R],provide(){return{form:this}},inheritAttrs:!1,props:{color:{type:String,default:""},disabled:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},name:{type:String,default:()=>S("form")},modelValue:{type:Object,default:()=>null},readonly:{type:Boolean,default:!1},size:{type:String,default:u(Xe,"size"),validator:v}},emits:["update:modelValue","submit"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-inline":this.inline}},schema(){return this.modelValue?this.modelValue:M(this.formGroup.schema||this.form.schema||{},this.name)}},methods:{onBlur(e,t){var i,a;if((a=(i=this.parent).onBlur)==null||a.call(i,this.name?`${this.name}.${e}`:e,t),this.modelValue){let s=U(this.modelValue);s=ne(s,e,{untouched:!1,touched:!0}),this.shouldValidate(e,"blur")&&(s=le(s)),this.$emit("update:modelValue",s)}},onInput(e,t){var i,a;if((a=(i=this.parent).onInput)==null||a.call(i,this.name?`${this.name}.${e}`:e,t),this.modelValue){let s=U(this.modelValue);s=function(r,n,b,B){return M(r,n)[b]=B,r}(s,e,"value",t),s=ne(s,e,{pristine:!1,dirty:!0}),this.shouldValidate(e,"input")&&(s=le(s)),this.$emit("update:modelValue",s)}},onSubmit(e){if(e.preventDefault(),this.modelValue){let t=U(this.modelValue);if(t=ne(le(t),"",{untouched:!1,touched:!0}),this.$emit("update:modelValue",t),t.invalid)return}this.$emit("submit",e)},shouldValidate(e,t){const i=M(this.modelValue,e);return(i.validateOn?[].concat(i.validateOn):this.$inkline.options.validateOn).includes(t)}}}),Zi=["name","readonly","disabled"],Ki=p(Gi,[["render",function(e,t,i,a,s,r){return l(),o("form",h(e.$attrs,{class:["form",e.classes],role:"form",name:e.name,readonly:e.isReadonly,disabled:e.isDisabled,onSubmit:t[0]||(t[0]=(...n)=>e.onSubmit&&e.onSubmit(...n))}),[d(e.$slots,"default",{},void 0,!0)],16,Zi)}],["__scopeId","data-v-575ccba7"]]),ve="IFormGroup",qi=c({name:ve,mixins:[R],provide(){return{formGroup:this}},props:{color:{type:String,default:u(ve,"color")},disabled:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},name:{type:String,default:""},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},size:{type:String,default:u(ve,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-inline":this.inline,"-required":this.required}}},methods:{onBlur(e,t){var i,a;(a=(i=this.parent)==null?void 0:i.onBlur)==null||a.call(i,this.name?`${this.name}.${e}`:e,t)},onInput(e,t){var i,a;(a=(i=this.parent)==null?void 0:i.onInput)==null||a.call(i,this.name?`${this.name}.${e}`:e,t)}}}),Wi=["name"],Ui=p(qi,[["render",function(e,t,i,a,s,r){return l(),o("fieldset",{class:z(["form-group",e.classes]),name:e.name,role:"group"},[d(e.$slots,"default")],10,Wi)}]]),Hi=c({name:"IFormError",inject:{formGroup:{default:()=>({})},form:{default:()=>({})}},props:{for:{type:String,default:""},visible:{type:[Array,String],default:()=>["touched","dirty","invalid"]}},computed:{parent(){return this.formGroup.$?this.formGroup:this.form},schema(){return this.for!==""?M(this.parent.schema||{},`${this.for}`):this.parent.schema||{}},errors(){return this.schema.errors||[]},isVisible(){let e=!0;return this.schema&&this.visible&&[].concat(this.visible).forEach(t=>{e=e&&this.schema[t]}),e}}}),Qi={key:0,class:"form-error","aria-live":"polite"},Yi=p(Hi,[["render",function(e,t,i,a,s,r){return e.schema?$((l(),V(L,{key:0,name:"fade-in-transition"},{default:y(()=>[e.errors.length>0?(l(),o("ul",Qi,[(l(!0),o(j,null,X(e.errors,n=>(l(),o("li",null,_(n.message),1))),256))])):f("",!0)]),_:1},512)),[[x,e.isVisible]]):f("",!0)}]]),et="IFormLabel",Ji=c({name:et,mixins:[R],props:{for:{type:String,default:""},placement:{type:String,default:""},size:{type:String,default:u(et,"size"),validator:v}},computed:{classes(){return{[`-${this.size}`]:!!this.size,[`-${this.placement}`]:!!this.placement}},forAttr(){return this.for}},methods:{getNextSibling(){return this.$el.nextSibling.querySelector("input, textarea")},onClick(){var e;this.for||((e=this.getNextSibling())==null||e.focus())}}}),Xi=["for"],ea=p(Ji,[["render",function(e,t,i,a,s,r){return l(),o("label",h(e.$attrs,{class:["form-label",e.classes],for:e.forAttr,onClick:t[0]||(t[0]=(...n)=>e.onClick&&e.onClick(...n))}),[d(e.$slots,"default")],16,Xi)}]]),tt="IHamburgerMenu",kt=p(c({name:tt,inheritAttrs:!1,props:{animation:{type:String,default:"close"},color:{type:String,default:u(tt,"color")},modelValue:{type:Boolean,default:!1}},emits:["update:modelValue"],computed:{classes(){return{...g(this),"-active":this.modelValue,[`-${this.animation}`]:!0}}},methods:{onClick(){this.$emit("update:modelValue",!this.modelValue)}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["hamburger-menu",e.classes],onClick:t[0]||(t[0]=(...n)=>e.onClick&&e.onClick(...n))}),t[1]||(t[1]=[m("span",{class:"hamburger-menu-bars"},null,-1)]),16)}]]),Me={};for(const e of je)for(const t of["start","center","end","top","middle","bottom","around","between","reverse"])Me[`${t}${Re(e)}`]={type:Boolean,default:!1};const qe=p(c({name:"IRow",inheritAttrs:!1,props:{noGutter:{type:Boolean,default:!1},noCollapse:{type:Boolean,default:!1},...Me},computed:{classes(){const e=Object.keys(Me).reduce((t,i)=>(this[i]&&(t[rt(`-${i}`,this[i])]=!0),t),{});return{"-no-gutter":this.noGutter,"-no-collapse":this.noCollapse,...e}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["row",e.classes]}),[d(e.$slots,"default")],16)}]]),ge="IHeader",ta=p(c({name:ge,components:{IContainer:Ke,IRow:qe,IColumn:Ze},inheritAttrs:!1,props:{color:{type:String,default:u(ge,"color")},cover:{type:Boolean,default:!1},fluid:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},size:{type:String,default:u(ge,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-cover":this.cover,"-fullscreen":this.fullscreen}}}}),[["render",function(e,t,i,a,s,r){const n=A("i-column"),b=A("i-row"),B=A("i-container");return l(),o("header",h(e.$attrs,{class:["header",e.classes]}),[I(B,{fluid:e.fluid},{default:y(()=>[I(b,null,{default:y(()=>[I(n,null,{default:y(()=>[d(e.$slots,"default")]),_:3})]),_:3})]),_:3},8,["fluid"])],16)}]]),it="IIcon",$t=p(c({name:it,inheritAttrs:!1,props:{name:{type:String,default:""},size:{type:String,default:u(it,"size"),validator:v}},setup(e){const t=Vt("inklineIcons"),i=se(()=>function(r,n="dash"){const b=n==="dash"?/-([a-z0-9])/g:/_([a-z0-9])/g;return r.replace(b,(B,F)=>F.toUpperCase())}(e.name)),a=se(()=>t[i.value]),s=se(()=>({"inkline-icon":!0,[`-${e.size}`]:!!e.size}));return Ot(()=>{i.value&&t[i.value]}),()=>{var r,n;return nt("svg",{class:s.value,...(r=a.value)==null?void 0:r.attributes},ct(((n=a.value)==null?void 0:n.children)||[]))}}}),[["render",function(e,t,i,a,s,r){const n=A("icon");return l(),V(n,h(e.$attrs,{size:e.size}),null,16,["size"])}]]),ke="IInput",ia=c({name:ke,mixins:[R],inheritAttrs:!1,props:{color:{type:String,default:u(ke,"color")},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},error:{type:[Array,Boolean],default:()=>["touched","dirty","invalid"]},id:{type:String,default:void 0},modelValue:{type:[String,Number],default:""},name:{type:[String,Number],default:()=>S("input")},plaintext:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},size:{type:String,default:u(ke,"size"),validator:v},tabindex:{type:[Number,String],default:0},type:{type:String,default:"text"},clearAriaLabel:{type:String,default:"Clear"}},emits:["update:modelValue","clear"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-error":this.hasError,"-readonly":this.isReadonly,"-prefixed":!!this.$slots.prefix,"-suffixed":!!this.$slots.suffix,"-prepended":!!this.$slots.prepend,"-appended":!!this.$slots.append}},hasError(){if(typeof this.error=="boolean")return this.error;if(this.schema&&this.error){let e=!0;return[].concat(this.error).forEach(t=>{e=e&&this.schema[t]}),e}return!1},tabIndex(){return this.isDisabled?-1:this.tabindex},isClearable(){return this.clearable&&!this.isDisabled&&!this.isReadonly&&this.value!==""},value(){return this.schema?this.schema.value:this.modelValue}},methods:{onBlur(e){var t,i;(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)},onInput(e){var t,i;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e.target.value),this.$emit("update:modelValue",e.target.value)},onClear(e){this.$emit("update:modelValue",""),this.$emit("clear",e)},focus(){this.$refs.input.focus()}}}),aa={key:0,class:"input-prepend"},sa={class:"input"},na={key:0,class:"input-prefix"},la=["value","name","id","type","tabindex","disabled","aria-disabled","readonly","aria-readonly"],ra={key:1,class:"input-suffix"},oa=["aria-label","aria-hidden"],da={key:1,class:"input-append"},te=p(ia,[["render",function(e,t,i,a,s,r){return l(),o("div",{class:z(["input-wrapper",e.classes])},[e.$slots.prepend?(l(),o("div",aa,[d(e.$slots,"prepend")])):f("",!0),m("div",sa,[e.$slots.prefix?(l(),o("span",na,[d(e.$slots,"prefix")])):f("",!0),m("input",h(e.$attrs,{value:e.value,ref:"input",name:e.name,id:e.id,type:e.type,tabindex:e.tabIndex,disabled:e.isDisabled,"aria-disabled":!!e.isDisabled&&"true",readonly:e.isReadonly||e.plaintext,"aria-readonly":!(!e.isReadonly&&!e.plaintext)&&"true",onInput:t[0]||(t[0]=(...n)=>e.onInput&&e.onInput(...n)),onBlur:t[1]||(t[1]=(...n)=>e.onBlur&&e.onBlur(...n))}),null,16,la),e.$slots.suffix||e.clearable&&e.isClearable?(l(),o("span",ra,[d(e.$slots,"clearable",{clear:e.onClear},()=>[e.clearable?$((l(),o("i",{key:0,class:"input-clear",role:"button","aria-label":e.clearAriaLabel,"aria-hidden":e.isClearable?"false":"true",onClick:t[2]||(t[2]=(...n)=>e.onClear&&e.onClear(...n))},null,8,oa)),[[x,e.isClearable]]):f("",!0)]),d(e.$slots,"suffix")])):f("",!0)]),e.$slots.append?(l(),o("div",da,[d(e.$slots,"append")])):f("",!0)],2)}]]),$e="INumberInput",ua=c({name:$e,components:{IButton:vt},extends:te,inheritAttrs:!1,props:{color:{type:String,default:u($e,"color")},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{type:String,default:""},modelValue:{type:[String,Number],default:""},name:{type:[String,Number],default:()=>S("input")},readonly:{type:Boolean,default:!1},size:{type:String,default:u($e,"size"),validator:v},tabindex:{type:[Number,String],default:0},min:{type:[Number,String],default:-1/0},max:{type:[Number,String],default:1/0},precision:{type:Number,default:0},step:{type:Number,default:1}},emits:["update:modelValue"],watch:{modelValue:{immediate:!0,handler(e){var i,a;let t=(e||"").toString().replace(/^[^0-9-]/,"").replace(/^(-)[^0-9]/,"$1").replace(new RegExp(`^(-?[0-9]+)[^0-9${this.precision>0?".":""}]`),"$1");this.precision>0&&(t=t.replace(/^(-?[0-9]+\.)[^0-9]/,"$1").replace(new RegExp(`^(-?[0-9]+\\.[0-9]{0,${this.precision}}).*`),"$1")),parseFloat(t)>=parseFloat(this.max)&&(t=this.max.toString()),parseFloat(t)<=parseFloat(this.min)&&(t=this.min.toString()),(a=(i=this.parent).onInput)==null||a.call(i,this.name,t),this.$emit("update:modelValue",t)}}},methods:{decrease(){this.$emit("update:modelValue",this.formatPrecision((Number(this.modelValue)-this.step).toString()))},increase(){this.$emit("update:modelValue",this.formatPrecision((Number(this.modelValue)+this.step).toString()))},formatPrecision(e){const t=e.split(".");let i=t[1]||"";for(let a=i.length;a0?`${t[0]}.${i}`:t[0]},onBlurFormatPrecision(e){var t,i;this.$emit("update:modelValue",this.formatPrecision(Number(this.modelValue).toString())),(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)}}}),ca={class:"input-prepend"},pa={class:"input"},ha={key:0,class:"input-prefix"},ma=["value","name","id","tabindex","disabled","aria-disabled","readonly","aria-readonly"],fa={key:1,class:"input-suffix"},ba=["aria-label","aria-hidden"],ya={class:"input-append"},va=p(ua,[["render",function(e,t,i,a,s,r){const n=A("i-button");return l(),o("div",{class:z(["input-wrapper -prepended -appended",e.classes])},[m("div",ca,[d(e.$slots,"prepend"),I(n,{type:"button",color:e.color,size:e.size,disabled:e.disabled,class:"input-button-decrease",onClick:e.decrease},{default:y(()=>t[3]||(t[3]=[P(" - ")])),_:1},8,["color","size","disabled","onClick"])]),m("div",pa,[e.$slots.prefix?(l(),o("span",ha,[d(e.$slots,"prefix")])):f("",!0),m("input",h(e.$attrs,{value:e.value,ref:"input",name:e.name,id:e.id,type:"text",tabindex:e.tabIndex,disabled:e.isDisabled,"aria-disabled":!!e.isDisabled&&"true",readonly:e.isReadonly,"aria-readonly":!!e.isReadonly&&"true",onInput:t[0]||(t[0]=(...b)=>e.onInput&&e.onInput(...b)),onBlur:t[1]||(t[1]=(...b)=>e.onBlur&&e.onBlur(...b))}),null,16,ma),e.$slots.suffix||e.clearable&&e.isClearable?(l(),o("span",fa,[d(e.$slots,"clearable",{clear:e.onClear},()=>[e.clearable?$((l(),o("i",{key:0,class:"input-clear",role:"button","aria-label":e.clearAriaLabel,"aria-hidden":e.isClearable?"false":"true",onClick:t[2]||(t[2]=(...b)=>e.onClear&&e.onClear(...b))},null,8,ba)),[[x,e.isClearable]]):f("",!0)]),d(e.$slots,"suffix")])):f("",!0)]),m("div",ya,[I(n,{type:"button",color:e.color,size:e.size,disabled:e.disabled,class:"input-button-increase",onClick:e.increase},{default:y(()=>t[4]||(t[4]=[P(" + ")])),_:1},8,["color","size","disabled","onClick"]),d(e.$slots,"append")])],2)}]]),we="ITextarea",ga=c({name:we,extends:te,inheritAttrs:!1,props:{color:{type:String,default:u(we,"color")},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{type:String,default:""},modelValue:{type:String,default:""},name:{type:[String,Number],default:()=>S("textarea")},readonly:{type:Boolean,default:!1},size:{type:String,default:u(we,"size"),validator:v},tabindex:{type:[Number,String],default:0}},emits:["update:modelValue"]}),ka={key:0,class:"input-prepend"},$a={class:"input"},wa={key:0,class:"input-prefix"},Ia=["value","name","id","tabindex","disabled","aria-disabled","readonly","aria-readonly"],xa={key:1,class:"input-suffix"},Ca={key:1,class:"input-append"},Sa=p(ga,[["render",function(e,t,i,a,s,r){return l(),o("div",{class:z(["input-wrapper",e.classes])},[e.$slots.prepend?(l(),o("div",ka,[d(e.$slots,"prepend")])):f("",!0),m("div",$a,[e.$slots.prefix?(l(),o("span",wa,[d(e.$slots,"prefix")])):f("",!0),m("textarea",h(e.$attrs,{value:e.value,ref:"input",role:"textbox",name:e.name,id:e.id,tabindex:e.tabIndex,disabled:e.isDisabled,"aria-disabled":!!e.isDisabled&&"true",readonly:e.isReadonly,"aria-readonly":!!e.isReadonly&&"true","aria-multiline":"true",onInput:t[0]||(t[0]=(...n)=>e.onInput&&e.onInput(...n)),onBlur:t[1]||(t[1]=(...n)=>e.onBlur&&e.onBlur(...n))}),null,16,Ia),e.$slots.suffix||e.clearable&&e.isClearable?(l(),o("span",xa,[d(e.$slots,"clearable",{clear:e.onClear},()=>[$(m("i",{class:"input-clear","aria-label":"Clear",onClick:t[2]||(t[2]=(...n)=>e.onClear&&e.onClear(...n))},null,512),[[x,e.isClearable]])]),d(e.$slots,"suffix")])):f("",!0)]),e.$slots.append?(l(),o("div",Ca,[d(e.$slots,"append")])):f("",!0)],2)}]]),Ba=p(c({name:"ILayout",inheritAttrs:!1,props:{vertical:{type:Boolean,default:!1}},computed:{classes(){return{"-vertical":this.vertical}}}}),[["render",function(e,t,i,a,s,r){return l(),o("main",h(e.$attrs,{class:["layout",e.classes]}),[d(e.$slots,"default",{},void 0,!0)],16)}],["__scopeId","data-v-9a9f03c1"]]),za=c({name:"ILayoutAside",inheritAttrs:!1}),Aa={class:"layout-aside-children"},Va=p(za,[["render",function(e,t,i,a,s,r){return l(),o("aside",h(e.$attrs,{class:"layout-aside"}),[m("div",Aa,[d(e.$slots,"default",{},void 0,!0)])],16)}],["__scopeId","data-v-6e13c28d"]]),Oa=p(c({name:"ILayoutContent",inheritAttrs:!1}),[["render",function(e,t,i,a,s,r){return l(),o("section",h(e.$attrs,{class:"layout-content"}),[d(e.$slots,"default",{},void 0,!0)],16)}],["__scopeId","data-v-5b197a5d"]]),La=p(c({name:"ILayoutFooter",inheritAttrs:!1}),[["render",function(e,t,i,a,s,r){return l(),o("footer",h(e.$attrs,{class:"layout-footer"}),[d(e.$slots,"default",{},void 0,!0)],16)}],["__scopeId","data-v-31bd8dbc"]]),Da=p(c({name:"ILayoutHeader",inheritAttrs:!1}),[["render",function(e,t,i,a,s,r){return l(),o("header",h(e.$attrs,{class:"layout-header"}),[d(e.$slots,"default",{},void 0,!0)],16)}],["__scopeId","data-v-ece9ef9b"]]),Ie="IListGroup",Na=p(c({name:Ie,inheritAttrs:!1,props:{border:{type:Boolean,default:!0},color:{type:String,default:u(Ie,"color")},size:{type:String,default:u(Ie,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-border":this.border}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["list-group",e.classes],role:"list"}),[d(e.$slots,"default")],16)}]]),Ta=p(c({name:"IListGroupItem",mixins:[Z],inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},tag:{type:String,default:"div"},tabindex:{type:[Number,String],default:0}},computed:{ariaDisabled(){return this.role==="link"?null:this.disabled?"true":"false"},classes(){return{"-active":this.active,"-disabled":this.disabled}},role(){return this.$attrs.to||this.$attrs.href?"link":"listitem"},tabIndex(){return this.disabled?-1:this.tabindex}}}),[["render",function(e,t,i,a,s,r){return l(),V(Y(e.isTag),h(e.$attrs,{class:["list-group-item",e.classes],tag:e.tag,role:e.role,tabindex:e.tabIndex,disabled:e.disabled,"aria-disabled":e.ariaDisabled}),{default:y(()=>[d(e.$slots,"default")]),_:3},16,["tag","role","tabindex","class","disabled","aria-disabled"])}]]),Pa=function(e){const t={};return(...i)=>{const a=JSON.stringify(i);return a in t||(t[a]=e(...i)),t[a]}}(function(e,t){if(!t)return[{text:e}];const i=[],a=e.toLowerCase(),s=t.toLowerCase();let r=0,n=0;for(;n=0;n=B?b:e.length,n&&(i.push({text:e.substring(r,n)}),r=n),B&&(n+=t.length,i.push({text:e.substring(r,n),marked:!0}),r=n)}return i}),Ra=c({name:"IMark",inheritAttrs:!1,props:{text:{type:String,default:""},query:{type:String,default:""}},computed:{parts(){return Pa(this.text,this.query)}}}),Ea={key:0},wt=p(Ra,[["render",function(e,t,i,a,s,r){return l(),o("span",Lt(Dt(e.$attrs)),[(l(!0),o(j,null,X(e.parts,({text:n,marked:b})=>(l(),o(j,null,[b?(l(),o("mark",Ea,_(n),1)):(l(),o(j,{key:1},[P(_(n),1)],64))],64))),256))],16)}]]),Ma=c({name:"IMedia",inheritAttrs:!1}),_a={class:"media-body"},Fa=p(Ma,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:"media"}),[d(e.$slots,"image"),m("div",_a,[d(e.$slots,"default")])],16)}]]),C={instances:{},stack:[],zIndex:1050,register(e){e&&e.name&&(C.instances[e.name]=e)},unregister(e){e&&e.name&&(C.instances[e.name]=null,delete C.instances[e.name])},open(e){typeof window<"u"&&(C.stack.push(e),C.instances[e].$el.style.zIndex=C.zIndex++)},close(e){typeof window<"u"&&C.stack.splice(C.stack.indexOf(e),1)},getTopOverlay(){const e=C.stack.slice(-1)[0]||"";return C.instances[e]},onPressEscape(){const e=C.getTopOverlay();e&&e.closeOnPressEscape&&e.hide()}};typeof window<"u"&&window.addEventListener("keydown",e=>{k("esc",e)&&C.onPressEscape()});const xe="IModal",ja=c({name:xe,directives:{ClickOutside:K},inheritAttrs:!1,props:{closeOnPressEscape:{type:Boolean,default:!0},closeAriaLabel:{type:String,default:"Close"},color:{type:String,default:u(xe,"color")},disabled:{type:Boolean,default:!1},hideOnClickOutside:{type:Boolean,default:!0},name:{type:String,default:()=>S("modal")},showClose:{type:Boolean,default:!0},size:{type:String,default:u(xe,"size"),validator:v},modelValue:{type:Boolean,default:!1},transition:{type:String,default:"zoom-in-center-transition"}},emits:["update:modelValue"],data(){return{visible:this.modelValue}},computed:{classes(){return{"-disabled":this.disabled,...g(this),[`-${this.size}`]:!!this.size}}},watch:{modelValue(e){e?this.show():this.hide()}},mounted(){C.register(this)},unmounted(){C.unregister(this)},methods:{show(){this.disabled||(this.visible=!0,this.$emit("update:modelValue",!0),C.open(this.name),typeof window<"u"&&_e(window.document.body,"-modal"))},hide(){this.disabled||(this.visible=!1,this.$emit("update:modelValue",!1),C.close(this.name),typeof window<"u"&&pt(window.document.body,"-modal"))},onClickOutside(){this.hideOnClickOutside&&this.hide()}}}),Ga=["aria-hidden","id","name","aria-labelledby"],Za={class:"modal"},Ka=["id"],qa=["aria-label"],Wa={key:1,class:"modal-body"},Ua={key:2,class:"modal-footer"},Ha=p(ja,[["render",function(e,t,i,a,s,r){const n=G("click-outside");return l(),V(L,{name:"fade-in-transition"},{default:y(()=>[$(m("div",h(e.$attrs,{class:["modal-wrapper",e.classes],role:"dialog","aria-modal":"true","aria-hidden":e.visible?"false":"true",id:e.name,name:e.name,"aria-labelledby":`${e.name}-header`}),[I(L,{name:e.transition},{default:y(()=>[$((l(),o("div",Za,[e.$slots.header?(l(),o("div",{key:0,class:"modal-header",id:`${e.name}-header`},[d(e.$slots,"header"),e.showClose?(l(),o("button",{key:0,class:"close","aria-hidden":"true","aria-label":e.closeAriaLabel,onClick:t[0]||(t[0]=(...b)=>e.hide&&e.hide(...b))},[d(e.$slots,"close",{},()=>[t[1]||(t[1]=m("i",{class:"icon"},null,-1))])],8,qa)):f("",!0)],8,Ka)):f("",!0),e.$slots.default?(l(),o("div",Wa,[d(e.$slots,"default")])):f("",!0),e.$slots.footer?(l(),o("div",Ua,[d(e.$slots,"footer")])):f("",!0)])),[[n,e.onClickOutside],[x,e.visible]])]),_:3},8,["name"])],16,Ga),[[x,e.visible]])]),_:3})}]]),Ce="INav",Qa=p(c({name:Ce,provide(){return{nav:this}},inject:{navbar:{default:()=>({onItemClick:()=>{}})},sidebar:{default:()=>({onItemClick:()=>{}})}},inheritAttrs:!1,props:{color:{type:String,default:u(Ce,"color")},size:{type:String,default:u(Ce,"size"),validator:v},vertical:{type:Boolean,default:!1}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-vertical":this.vertical}}},methods:{onItemClick(){[this.navbar,this.sidebar].forEach(e=>{e.onItemClick()})}}}),[["render",function(e,t,i,a,s,r){return l(),o("nav",h(e.$attrs,{class:["nav",e.classes],role:"menubar"}),[d(e.$slots,"default")],16)}]]),Ya=p(c({name:"INavItem",mixins:[Z],inject:{nav:{default:()=>({onItemClick:()=>{}})}},inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},stopPropagation:{type:Boolean,default:!1},tag:{type:String,default:"div"},tabindex:{type:[Number,String],default:0}},computed:{ariaDisabled(){return this.role==="link"?null:this.disabled?"true":"false"},classes(){return{"-active":this.active,"-disabled":this.disabled}},role(){return this.$attrs.to||this.$attrs.href?"link":"menuitem"},tabIndex(){return this.disabled?-1:this.tabindex}},methods:{onClick(e){this.stopPropagation||this.nav.onItemClick(this,e)}}}),[["render",function(e,t,i,a,s,r){return l(),V(Y(e.isTag),h(e.$attrs,{class:["nav-item",e.classes],role:e.role,tag:e.tag,tabindex:e.tabIndex,disabled:e.disabled,"aria-disabled":e.ariaDisabled,onClick:e.onClick}),{default:y(()=>[d(e.$slots,"default")]),_:3},16,["role","tag","tabindex","class","disabled","aria-disabled","onClick"])}]]),Se="INavbar",Ja=p(c({name:Se,components:{IContainer:Ke,IRow:qe,IColumn:Ze,IHamburgerMenu:kt},directives:{ClickOutside:K},mixins:[ft],provide(){return{navbar:this}},inheritAttrs:!1,props:{collapseOnItemClick:{type:Boolean,default:!0},collapseOnClickOutside:{type:Boolean,default:!0},color:{type:String,default:u(Se,"color")},fluid:{type:Boolean,default:!1},size:{type:String,default:u(Se,"size"),validator:v},menuAnimation:{type:String,default:"close"}},emits:["update:modelValue"],computed:{classes(){return{...this.collapsibleClasses,...g(this),[`-${this.size}`]:!!this.size}}},methods:{onItemClick(){this.collapseOnItemClick&&this.open&&this.setOpen(!1)},onClickOutside(){this.collapseOnClickOutside&&this.open&&this.setOpen(!1)}}}),[["render",function(e,t,i,a,s,r){const n=A("i-hamburger-menu"),b=A("i-column"),B=A("i-row"),F=A("i-container"),w=G("click-outside");return $((l(),o("nav",h(e.$attrs,{class:["navbar",e.classes]}),[I(F,{fluid:e.fluid},{default:y(()=>[I(B,null,{default:y(()=>[I(b,null,{default:y(()=>[I(n,{class:"collapse-toggle",animation:e.menuAnimation,color:e.color,modelValue:e.open,"onUpdate:modelValue":e.toggleOpen},null,8,["animation","color","modelValue","onUpdate:modelValue"]),d(e.$slots,"default")]),_:3})]),_:3})]),_:3},8,["fluid"])],16)),[[w,e.onClickOutside]])}]]),Xa=p(c({name:"INavbarBrand",mixins:[Z],inheritAttrs:!1,props:{tag:{type:String,default:"div"}}}),[["render",function(e,t,i,a,s,r){return l(),V(Y(e.isTag),h(e.$attrs,{class:"navbar-brand",tag:e.tag,translate:"no"}),{default:y(()=>[d(e.$slots,"default")]),_:3},16,["tag"])}]]),es=c({name:"INavbarCollapsible",components:{IExpandTransition:gt},inject:{navbar:{default:()=>({})}},inheritAttrs:!1,computed:{visible(){const e=typeof window>"u";return this.navbar.open||!this.navbar.collapsible||e}}}),ts=["aria-hidden","aria-expanded"],is=p(es,[["render",function(e,t,i,a,s,r){const n=A("i-expand-transition");return l(),V(n,null,{default:y(()=>[$(m("div",h(e.$attrs,{class:"navbar-collapsible","aria-hidden":e.visible?"false":"true","aria-expanded":e.visible?"true":"false"}),[d(e.$slots,"default")],16,ts),[[x,e.visible]])]),_:3})}]]),Be="IPagination",as=c({name:Be,inheritAttrs:!1,props:{ariaLabel:{type:String,default:"Pagination"},color:{type:String,default:u(Be,"color")},itemsPerPage:{type:Number,default:20},itemsTotal:{type:Number,default:0},limit:{type:[Number,Object],default:()=>({xs:3,sm:5})},quickLink:{type:Boolean,default:!1},modelValue:{type:Number,default:1},size:{type:String,default:u(Be,"size"),validator:v}},emits:["update:modelValue"],data:()=>({pageLimit:5}),computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}},pageCount(){return Math.ceil(this.itemsTotal/this.itemsPerPage)},showQuickPrevious(){return this.pageCount>this.pageLimit&&this.modelValue>this.pageLimit-(this.pageLimit-1)/2},showQuickNext(){return this.pageCount>this.pageLimit&&this.modelValuee.apply(s,a),t)}}(this.onWindowResize,250),typeof window<"u"&&(window.addEventListener("resize",this.debouncedOnWindowResize),this.onWindowResize())},unmounted(){typeof window<"u"&&window.removeEventListener("resize",this.debouncedOnWindowResize)},methods:{next(){this.modelValue!==this.pageCount&&this.onClick(this.modelValue+1)},quickNext(){if(!this.quickLink)return;const e=this.modelValue+(this.pageLimit-2);this.onClick(e>this.pageCount?this.pageCount:e)},previous(){this.modelValue!==1&&this.onClick(this.modelValue-1)},quickPrevious(){if(!this.quickLink)return;const e=this.modelValue-(this.pageLimit-2);this.onClick(e<1?1:e)},onClick(e){this.$emit("update:modelValue",e)},onWindowResize(){if(typeof this.limit=="number")return this.pageLimit=this.limit,this.pageLimit;for(const e of je.slice().reverse())if(this.limit.hasOwnProperty(e)&&typeof window<"u"&&window.innerWidth>=J[e][0])return this.pageLimit=this.limit[e],this.pageLimit}}}),ss=["aria-label"],ns={class:"pagination-items"},ls={"aria-hidden":"true"},rs=["aria-current","onClick"],os={"aria-hidden":"true"},ds=p(as,[["render",function(e,t,i,a,s,r){return l(),o("nav",h(e.$attrs,{class:["pagination",e.classes],role:"navigation","aria-label":e.ariaLabel}),[m("ul",ns,[e.pageCount>0?(l(),o("li",{key:0,class:z(["pagination-item -previous",{"-disabled":e.modelValue===1}]),onClick:t[0]||(t[0]=(...n)=>e.previous&&e.previous(...n))},[m("span",ls,[d(e.$slots,"previous",{},()=>[t[6]||(t[6]=P("<"))])])],2)):f("",!0),e.pageCount>0?(l(),o("li",{key:1,class:z(["pagination-item -first",{"-active":e.modelValue===1}]),onClick:t[1]||(t[1]=n=>e.onClick(1))}," 1 ",2)):f("",!0),e.showQuickPrevious?(l(),o("li",{key:2,class:z(["pagination-item -quick-previous",{"-disabled":!e.quickLink}]),onClick:t[2]||(t[2]=(...n)=>e.quickPrevious&&e.quickPrevious(...n))}," … ",2)):f("",!0),(l(!0),o(j,null,X(e.pages,n=>(l(),o("li",{class:z(["pagination-item",{"-active":e.modelValue===n}]),"aria-current":e.modelValue===n&&"page",onClick:b=>e.onClick(n)},_(n),11,rs))),256)),e.showQuickNext?(l(),o("li",{key:3,class:z(["pagination-item -quick-next",{"-disabled":!e.quickLink}]),onClick:t[3]||(t[3]=(...n)=>e.quickNext&&e.quickNext(...n))}," … ",2)):f("",!0),e.pageCount>1?(l(),o("li",{key:4,class:z(["pagination-item -last",{"-active":e.modelValue===e.pageCount}]),onClick:t[4]||(t[4]=n=>e.onClick(e.pageCount))},_(e.pageCount),3)):f("",!0),e.pageCount>0?(l(),o("li",{key:5,class:z(["pagination-item -next",{"-disabled":e.modelValue===e.pageCount}]),onClick:t[5]||(t[5]=(...n)=>e.next&&e.next(...n))},[m("span",os,[d(e.$slots,"next",{},()=>[t[7]||(t[7]=P(">"))])])],2)):f("",!0)])],16,ss)}]]),ze="IPopover",us=c({name:ze,directives:{ClickOutside:K},mixins:[ee,Ge],inheritAttrs:!1,props:{color:{type:String,default:u(ze,"color")},disabled:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!1},name:{type:String,default:()=>S("popover")},arrow:{type:Boolean,default:!0},placement:{type:String,default:"top"},trigger:{type:[String,Array],default:()=>["click"]},offset:{type:Number,default:6},interactable:{type:Boolean,default:!1},popperOptions:{type:Object,default:()=>({})},size:{type:String,default:u(ze,"size"),validator:v}},emits:["click-outside","update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}},methods:{onEscape(){this.visible=!1,this.$emit("update:modelValue",!1)},handleClickOutside(e){this.visible=!1,this.$emit("update:modelValue",!1),this.onClickOutside(e)}}}),cs=["id"],ps=["aria-describedby","aria-disabled","aria-expanded"],hs=["id","aria-hidden"],ms={key:0,"data-popper-arrow":""},fs={key:1,class:"popover-header"},bs={key:2,class:"popover-body"},ys={key:3,class:"popover-footer"},vs=p(us,[["render",function(e,t,i,a,s,r){const n=G("click-outside");return $((l(),o("div",h(e.$attrs,{class:["popover-wrapper",e.classes],ref:"wrapper",id:e.name,onKeyup:t[0]||(t[0]=E((...b)=>e.onEscape&&e.onEscape(...b),["esc"]))}),[m("div",{class:"popover-trigger",ref:"trigger","aria-describedby":`${e.name}-popup`,"aria-disabled":e.disabled?"true":"false","aria-expanded":e.visible?"true":"false"},[d(e.$slots,"default")],8,ps),I(L,{name:"zoom-in-top-transition",onAfterLeave:e.destroyPopper},{default:y(()=>[$(m("div",{class:"popover",ref:"popup",role:"tooltip","aria-live":"polite",id:`${e.name}-popup`,"aria-hidden":e.visible?"false":"true"},[e.arrow?(l(),o("span",ms)):f("",!0),e.$slots.header?(l(),o("div",fs,[d(e.$slots,"header")])):f("",!0),e.$slots.body?(l(),o("div",bs,[d(e.$slots,"body")])):f("",!0),e.$slots.footer?(l(),o("div",ys,[d(e.$slots,"footer")])):f("",!0)],8,hs),[[x,e.visible]])]),_:3},8,["onAfterLeave"])],16,cs)),[[n,e.onClickOutside]])}]]),Ae="IProgress",gs=p(c({name:Ae,provide(){return{progress:this}},inheritAttrs:!1,props:{color:{type:String,default:u(Ae,"color")},min:{type:[String,Number],default:0},max:{type:[String,Number],default:100},size:{type:String,default:u(Ae,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["progress",e.classes]}),[d(e.$slots,"default")],16)}]]),at="IProgressBar",ks=c({name:at,inject:{progress:{default:()=>({min:0,max:100})}},inheritAttrs:!1,props:{color:{type:String,default:u(at,"color","primary")},value:{type:[String,Number],default:0}},computed:{computedValue(){const e=typeof this.min=="string"?parseFloat(this.min):this.min;return 100*((typeof this.value=="string"?parseFloat(this.value.replace("%","")):this.value)-e)/((typeof this.max=="string"?parseFloat(this.max):this.max)-e)},min(){return this.progress.min},max(){return this.progress.max},style(){return{width:`${this.computedValue}%`}},classes(){return{...g(this)}}}}),$s=["aria-valuemin","aria-valuemax","aria-valuenow"],ws=p(ks,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["progress-bar",e.classes],style:e.style,role:"progressbar","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":e.computedValue}),[d(e.$slots,"default")],16,$s)}]]),Ve="IRadio",Is=c({name:Ve,mixins:[R],inheritAttrs:!1,props:{color:{type:String,default:u(Ve,"color")},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},value:{default:""},modelValue:{default:!1},name:{type:[String,Number],default:()=>S("radio")},native:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},size:{type:String,default:u(Ve,"size"),validator:v},tabindex:{type:[Number,String],default:0}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-native":this.native}},checked(){return this.formGroup.checked===this.value},tabIndex(){return this.isDisabled?-1:this.tabindex}},methods:{clickInputRef(){this.isReadonly||this.$refs.input.click()},onChange(e){var t,i,a,s;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e.target.checked),(s=(a=this.formGroup).onChange)==null||s.call(a,this.value),this.$emit("update:modelValue",e.target.checked)},onBlur(e){var t,i;(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)}}}),xs=["checked","name","disabled","readonly",".indeterminate"],Cs=["aria-checked","aria-disabled","aria-readonly","tabindex"],Ss=p(Is,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["radio",e.classes],role:"radio"}),[m("input",{checked:e.checked,ref:"input",type:"radio",tabindex:"-1",name:e.name,disabled:e.isDisabled,readonly:e.isReadonly,".indeterminate":e.indeterminate,onChange:t[0]||(t[0]=(...n)=>e.onChange&&e.onChange(...n))},null,40,xs),m("label",{class:"radio-label","aria-checked":e.checked,"aria-disabled":e.isDisabled,"aria-readonly":e.isReadonly,tabindex:e.tabIndex,onBlur:t[1]||(t[1]=(...n)=>e.onBlur&&e.onBlur(...n)),onClick:t[2]||(t[2]=(...n)=>e.clickInputRef&&e.clickInputRef(...n)),onKeydown:t[3]||(t[3]=E(Q((...n)=>e.clickInputRef&&e.clickInputRef(...n),["stop","prevent"]),["space"]))},[d(e.$slots,"default")],40,Cs)],16)}]]),Oe="IRadioGroup",Bs=c({name:Oe,mixins:[R],provide(){return{formGroup:this}},inheritAttrs:!1,props:{color:{type:String,default:u(Oe,"color")},disabled:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},modelValue:{default:""},name:{type:[String,Number],default:()=>S("radio-group")},readonly:{type:Boolean,default:!1},size:{type:String,default:u(Oe,"size"),validator:v}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-inline":this.inline}},checked(){return this.schema?this.schema.value:this.modelValue}},methods:{onChange(e){var t,i;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e),this.$emit("update:modelValue",e)}}}),zs=["name"],As=p(Bs,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["form-group radio-group",e.classes],name:e.name,role:"radiogroup"}),[d(e.$slots,"default",{},void 0,!0)],16,zs)}],["__scopeId","data-v-fa4fe77a"]]),Vs=c({name:"ISelectOption",inject:{select:{default:()=>({})}},inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},label:{type:String,default:""},tabindex:{type:[Number,String],default:0},value:{type:[Object,String,Number],default:()=>({})}},computed:{ariaDisabled(){return this.disabled?"true":"false"},ariaSelected(){return this.active?"true":"false"},isActive(){return this.active||this.value===this.select.modelValue},classes(){return{"-active":this.isActive,"-disabled":this.disabled}},tabIndex(){return this.disabled?-1:this.tabindex}},methods:{onClick(){this.disabled||this.select.onInput(this.value,this.label)}}}),Os=["tabindex","aria-disabled","aria-selected"],It=p(Vs,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["select-option",e.classes],role:"option",tabindex:e.tabIndex,"aria-disabled":e.ariaDisabled,"aria-selected":e.ariaSelected,onClick:t[0]||(t[0]=(...n)=>e.onClick&&e.onClick(...n))}),[d(e.$slots,"default",{},()=>[P(_(e.label),1)])],16,Os)}]]),Le="ISelect",Ls=c({name:Le,directives:{ClickOutside:K},components:{IInput:te,IIcon:$t,ISelectOption:It,IMark:wt},mixins:[R,ee],provide(){return{select:this}},props:{animationDuration:{type:Number,default:300},autocomplete:{type:Boolean,default:!1},arrow:{type:Boolean,default:!0},color:{type:String,default:u(Le,"color")},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},idField:{type:String,default:"id"},keydownTrigger:{type:Array,default:()=>["up","down","enter","space","tab","esc"]},keydownItem:{type:Array,default:()=>["up","down","enter","space","tab","esc"]},label:{type:[String,Function],default:"label"},loading:{type:Boolean,default:!1},modelValue:{type:[Object,String,Number],default:null},minLength:{type:Number,default:0},name:{type:[String,Number],default:()=>S("select")},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},offset:{type:Number,default:6},placement:{type:String,default:"bottom"},popperOptions:{type:Object,default:()=>({modifiers:[...bt({offset:8}),{name:"sameWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:({state:e})=>{e.styles.popper.width=`${e.rects.reference.width}px`},effect({state:e}){e.elements.popper.style.width=`${e.elements.reference.offsetWidth}px`}}]})},readonly:{type:Boolean,default:!1},scrollTolerance:{type:Number,default:160},selectFirstOptionOnEnter:{type:Boolean,default:!0},size:{type:String,default:u(Le,"size"),validator:v},tabindex:{type:[Number,String],default:0},type:{type:String,default:"text"},total:{type:Number,default:void 0}},emits:["update:modelValue","search","pagination"],data(){return{animating:!1,visible:!1,inputValue:this.computeLabel(this.modelValue)||""}},computed:{wrapperClasses(){return{...g(this),[`-${this.size}`]:!!this.size}},popupClasses(){return{"-disabled":this.isDisabled,"-readonly":this.isReadonly}},tabIndex(){return this.isDisabled?-1:this.tabindex},isClearable(){return this.value&&this.clearable&&!this.isDisabled&&!this.isReadonly},value(){return this.schema?this.schema.value:this.modelValue},inputPlaceholder(){return this.value?this.computeLabel(this.value):this.placeholder}},watch:{value(e){this.inputValue=this.computeLabel(e)},inputValue(e){const t=this.inputMatchesLength(e),i=this.inputMatchesLabel(e);!t||i||this.animating||this.show(),this.$emit("search",this.inputValue)},options(){this.visible&&this.createPopper()}},methods:{onInput(e,t){var i,a;e.disabled||(this.hide(),t&&(this.inputValue=t),(a=(i=this.parent).onInput)==null||a.call(i,this.name,e),this.$emit("update:modelValue",e))},onClear(){this.animating=!0,this.$emit("update:modelValue",null),this.$nextTick(()=>{this.animating=!1})},onFocus(e){!this.value&&this.options.length===0||(this.autocomplete&&(this.inputValue=""),(!e.relatedTarget||!this.$refs.wrapper.contains(e.relatedTarget))&&this.inputShouldShowSelect(this.inputValue)&&this.show())},onBlur(e){var t,i;(!e.relatedTarget||!this.$refs.wrapper.contains(e.relatedTarget))&&(this.hide(),this.inputValue=this.computeLabel(this.value)),(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)},onClick(){this.autocomplete&&(this.inputValue=""),this.inputShouldShowSelect(this.inputValue)&&this.show()},onClickOutside(){this.hide()},onClickCaret(e){this.visible?this.onBlur(e):(this.focus(),this.onFocus(e)),e.preventDefault(),e.stopPropagation()},onScroll(){if(isNaN(this.total))return;const e=this.$refs.body.scrollTop+parseInt(getComputedStyle(this.$refs.body).height,10)>parseInt(getComputedStyle(this.$refs.options).height,10)-this.scrollTolerance,t=this.options.length>=this.total;e&&!t&&this.options.length>0&&!this.loading&&this.$emit("pagination")},onWindowResize(){this.onScroll(),this.visible&&this.$nextTick().then(()=>this.createPopper())},onTriggerKeyDown(e){if(this.keydownTrigger.length===0)return;const t=this.getFocusableItems(),i=t.findIndex(s=>s.active),a=t[i>-1?i:0];switch(!0){case(k("up",e)&&this.keydownTrigger.includes("up")):case(k("down",e)&&this.keydownTrigger.includes("down")):this.show(),setTimeout(()=>{a.focus()},this.visible?0:this.animationDuration),e.preventDefault(),e.stopPropagation();break;case(k("enter",e)&&this.keydownTrigger.includes("enter")):if(!this.selectFirstOptionOnEnter||this.value&&this.inputMatchesLabel(this.inputValue))this.onClick();else{const s=this.options.find(r=>!r.disabled);s&&(this.onInput(s),this.focus())}this.visible||setTimeout(()=>{a.focus()},this.animationDuration),e.preventDefault();break;case(k("tab",e)&&this.keydownTrigger.includes("tab")):case(k("esc",e)&&this.keydownTrigger.includes("esc")):this.hide()}},onItemKeyDown(e){if(this.keydownItem.length!==0)switch(!0){case(k("up",e)&&this.keydownItem.includes("up")):case(k("down",e)&&this.keydownItem.includes("down")):const t=this.getFocusableItems(),i=t.findIndex(r=>r===e.target),a=t.length-1;let s;s=k("up",e)?i>0?i-1:0:i{this.animating=!1},this.animationDuration))},focus(){this.$refs.trigger.focus()},getFocusableItems(){const e=[];for(const t of this.$refs.options.children)Fe(t)&&e.push(t);return e},getElementHeight(e){const t=getComputedStyle(e);return t.height?Math.ceil(parseFloat(t.height)):NaN},inputMatchesLabel(e){return this.value&&e===this.computeLabel(this.value)},inputMatchesLength(e){return this.minLength===0||e&&e.length>=this.minLength},inputShouldShowSelect(e){return!this.autocomplete||this.inputMatchesLength(e)&&!this.inputMatchesLabel(e)},computeLabel(e){return typeof e!="object"?this.inputValue:dt(this.label)?this.label(e):M(e,this.label)}}}),Ds=["id","name","aria-owns","aria-expanded"],Ns=["id","aria-hidden"],Ts={key:0,"data-popper-arrow":""},Ps={key:1,class:"select-header"},Rs={key:0,class:"select-no-results"},Es={class:"select-options",ref:"options"},Ms={key:2,class:"select-footer"},_s=p(Ls,[["render",function(e,t,i,a,s,r){const n=A("i-input"),b=A("i-mark"),B=A("i-select-option"),F=G("click-outside");return $((l(),o("div",h(e.$attrs,{class:["select-wrapper",e.wrapperClasses],id:e.name,name:e.name,ref:"wrapper",role:"combobox","aria-haspopup":"listbox","aria-owns":`${e.name}-options`,"aria-expanded":e.visible?"true":"false",onKeyup:t[3]||(t[3]=E((...w)=>e.onEscape&&e.onEscape(...w),["esc"]))}),[I(n,{modelValue:e.inputValue,"onUpdate:modelValue":t[1]||(t[1]=w=>e.inputValue=w),ref:"trigger",autocomplete:"off","aria-autocomplete":"both","aria-controls":`${e.name}-options`,disabled:e.isDisabled,readonly:e.isReadonly,tabindex:e.tabIndex,plaintext:!e.autocomplete,placeholder:e.inputPlaceholder,clearable:e.isClearable,color:e.color,size:e.size,name:`${e.name}-input`,onClick:e.onClick,onFocus:e.onFocus,onBlur:e.onBlur,onClear:e.onClear,onKeydown:e.onTriggerKeyDown},Nt({suffix:y(()=>[d(e.$slots,"suffix"),m("button",{class:"select-caret","aria-hidden":"true",role:"button",onClick:t[0]||(t[0]=(...w)=>e.onClickCaret&&e.onClickCaret(...w))})]),_:2},[e.$slots.prepend?{name:"prepend",fn:y(()=>[d(e.$slots,"prepend")]),key:"0"}:void 0,e.$slots.prefix?{name:"prefix",fn:y(()=>[d(e.$slots,"prefix")]),key:"1"}:void 0,e.$slots.append?{name:"append",fn:y(()=>[d(e.$slots,"append")]),key:"2"}:void 0]),1032,["modelValue","aria-controls","disabled","readonly","tabindex","plaintext","placeholder","clearable","color","size","name","onClick","onFocus","onBlur","onClear","onKeydown"]),I(L,{name:"zoom-in-top-transition",onAfterLeave:e.destroyPopper},{default:y(()=>[$(m("div",{class:z(["select",e.popupClasses]),id:`${e.name}-options`,role:"listbox",ref:"popup","aria-hidden":e.visible?"false":"true"},[e.arrow?(l(),o("span",Ts)):f("",!0),e.$slots.header?(l(),o("div",Ps,[d(e.$slots,"header")])):f("",!0),m("div",{class:"select-body",ref:"body",onScroll:t[2]||(t[2]=(...w)=>e.onScroll&&e.onScroll(...w))},[e.$slots.default||e.options.length!==0?f("",!0):(l(),o("div",Rs,[d(e.$slots,"no-results",{},()=>[t[4]||(t[4]=P(" There are no results for your query. "))])])),m("div",Es,[d(e.$slots,"default"),(l(!0),o(j,null,X(e.options,w=>(l(),V(B,{key:w[e.idField],active:e.value&&e.value[e.idField]===w[e.idField],disabled:w.disabled,value:w,onKeydown:e.onItemKeyDown},{default:y(()=>[d(e.$slots,"option",{option:w},()=>[e.autocomplete&&e.inputValue!==e.computeLabel(w)?(l(),V(b,{key:0,text:e.computeLabel(w),query:e.inputValue},null,8,["text","query"])):(l(),o(j,{key:1},[P(_(e.computeLabel(w)),1)],64))])]),_:2},1032,["active","disabled","value","onKeydown"]))),128))],512)],544),e.$slots.footer?(l(),o("div",Ms,[d(e.$slots,"footer")])):f("",!0)],10,Ns),[[x,e.visible]])]),_:3},8,["onAfterLeave"])],16,Ds)),[[F,e.onClickOutside]])}]]),De="ISidebar",Fs=c({name:De,mixins:[ft],provide(){return{sidebar:this}},inheritAttrs:!1,props:{ariaLabel:{type:String,default:"Sidebar"},collapseOnItemClick:{type:Boolean,default:!0},collapseOnClickOutside:{type:Boolean,default:!0},collapsePosition:{type:String,default:"absolute"},color:{type:String,default:u(De,"color")},placement:{type:String,default:"left"},size:{type:String,default:u(De,"size"),validator:v}},emits:["update:modelValue"],computed:{classes(){return{...this.collapsibleClasses,...g(this),[`-${this.size}`]:!!this.size,[`-collapse-${this.collapsePosition}`]:!0,[`-placement-${this.placement}`]:!0}},sidebarWrapperTransition(){return this.collapsePosition!=="relative"?"sidebar-wrapper-none-transition":"sidebar-wrapper-transition"},sidebarTransition(){return this.collapsePosition!=="relative"?"sidebar-transition":"sidebar-none-transition"}},methods:{onItemClick(){this.collapseOnItemClick&&this.open&&this.setOpen(!1)},onOverlayClick(){this.collapseOnClickOutside&&this.open&&this.setOpen(!1)}}}),js=["aria-label"],Gs={class:"sidebar"},Zs={class:"sidebar-content"},Ks=p(Fs,[["render",function(e,t,i,a,s,r){return l(),V(L,{name:e.sidebarWrapperTransition},{default:y(()=>[$(m("aside",h(e.$attrs,{role:"complementary",class:["sidebar-wrapper",e.classes],"aria-label":e.ariaLabel,ref:"wrapper"}),[I(L,{name:e.sidebarTransition},{default:y(()=>[$(m("div",Gs,[m("div",Zs,[d(e.$slots,"default")])],512),[[x,e.collapsePosition==="relative"||e.open||!e.collapsible]])]),_:3},8,["name"]),I(L,{name:"sidebar-overlay-transition"},{default:y(()=>[e.collapsePosition!=="relative"?$((l(),o("div",{key:0,class:"sidebar-overlay",onClick:t[0]||(t[0]=(...n)=>e.onOverlayClick&&e.onOverlayClick(...n))},null,512)),[[x,e.open]]):f("",!0)]),_:1})],16,js),[[x,e.open||!e.collapsible]])]),_:3},8,["name"])}]]),st="ITable",qs=c({name:st,inheritAttrs:!1,props:{border:{type:Boolean,default:!1},condensed:{type:Boolean,default:!1},striped:{type:Boolean,default:!1},hover:{type:Boolean,default:!1},responsive:{type:[Boolean,String],default:!0},nowrap:{type:Boolean,default:!1},color:{type:String,default:u(st,"color")}},computed:{classes(){return{...g(this),"-border":this.border,"-condensed":this.condensed,"-striped":this.striped,"-hover":this.hover,"-nowrap":this.nowrap,["-responsive"+(typeof this.responsive=="boolean"?"":`-${this.responsive}`)]:!!this.responsive}}}}),Ws={class:"table"},Us=p(qs,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["table-wrapper",e.classes]}),[m("table",Ws,[d(e.$slots,"default")])],16)}]]),Ne="ITabs",Hs=c({name:Ne,provide(){return{tabs:this}},inheritAttrs:!1,props:{color:{type:String,default:u(Ne,"color")},modelValue:{type:String,default:""},size:{type:String,default:u(Ne,"size"),validator:v},stretch:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{active:this.modelValue,tabs:[]}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-stretch":this.stretch}}},watch:{modelValue(e){this.active=e}},methods:{setActive(e){this.active=e,this.$emit("update:modelValue",this.active)}}}),Qs={class:"tabs-header"},Ys=p(Hs,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["tabs",e.classes],role:"tablist","aria-multiselectable":"true"}),[m("div",Qs,[d(e.$slots,"header")]),d(e.$slots,"default")],16)}]]),Js=c({name:"ITab",inject:{tabs:{default:()=>({})}},props:{title:{type:String,default:""},name:{type:String,default:()=>S("tab")}},computed:{active(){return this.tabs.active===this.name},classes(){return{"-active":this.active}}}}),Xs=["name","aria-hidden","aria-labelledby"],en={class:"tab-body"},tn=p(Js,[["render",function(e,t,i,a,s,r){return $((l(),o("div",{class:z(["tab",e.classes]),role:"tabpanel",name:e.name,"aria-hidden":!e.active,"aria-labelledby":`tab-heading-${e.name}`},[m("div",en,[d(e.$slots,"default")])],10,Xs)),[[x,e.active]])}]]),an=c({name:"ITabTitle",inject:{tabs:{default:()=>({})}},props:{for:{type:String,default:()=>S("tab")}},computed:{active(){return this.tabs.active===this.for},classes(){return{"-active":this.active}},name(){return this.for}},methods:{onClick(){this.tabs.setActive(this.for)}}}),sn=["for","active","aria-expanded","aria-controls","aria-describedby"],nn=p(an,[["render",function(e,t,i,a,s,r){return l(),o("div",{class:z(["tab-title",e.classes]),role:"tab",for:e.name,active:e.active,"aria-expanded":e.active,"aria-controls":`tab-content-${e.name}`,"aria-describedby":`tab-content-${e.name}`,tabindex:"0",onClick:t[0]||(t[0]=(...n)=>e.onClick&&e.onClick(...n))},[d(e.$slots,"default")],10,sn)}]]),Te="IToggle",ln=c({name:Te,mixins:[R],inheritAttrs:!1,props:{color:{type:String,default:u(Te,"color")},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},value:{default:!1},modelValue:{default:!1},name:{type:[String,Number],default:()=>S("toggle")},readonly:{type:Boolean,default:!1},size:{type:String,default:u(Te,"size"),validator:v},tabindex:{type:[Number,String],default:0}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly}},checked(){return this.schema?this.schema.value:this.modelValue},tabIndex(){return this.isDisabled?-1:this.tabindex}},methods:{clickInputRef(){this.isReadonly||this.$refs.input.click()},onChange(e){var t,i;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e.target.checked),this.$emit("update:modelValue",e.target.checked)},onBlur(e){var t,i;(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)}}}),rn=["checked","disabled","readonly","aria-checked","aria-disabled","aria-readonly","name"],on=["aria-checked","aria-disabled","aria-readonly","tabindex"],dn=p(ln,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["toggle",e.classes]}),[m("input",{ref:"input",type:"checkbox",checked:e.checked,disabled:e.isDisabled,readonly:e.isReadonly,"aria-checked":e.checked,"aria-disabled":e.isDisabled,"aria-readonly":e.isReadonly,name:e.name,onChange:t[0]||(t[0]=(...n)=>e.onChange&&e.onChange(...n))},null,40,rn),m("label",{class:"toggle-label","aria-checked":e.checked,"aria-disabled":e.isDisabled,"aria-readonly":e.isReadonly,tabindex:e.tabIndex,onClick:t[1]||(t[1]=(...n)=>e.clickInputRef&&e.clickInputRef(...n)),onBlur:t[2]||(t[2]=(...n)=>e.onBlur&&e.onBlur(...n)),onKeydown:t[3]||(t[3]=E(Q((...n)=>e.clickInputRef&&e.clickInputRef(...n),["stop","prevent"]),["space"]))},[d(e.$slots,"default")],40,on)],16)}]]),Pe="ITooltip",un=c({name:Pe,directives:{ClickOutside:K},mixins:[ee,Ge],inheritAttrs:!1,props:{color:{type:String,default:u(Pe,"color")},disabled:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!1},name:{type:String,default:()=>S("tooltip")},arrow:{type:Boolean,default:!0},placement:{type:String,default:"top"},trigger:{type:[String,Array],default:()=>["hover","focus"]},offset:{type:Number,default:6},interactable:{type:Boolean,default:!1},popperOptions:{type:Object,default:()=>({})},size:{type:String,default:u(Pe,"size"),validator:v}},emits:["click-outside","update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}},methods:{onEscape(){this.visible=!1,this.$emit("update:modelValue",!1)},handleClickOutside(e){this.visible=!1,this.$emit("update:modelValue",!1),this.onClickOutside(e)}}}),cn=["id"],pn=["aria-describedby","aria-disabled","aria-expanded"],hn=["id","aria-hidden"],mn={key:0,"data-popper-arrow":""},fn=p(un,[["render",function(e,t,i,a,s,r){const n=G("click-outside");return $((l(),o("div",h(e.$attrs,{class:["tooltip-wrapper",e.classes],ref:"wrapper",id:e.name,onKeyup:t[0]||(t[0]=E((...b)=>e.onEscape&&e.onEscape(...b),["esc"]))}),[m("div",{class:"tooltip-trigger",ref:"trigger","aria-describedby":`${e.name}-popup`,"aria-disabled":e.disabled?"true":"false","aria-expanded":e.visible?"true":"false"},[d(e.$slots,"default")],8,pn),I(L,{name:"zoom-in-top-transition",onAfterLeave:e.destroyPopper},{default:y(()=>[$(m("div",{class:"tooltip",ref:"popup",role:"tooltip","aria-live":"polite",id:`${e.name}-popup`,"aria-hidden":e.visible?"false":"true"},[e.arrow?(l(),o("span",mn)):f("",!0),d(e.$slots,"body")],8,hn),[[x,e.visible]])]),_:3},8,["onAfterLeave"])],16,cn)),[[n,e.onClickOutside]])}]]),vn=Object.freeze(Object.defineProperty({__proto__:null,IAlert:Jt,IBadge:Xt,IBreadcrumb:ii,IBreadcrumbItem:ni,IButton:vt,IButtonGroup:ui,ICard:fi,ICheckbox:ki,ICheckboxGroup:Ii,ICollapsible:Ci,ICollapsibleItem:Oi,IColumn:Ze,IContainer:Ke,IDropdown:_i,IDropdownDivider:Fi,IDropdownItem:ji,IForm:Ki,IFormError:Yi,IFormGroup:Ui,IFormLabel:ea,IHamburgerMenu:kt,IHeader:ta,IIcon:$t,IInput:te,ILayout:Ba,ILayoutAside:Va,ILayoutContent:Oa,ILayoutFooter:La,ILayoutHeader:Da,IListGroup:Na,IListGroupItem:Ta,ILoader:yt,IMark:wt,IMedia:Fa,IModal:Ha,INav:Qa,INavItem:Ya,INavbar:Ja,INavbarBrand:Xa,INavbarCollapsible:is,INumberInput:va,IPagination:ds,IPopover:vs,IProgress:gs,IProgressBar:ws,IRadio:Ss,IRadioGroup:As,IRow:qe,ISelect:_s,ISelectOption:It,ISidebar:Ks,ITab:tn,ITabTitle:nn,ITable:Us,ITabs:Ys,ITextarea:Sa,IToggle:dn,ITooltip:fn},Symbol.toStringTag,{value:"Module"}));export{yn as I,p as _,vn as c}; diff --git a/packages/modules/display_themes/cards/web/assets/vendor-inkline-CqnuQ_Go.js b/packages/modules/display_themes/cards/web/assets/vendor-inkline-CqnuQ_Go.js deleted file mode 100644 index cd9bc38499..0000000000 --- a/packages/modules/display_themes/cards/web/assets/vendor-inkline-CqnuQ_Go.js +++ /dev/null @@ -1 +0,0 @@ -import{h as nt,w as Bt,r as zt,d as c,a as At,b as $,v as x,o as l,e as o,f as d,i as f,j as m,m as h,k as P,l as V,n as y,p as Y,q as A,s as I,t as E,u as Q,T as L,x as _,y as z,z as G,F as j,A as X,c as se,B as Vt,C as Ot,D as Lt,E as Dt,G as Nt}from"./vendor-CFVb6_YQ.js";const p=(e,t)=>{const i=e.__vccOpts||e;for(const[a,s]of t)i[a]=s;return i};function g(e){let t=e.color;return t||(t=e.$inkline.options.colorMode==="system"?typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e.$inkline.options.colorMode),{[`-${t}`]:!0}}function lt(e,t){if(!e||!t)return!1;if(t.indexOf(" ")!==-1)throw new Error("Class name should not contain spaces.");return e.classList?e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}function _e(e,t){if(!e)return;let i=e.className;const a=(t||"").split(" ");for(let s=0,r=a.length;s"-"+s.toLowerCase())}function rt(e,t){return["string","number"].indexOf(typeof t)>-1&&t!==""?`${He(e)}-${t}`:He(e)}function Re(e){return e.charAt(0).toUpperCase()+e.slice(1)}function U(e){if(Array.isArray(e)){const t=e.slice().map(U),i=Object.keys(t);return Object.keys(e).filter(a=>!i.includes(a)).forEach(a=>{t[a]=e[a]}),t}return typeof e=="object"?Object.keys(e).reduce((t,i)=>(t[i]=U(e[i]),t),{}):e}function Fe(e){if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return e.type!=="hidden"&&e.type!=="file";case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}}function Tt(e){if(!Fe(e))return!1;try{e.focus()}catch{}return typeof window<"u"&&document.activeElement===e}function ot(e){for(let t=0;t"u")return;if(e.currentStyle)return e.currentStyle[t];const i=window.getComputedStyle(e,null);return i.getPropertyValue?i.getPropertyValue(t):i[t]}const dt=e=>e instanceof Function,J={xs:[0,575],sm:[576,767],md:[768,991],lg:[992,1199],xl:[1200,1399],xxl:[1400,1/0]},je=["","xs","sm","md","lg","xl","xxl"],Pt={tab:["Tab",9],enter:["Enter",13],esc:["Escape",27],space:[" ","Space",32],left:["ArrowLeft","Left",37],up:["ArrowUp","Up",38],right:["ArrowRight","Right",39],down:["ArrowDown","Down",40]},Qe={pristine:!0,dirty:!1,untouched:!0,touched:!1,valid:!0,invalid:!1,errors:[]},Rt={value:"",validators:[]},ut=["value","validators","pristine","dirty","untouched","touched","valid","invalid","errors"],k=(e,t)=>{const i=t.key||t.keyIdentifier||t.keyCode;return Pt[e].indexOf(i)!==-1};function Et(e,t,i){e&&t&&e.removeEventListener(t,i,!1)}function Mt(e,t,i){e&&t&&e.detachEvent("on"+t,i)}const T=typeof window>"u"?()=>{}:window.document.removeEventListener?Et:Mt;function _t(e,t,i){e&&t&&i&&e.addEventListener(t,i,!1)}function Ft(e,t,i){e&&t&&i&&e.attachEvent("on"+t,i)}const O=typeof window>"u"?()=>{}:window.document.addEventListener?_t:Ft,ct=e=>e.map(t=>t.type==="element"?nt(t.name,t.attributes,ct(t.children)):t.value);function pt(e,t){if(!e||!t)return;const i=t.split(" ");let a=" "+e.className+" ";for(let s=0,r=i.length;si&&i[a],e)}function ne(e,t,i){return t&&t.split(".").reduce((a,s)=>(Object.keys(i).forEach(r=>{a[s][r]=i[r]}),a&&a[s]),e),Object.keys(i).forEach(a=>{e[a]=i[a]}),e}function S(e){return`${e?`${e}-`:""}${Math.random().toString(36).substr(2,9)}`}const D={"en-US":/^[A-Z]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ω]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sl-SI":/^[A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/},N={"en-US":/^[0-9A-Z]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sl-SI":/^[0-9A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/};["AU","GB","HK","IN","NZ","ZA","ZM"].forEach(e=>{D[`en-${e}`]=D["en-US"],N[`en-${e}`]=N["en-US"]}),["AE","BH","DZ","EG","IQ","JO","KW","LB","LY","MA","QM","QA","SA","SD","SY","TN","YE"].forEach(e=>{D[`ar-${e}`]=D.ar,N[`ar-${e}`]=N.ar}),D["pt-BR"]=D["pt-PT"],N["pt-BR"]=N["pt-PT"],D["pl-Pl"]=D["pl-PL"],N["pl-Pl"]=N["pl-PL"];const Ye=/^(([^<>()[\]\\.,;:\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,}))$/,jt={alpha:function(e,t={}){const i=t.locale||"en-US",a=s=>{let r=String(s);return t.allowDashes&&(r=r.replace(/-/g,"")),t.allowSpaces&&(r=r.replace(/ /g,"")),r};return e.constructor===Array?e.every(s=>D[i].test(a(s))):D[i].test(a(e))},alphanumeric:function(e,t={}){const i=t.locale||"en-US",a=s=>{let r=String(s);return t.allowDashes&&(r=r.replace(/-/g,"")),t.allowSpaces&&(r=r.replace(/ /g,"")),r};return e.constructor===Array?e.every(s=>N[i].test(a(s))):N[i].test(a(e))},custom:function(e,t={validator:()=>!0}){return e.constructor===Array?e.every(i=>t.validator(i)):t.validator(e)},number:function(e,t={allowNegative:!1,allowDecimal:!1}){let i="\\d+";t.allowNegative&&(i="[-]?"+i),t.allowDecimal&&(i+="([\\.\\,]\\d+)?");const a=new RegExp(`^${i}$`);return e.constructor===Array?e.every(s=>a.test(s)):a.test(e)},email:function(e){return e.constructor===Array?e.every(t=>!t||Ye.test(String(t))):!e||Ye.test(String(e))},max:function(e,t={value:0}){if(e==null)return!1;const i=a=>Number(a);return Array.isArray(e)?e.every(a=>i(a)<=t.value):i(e)<=t.value},maxLength:function(e,t={value:0}){return e!=null&&(e.constructor===Array?e.length<=t.value:typeof e=="object"?Object.keys(e).length<=t.value:String(e).length<=t.value)},min:function(e,t={value:0}){if(e==null)return!1;const i=a=>Number(a);return Array.isArray(e)?e.every(a=>i(a)>=t.value):i(e)>=t.value},minLength:function(e,t={value:0}){return e!=null&&(e.constructor===Array?e.length>=t.value:typeof e=="object"?Object.keys(e).length>=t.value:String(e).length>=t.value)},required:function(e,t={invalidateFalse:!1}){return e!=null&&(e.constructor===Array?!!e.length:typeof e=="boolean"?!t.invalidateFalse||e:!!String(e).trim().length)},sameAs:function(e,t={}){if(!t.target)return!1;const i=M(t.schema(),t.target);if(!i)throw new Error(`Could not find target with name '${t.target}' in 'sameAs' validator.`);return e===i.value}};function ht(e){const t=Object.keys(e).length===0||Array.isArray(e.validators)||e.hasOwnProperty("value")?{...Qe,...Rt}:Qe;return Object.entries(t).forEach(([i,a])=>{e.hasOwnProperty(i)||(e[i]=a)}),Object.keys(e).filter(i=>!ut.includes(i)).forEach(i=>{(typeof e[i]=="object"||Array.isArray(e[i]))&&(e[i]=ht(e[i]))}),e}const Ee={locale:"en",messages:{en:{validation:{alpha:e=>{let t;switch(!0){case(e.allowSpaces&&e.allowDashes):t="letters, spaces, and dashes";break;case e.allowSpaces:t="letters and spaces";break;case e.allowDashes:t="letters and dashes";break;default:t="letters"}return`Please enter ${t} only.`},alphanumeric:e=>{let t;switch(!0){case(e.allowSpaces&&e.allowDashes):t="letters, numbers, spaces, and dashes";break;case e.allowSpaces:t="letters, numbers, and spaces";break;case e.allowDashes:t="letters, numbers, and dashes";break;default:t="letters and numbers"}return`Please enter ${t} only.`},number:e=>{let t;switch(!0){case(e.allowNegative&&e.allowDecimal):t="positive or negative decimal numbers";break;case e.allowNegative:t="positive or negative numbers";break;case e.allowDecimal:t="decimal numbers";break;default:t="numbers"}return`Please enter ${t} only.`},email:()=>"Please enter a valid email address.",max:()=>"Please enter a maximum value of {value}.",maxLength:()=>"Please enter up to {value} characters.",min:()=>"Please enter a minimum value of {value}.",minLength:()=>"Please enter at least {value} characters.",required:()=>"Please enter a value for this field.",sameAs:()=>"Please make sure that the two values match.",custom:()=>"Please enter a correct value for this field."}}}};function Gt(e,t=""){const i=[];return e.valid=(e.validators||[]).reduce((a,s)=>{const r=typeof s=="string"?{name:s}:s,n=jt[r.name](e.value,r);if(!n){const{name:b,message:B,...F}=r,w={name:t.split(".").pop(),value:e.value,...F},xt=(B instanceof Function?B():B)||function(We,ie={}){const ae=M(Ee.messages[Ee.locale],We),Ct=dt(ae)?ae(ie):ae||We;return Object.keys(ie).reduce((St,Ue)=>St.replace(new RegExp(`{${Ue}}`,"g"),`${ie[Ue]}`),Ct)}(`validation.${b}`,w);i.push({name:b,message:xt,path:t})}return a&&n},!0),e.invalid=!e.valid,e.errors=i,e}function mt(e,t=""){return e.valid=Object.keys(e).filter(i=>!ut.includes(i)).reduce((i,a)=>(Object.keys(e[a]).length===0||e[a].validators||e[a].value?e[a]=Gt(e[a],`${t}`?`${t}.${a}`:a):e[a]=mt(e[a],`${t}`?`${t}.${a}`:a),i&&e[a].valid),!0),e.invalid=!e.valid,e}function le(e){return mt(e,"")}const Zt=Object.freeze(Object.defineProperty({__proto__:null,inkCaretDown:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"28",viewBox:"0 0 16 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"caret-down",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M16 11c0 0.266-0.109 0.516-0.297 0.703l-7 7c-0.187 0.187-0.438 0.297-0.703 0.297s-0.516-0.109-0.703-0.297l-7-7c-0.187-0.187-0.297-0.438-0.297-0.703 0-0.547 0.453-1 1-1h14c0.547 0 1 0.453 1 1z"},children:[]}]},inkCheck:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"check",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M23.625 3.5l-13.125 13.125-6.125-6.125-4.375 4.375 10.5 10.5 17.5-17.5z"},children:[]}]},inkChevronDown:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"chevron-down",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M26.297 12.625l-11.594 11.578c-0.391 0.391-1.016 0.391-1.406 0l-11.594-11.578c-0.391-0.391-0.391-1.031 0-1.422l2.594-2.578c0.391-0.391 1.016-0.391 1.406 0l8.297 8.297 8.297-8.297c0.391-0.391 1.016-0.391 1.406 0l2.594 2.578c0.391 0.391 0.391 1.031 0 1.422z"},children:[]}]},inkCircle:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"28",viewBox:"0 0 24 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"circle",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M24 14c0 6.625-5.375 12-12 12s-12-5.375-12-12 5.375-12 12-12 12 5.375 12 12z"},children:[]}]},inkDanger:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"danger",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M14 2.625c-3.038 0-5.895 1.183-8.043 3.332s-3.332 5.005-3.332 8.043c0 3.038 1.183 5.895 3.332 8.043s5.005 3.332 8.043 3.332c3.038 0 5.895-1.183 8.043-3.332s3.332-5.005 3.332-8.043c0-3.038-1.183-5.895-3.332-8.043s-5.005-3.332-8.043-3.332zM14 0v0c7.732 0 14 6.268 14 14s-6.268 14-14 14c-7.732 0-14-6.268-14-14s6.268-14 14-14zM12.25 19.25h3.5v3.5h-3.5zM12.25 5.25h3.5v10.5h-3.5z"},children:[]}]},inkInfo:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"info",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M12.25 8.313c0-0.722 0.591-1.313 1.313-1.313h0.875c0.722 0 1.313 0.591 1.313 1.313v0.875c0 0.722-0.591 1.313-1.313 1.313h-0.875c-0.722 0-1.313-0.591-1.313-1.313v-0.875z"},children:[]},{name:"path",type:"element",value:"",attributes:{d:"M17.5 21h-7v-1.75h1.75v-5.25h-1.75v-1.75h5.25v7h1.75z"},children:[]},{name:"path",type:"element",value:"",attributes:{d:"M14 0c-7.732 0-14 6.268-14 14s6.268 14 14 14 14-6.268 14-14-6.268-14-14-14zM14 25.375c-6.282 0-11.375-5.093-11.375-11.375s5.093-11.375 11.375-11.375 11.375 5.093 11.375 11.375-5.093 11.375-11.375 11.375z"},children:[]}]},inkMinus:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"minus",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M0 11.375v5.25c0 0.483 0.392 0.875 0.875 0.875h26.25c0.483 0 0.875-0.392 0.875-0.875v-5.25c0-0.483-0.392-0.875-0.875-0.875h-26.25c-0.483 0-0.875 0.392-0.875 0.875z"},children:[]}]},inkPlus:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"plus",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M27.125 10.5h-9.625v-9.625c0-0.483-0.392-0.875-0.875-0.875h-5.25c-0.483 0-0.875 0.392-0.875 0.875v9.625h-9.625c-0.483 0-0.875 0.392-0.875 0.875v5.25c0 0.483 0.392 0.875 0.875 0.875h9.625v9.625c0 0.483 0.392 0.875 0.875 0.875h5.25c0.483 0 0.875-0.392 0.875-0.875v-9.625h9.625c0.483 0 0.875-0.392 0.875-0.875v-5.25c0-0.483-0.392-0.875-0.875-0.875z"},children:[]}]},inkSearch:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"search",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M27.132 23.827l-6.632-5.641c-0.686-0.617-1.419-0.9-2.011-0.873 1.566-1.834 2.511-4.213 2.511-6.813 0-5.799-4.701-10.5-10.5-10.5s-10.5 4.701-10.5 10.5 4.701 10.5 10.5 10.5c2.6 0 4.98-0.946 6.813-2.511-0.027 0.592 0.256 1.326 0.873 2.011l5.641 6.632c0.966 1.073 2.544 1.164 3.506 0.201s0.872-2.54-0.201-3.506zM10.5 17.5c-3.866 0-7-3.134-7-7s3.134-7 7-7 7 3.134 7 7-3.134 7-7 7z"},children:[]}]},inkSort:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"28",viewBox:"0 0 16 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"sort",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M16 17c0 0.266-0.109 0.516-0.297 0.703l-7 7c-0.187 0.187-0.438 0.297-0.703 0.297s-0.516-0.109-0.703-0.297l-7-7c-0.187-0.187-0.297-0.438-0.297-0.703 0-0.547 0.453-1 1-1h14c0.547 0 1 0.453 1 1zM16 11c0 0.547-0.453 1-1 1h-14c-0.547 0-1-0.453-1-1 0-0.266 0.109-0.516 0.297-0.703l7-7c0.187-0.187 0.438-0.297 0.703-0.297s0.516 0.109 0.703 0.297l7 7c0.187 0.187 0.297 0.438 0.297 0.703z"},children:[]}]},inkSortAsc:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"28",viewBox:"0 0 16 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"sort-asc",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M16 11c0 0.547-0.453 1-1 1h-14c-0.547 0-1-0.453-1-1 0-0.266 0.109-0.516 0.297-0.703l7-7c0.187-0.187 0.438-0.297 0.703-0.297s0.516 0.109 0.703 0.297l7 7c0.187 0.187 0.297 0.438 0.297 0.703z"},children:[]}]},inkSortDesc:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"28",viewBox:"0 0 16 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"sort-desc",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M16 17c0 0.266-0.109 0.516-0.297 0.703l-7 7c-0.187 0.187-0.438 0.297-0.703 0.297s-0.516-0.109-0.703-0.297l-7-7c-0.187-0.187-0.297-0.438-0.297-0.703 0-0.547 0.453-1 1-1h14c0.547 0 1 0.453 1 1z"},children:[]}]},inkTimes:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"times",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M27.745 22.495c-0-0-0-0-0-0l-8.494-8.494 8.494-8.494c0-0 0-0 0-0 0.091-0.091 0.158-0.198 0.2-0.312 0.116-0.311 0.050-0.675-0.2-0.925l-4.013-4.013c-0.25-0.25-0.614-0.316-0.925-0.2-0.114 0.042-0.221 0.109-0.312 0.2 0 0-0 0-0 0l-8.494 8.494-8.494-8.494c-0-0-0-0-0-0-0.091-0.091-0.198-0.158-0.312-0.2-0.311-0.116-0.675-0.050-0.925 0.2l-4.013 4.013c-0.25 0.25-0.316 0.614-0.2 0.925 0.042 0.114 0.109 0.221 0.2 0.312 0 0 0 0 0 0l8.494 8.494-8.494 8.494c-0 0-0 0-0 0-0.091 0.091-0.157 0.198-0.2 0.312-0.116 0.311-0.050 0.675 0.2 0.925l4.013 4.013c0.25 0.25 0.614 0.316 0.925 0.2 0.114-0.042 0.221-0.109 0.312-0.2 0-0 0-0 0-0l8.494-8.494 8.494 8.494c0 0 0 0 0 0 0.092 0.091 0.198 0.158 0.312 0.2 0.311 0.116 0.675 0.050 0.925-0.2l4.013-4.013c0.25-0.25 0.316-0.614 0.2-0.925-0.042-0.114-0.109-0.221-0.2-0.312z"},children:[]}]},inkWarning:{name:"svg",type:"element",value:"",attributes:{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 28 28",fill:"currentColor"},children:[{name:"title",type:"element",value:"",attributes:{},children:[{name:"",type:"text",value:"warning",attributes:{},children:[]}]},{name:"path",type:"element",value:"",attributes:{d:"M14 2.537l11.733 23.385h-23.467l11.733-23.385zM14 0c-0.603 0-1.207 0.407-1.665 1.221l-11.951 23.819c-0.916 1.628-0.137 2.96 1.731 2.96h23.77c1.868 0 2.647-1.332 1.731-2.96h0l-11.951-23.819c-0.458-0.814-1.061-1.221-1.665-1.221v0z"},children:[]},{name:"path",type:"element",value:"",attributes:{d:"M15.75 22.75c0 0.966-0.784 1.75-1.75 1.75s-1.75-0.784-1.75-1.75c0-0.966 0.784-1.75 1.75-1.75s1.75 0.784 1.75 1.75z"},children:[]},{name:"path",type:"element",value:"",attributes:{d:"M14 19.25c-0.966 0-1.75-0.784-1.75-1.75v-5.25c0-0.966 0.784-1.75 1.75-1.75s1.75 0.784 1.75 1.75v5.25c0 0.966-0.784 1.75-1.75 1.75z"},children:[]}]}},Symbol.toStringTag,{value:"Module"})),Je="inkline-color-mode",re=e=>{let t;t=e==="system"?matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e,pt(document.body,"-light -dark"),_e(document.body,`-${t}`)},Kt={components:{},icons:{},colorMode:"system",locale:"en",validateOn:["input","blur"],color:"",size:"",routerComponent:"router-link",componentOptions:{}};function qt({icons:e,components:t,...i}){return{form:a=>ht(a),setLocale(a){(function(s){Ee.locale=s})(a)},options:zt(i)}}const W={prototype:void 0,icons:void 0},yn={install(e,t={}){const i={...Kt,...t};for(const r in i.components)e.component(i.components[r].name,i.components[r]);if(typeof window<"u"){const r=localStorage.getItem(Je);r&&(i.colorMode=r)}const a=qt(i);W.prototype=a,e.config.globalProperties.$inkline=a,e.provide("inkline",a);const s={...Zt,...i.icons};if(e.provide("inklineIcons",s),typeof window<"u"){Bt(()=>a.options.colorMode,b=>{re(b),localStorage.setItem(Je,b)});const r=()=>{a.options.colorMode==="system"&&re(a.options.colorMode)},n=matchMedia("(prefers-color-scheme: dark)");n.addEventListener?n.addEventListener("change",r):n.addListener(r),_e(document.body,"inkline"),re(i.colorMode)}}};function u(e,t,i=""){return()=>{var a;return W.prototype?(a=W.prototype.options.componentOptions[e])!=null&&a[t]?W.prototype.options.componentOptions[e][t]:W.prototype.options[t]:i}}function v(e){return["","xs","sm","md","lg","xl","xxl"].includes(e)}const ft=c({props:{collapse:{type:[String,Boolean],default:"md"},modelValue:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{open:this.modelValue,windowWidth:typeof window<"u"?window.innerWidth:0}},computed:{collapsibleClasses(){return{"-open":this.open,"-collapsible":this.collapsible,[`-collapse-${this.collapse}`]:!!this.collapse}},collapsible(){return this.collapse===!0||this.collapse===!1?this.collapse:this.windowWidth<=J[this.collapse][1]}},watch:{modelValue(e){this.open=e}},created(){typeof window<"u"&&(O(window,"resize",this.onWindowResize),this.onWindowResize())},beforeUnmount(){typeof window<"u"&&T(window,"resize",this.onWindowResize)},methods:{setOpen(e){this.open=e,this.$emit("update:modelValue",this.open)},toggleOpen(){this.open=!this.open,this.$emit("update:modelValue",this.open)},onWindowResize(){if(this.collapse===!0||this.collapse===!1||typeof window>"u")return;const e=window.innerWidth;this.windowWidth<=J[this.collapse][1]&&e>J[this.collapse][1]&&this.setOpen(!1),this.windowWidth=window.innerWidth}}}),R=c({inject:{formGroup:{default:()=>({})},form:{default:()=>({})}},computed:{isDisabled(){return this.disabled||this.form.isDisabled||this.formGroup.isDisabled},isReadonly(){return this.readonly||this.form.isReadonly||this.formGroup.isReadonly},parent(){return this.formGroup.$?this.formGroup:this.form},schema(){const e=this.parent.schema||{};return this.name!==""?M(e,`${this.name}`):e}}}),Z=c({props:{tag:{type:String,default:"a"}},computed:{isTag(){return this.$attrs.to?this.routerComponent:this.$attrs.href?"a":this.tag},isComponent(){return this.isTag===this.routerComponent},routerComponent(){return this.$inkline.options.routerComponent}}}),Wt=e=>({name:"offset",options:{offset:[0,e]}}),bt=({offset:e})=>[Wt(e),{name:"arrow",options:{padding:6}},{name:"preventOverflow",options:{padding:8}},{name:"computeStyles",options:{gpuAcceleration:!1,adaptive:!1}}],ee=c({props:{placement:{type:String,default:"auto"},offset:{type:Number,default:6},popperOptions:{type:Object,default:()=>({})}},data:()=>({popperInstance:void 0}),watch:{placement(e){this.popperInstance&&this.popperInstance.setOptions({placement:e})}},beforeUnmount(){this.destroyPopper()},methods:{createPopper(){if(typeof window>"u")return;const e=bt({offset:this.offset});this.popperInstance=At(this.$refs.wrapper,this.$refs.popup,{strategy:"fixed",placement:this.placement,modifiers:e,...this.popperOptions})},destroyPopper(){this.popperInstance&&(this.popperInstance.destroy(),this.popperInstance=void 0)}}}),Ge=c({props:{disabled:{type:Boolean,default:!1},modelValue:{type:Boolean,default:void 0},trigger:{type:Array,default:()=>["hover","click","focus"]},interactable:{type:Boolean,default:!0},hoverHideDelay:{type:Number,default:300}},emits:["update:modelValue","click-outside"],data(){return{visible:this.modelValue,triggerStack:0,hoverHideTransition:!1}},watch:{modelValue(e){e?this.show():this.hide()}},mounted(){if(!this.$slots.default)throw new Error("Popup components require one child element to be used as trigger.");this.addEventListeners()},beforeUnmount(){this.removeEventListeners()},methods:{show(){this.disabled||this.visible||(this.triggerStack+=1,this.visible=!0,this.createPopper(),this.$emit("update:modelValue",!0))},hide(){!this.disabled&&this.visible&&(this.triggerStack-=1,this.triggerStack<=0&&(this.triggerStack=0,this.visible=!1,this.$emit("update:modelValue",!1)))},hoverShow(){this.hoverHideTransition=!1,this.show()},hoverHide(){this.hoverHideTransition=!0,setTimeout(()=>{this.hoverHideTransition&&this.hide()},this.hoverHideDelay)},onClick(){this.visible?this.hide():this.show()},onClickOutside(e){this.visible&&this.$emit("click-outside",e),this.modelValue||this.hide()},addEventListeners(){[].concat(this.trigger).forEach(e=>{switch(e){case"hover":O(this.$refs.trigger,"mouseenter",this.interactable?this.hoverShow:this.show),O(this.$refs.trigger,"mouseleave",this.interactable?this.hoverHide:this.hide),this.interactable&&(O(this.$refs.popup,"mouseenter",this.hoverShow),O(this.$refs.popup,"mouseleave",this.hoverHide));break;case"click":O(this.$refs.trigger,"click",this.onClick);break;case"focus":for(const t of this.$refs.trigger.children)O(t,"focus",this.show),O(t,"blur",this.hide)}})},removeEventListeners(){[].concat(this.trigger).forEach(e=>{switch(e){case"hover":T(this.$refs.trigger,"mouseenter",this.interactable?this.hoverShow:this.show),T(this.$refs.trigger,"mouseleave",this.interactable?this.hoverHide:this.hide),this.interactable&&(T(this.$refs.popup,"mouseenter",this.hoverShow),T(this.$refs.popup,"mouseleave",this.hoverHide));break;case"click":T(this.$refs.trigger,"click",this.onClick);break;case"focus":for(const t of this.$refs.trigger.children)T(t,"focus",this.show),T(t,"blur",this.hide)}})},focusTrigger(){for(const e of this.$refs.trigger.children)if(ot(e)){e.focus();break}}}}),oe="IAlert",Ut=c({name:oe,inheritAttrs:!1,props:{size:{type:String,default:u(oe,"size"),validator:v},color:{type:String,default:u(oe,"color")},modelValue:{type:Boolean,default:!0},dismissible:{type:Boolean,default:!1},dismissAriaLabel:{type:String,default:"Dismiss"}},emits:["update:modelValue"],data:()=>({dismissed:!1}),computed:{classes(){return{[`-${this.color}`]:!!this.color,[`-${this.size}`]:!!this.size,"-dismissible":this.dismissible,"-with-icon":!!this.$slots.icon}}},watch:{modelValue(e){this.dismissed=!e}},methods:{dismiss(){this.dismissed=!0,this.$emit("update:modelValue",!1)}}}),Ht={key:0,class:"icon",role:"img","aria-hidden":"true"},Qt={class:"content"},Yt=["aria-label"],Jt=p(Ut,[["render",function(e,t,i,a,s,r){return $((l(),o("div",h({class:["alert",e.classes],role:"alert"},e.$attrs),[e.$slots.icon?(l(),o("span",Ht,[d(e.$slots,"icon")])):f("",!0),m("div",Qt,[d(e.$slots,"default")]),e.dismissible?(l(),o("span",{key:1,class:"dismiss",role:"button","aria-label":e.dismissAriaLabel,onClick:t[0]||(t[0]=(...n)=>e.dismiss&&e.dismiss(...n))},[d(e.$slots,"dismiss",{},()=>[t[1]||(t[1]=P("×"))])],8,Yt)):f("",!0)],16)),[[x,!e.dismissed]])}]]),de="IBadge",Xt=p(c({name:de,inheritAttrs:!1,props:{color:{type:String,default:u(de,"color")},size:{type:String,default:u(de,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["badge",e.classes]},e.$attrs),[d(e.$slots,"default")],16)}]]),ue="IBreadcrumb",ei=c({name:ue,inheritAttrs:!1,props:{ariaLabel:{type:String,default:"Breadcrumbs"},color:{type:String,default:u(ue,"color")},size:{type:String,default:u(ue,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),ti=["aria-label"],ii=p(ei,[["render",function(e,t,i,a,s,r){return l(),o("nav",h({class:["breadcrumb",e.classes],"aria-label":e.ariaLabel},e.$attrs),[m("ol",null,[d(e.$slots,"default")])],16,ti)}]]),ai=c({name:"IBreadcrumbItem",mixins:[Z],inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},href:{type:String,default:""},to:{type:[String,Object],default:""},tabindex:{type:[Number,String],default:0}},computed:{classes(){return{"-active":this.active,"-disabled":this.disabled}},tabIndex(){return this.disabled||this.active?-1:this.tabindex}}}),si=["is","href","to","tabindex","aria-current"],ni=p(ai,[["render",function(e,t,i,a,s,r){return l(),o("li",h({class:["breadcrumb-item",e.classes]},e.$attrs),[m("a",{is:e.isTag,href:e.href,to:e.to,tabindex:e.tabIndex,"aria-current":e.active?"location":null},[d(e.$slots,"default",{},void 0,!0)],8,si)],16)}],["__scopeId","data-v-28fa6b16"]]),ce="ILoader",li=c({name:ce,inheritAttrs:!1,props:{color:{type:String,default:u(ce,"color")},size:{type:String,default:u(ce,"size")}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),ri={key:0,class:"loader-text"},yt=p(li,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["loader",e.classes],role:"img","aria-hidden":"true"}),[e.$slots.default?(l(),o("span",ri,[d(e.$slots,"default")])):f("",!0),t[0]||(t[0]=m("svg",{viewBox:"25 25 50 50"},[m("circle",{cx:"50",cy:"50",r:"20",fill:"none","stroke-width":"4","stroke-miterlimit":"10"})],-1))],16)}]]),pe="IButton",vt=p(c({name:pe,components:{ILoader:yt},mixins:[Z],inject:{buttonGroup:{default:()=>({})},form:{default:()=>({})},formGroup:{default:()=>({})}},inheritAttrs:!1,props:{active:{type:Boolean,default:!1},block:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},color:{type:String,default:u(pe,"color")},disabled:{type:Boolean,default:!1},link:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},outline:{type:Boolean,default:!1},tag:{type:String,default:"button"},tabindex:{type:[Number,String],default:0},size:{type:String,default:u(pe,"size"),validator:v}},computed:{ariaBusy(){return this.role!=="button"?null:this.loading?"true":"false"},ariaDisabled(){return this.role!=="button"?null:this.disabled?"true":"false"},ariaPressed(){return this.role!=="button"?null:this.active?"true":"false"},classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-active":this.active,"-block":this.block,"-circle":this.circle,"-disabled":this.isDisabled,"-link":this.link,"-outline":this.outline}},isDisabled(){return this.disabled||this.buttonGroup.disabled||this.form.disabled||this.formGroup.disabled},role(){return this.$attrs.to||this.$attrs.href?"link":"button"},tabIndex(){return this.isDisabled?-1:this.tabindex}}}),[["render",function(e,t,i,a,s,r){const n=A("i-loader");return l(),V(Y(e.isTag),h(e.$attrs,{class:["button",e.classes],tag:e.tag,role:e.role,tabindex:e.tabIndex,disabled:e.isDisabled||e.loading,"aria-disabled":e.ariaDisabled,"aria-pressed":e.ariaPressed,"aria-busy":e.ariaBusy,"aria-live":"polite"}),{default:y(()=>[e.loading?d(e.$slots,"loading",{key:0},()=>[I(n)]):f("",!0),e.loading?f("",!0):d(e.$slots,"default",{key:1})]),_:3},16,["tag","role","tabindex","class","disabled","aria-disabled","aria-pressed","aria-busy"])}]]),oi=c({name:"IButtonGroup",inject:{form:{default:()=>({})},buttonGroup:{default:()=>({})},formGroup:{default:()=>({})}},provide(){return{buttonGroup:this}},inheritAttrs:!1,props:{vertical:{type:Boolean,default:!1},block:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},computed:{classes(){return{"-vertical":this.vertical,"-block":this.block,"-disabled":this.isDisabled}},isDisabled(){return this.disabled||this.buttonGroup.disabled||this.form.disabled||this.formGroup.disabled}}}),di=["aria-disabled"],ui=p(oi,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["button-group",e.classes],role:"group","aria-disabled":e.isDisabled},e.$attrs),[d(e.$slots,"default")],16,di)}]]),H={};for(const e of je){e!==""&&(H[e]={type:[String,Boolean,Number],default:!1});for(const t of["first","last"])H[`${t}${Re(e)}`]={type:Boolean,default:!1};for(const t of["offset","push","pull"])H[`${t}${Re(e)}`]={type:[String,Number],default:""}}const Ze=p(c({name:"IColumn",inheritAttrs:!1,props:H,computed:{classes(){return Object.keys(H).reduce((e,t)=>(this[t]&&(e[rt(`-${t}`,this[t])]=!0),e),{})}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["column",e.classes]},e.$attrs),[d(e.$slots,"default")],16)}]]),Ke=p(c({name:"IContainer",inheritAttrs:!1,props:{fluid:{type:Boolean,default:!1}},computed:{classes(){return{"-fluid":this.fluid}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["container",e.classes]},e.$attrs),[d(e.$slots,"default")],16)}]]),he="ICard",ci=c({name:he,inheritAttrs:!1,props:{color:{type:String,default:u(he,"color")},size:{type:String,default:u(he,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),pi={key:0,class:"card-header"},hi={key:1,class:"card-body"},mi={key:2,class:"card-footer"},fi=p(ci,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["card",e.classes]},e.$attrs),[e.$slots.header?(l(),o("header",pi,[d(e.$slots,"header")])):f("",!0),d(e.$slots,"image"),e.$slots.default?(l(),o("div",hi,[d(e.$slots,"default")])):f("",!0),e.$slots.footer?(l(),o("footer",mi,[d(e.$slots,"footer")])):f("",!0)],16)}]]),me="ICheckbox",bi=c({name:me,mixins:[R],inheritAttrs:!1,props:{color:{type:String,default:u(me,"color")},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},value:{default:!1},modelValue:{default:!1},name:{type:[String,Number],default:()=>S("checkbox")},native:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},size:{type:String,default:u(me,"size"),validator:v},tabindex:{type:[Number,String],default:0}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-native":this.native}},checked(){return this.formGroup.checked?this.formGroup.checked.includes(this.value):this.schema?this.schema.value:this.modelValue},tabIndex(){return this.isDisabled?-1:this.tabindex}},methods:{clickInputRef(){this.isReadonly||this.$refs.input.click()},onChange(e){var t,i,a,s;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e.target.checked),(s=(a=this.formGroup).onChange)==null||s.call(a,this.value),this.$emit("update:modelValue",e.target.checked)},onBlur(e){var t,i;(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)}}}),yi=["aria-checked"],vi=["checked","name","disabled","readonly",".indeterminate"],gi=["aria-checked","aria-disabled","aria-readonly","tabindex"],ki=p(bi,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["checkbox",e.classes],"aria-checked":e.checked?"true":"false",role:"checkbox"},e.$attrs),[m("input",{ref:"input",type:"checkbox",checked:e.checked,tabindex:"-1",name:e.name,disabled:e.isDisabled,readonly:e.isReadonly,".indeterminate":e.indeterminate,"aria-hidden":"true",onChange:t[0]||(t[0]=(...n)=>e.onChange&&e.onChange(...n))},null,40,vi),m("label",{class:"checkbox-label","aria-checked":e.checked,"aria-disabled":e.isDisabled,"aria-readonly":e.isReadonly,tabindex:e.tabIndex,onBlur:t[1]||(t[1]=(...n)=>e.onBlur&&e.onBlur(...n)),onClick:t[2]||(t[2]=(...n)=>e.clickInputRef&&e.clickInputRef(...n)),onKeydown:t[3]||(t[3]=E(Q((...n)=>e.clickInputRef&&e.clickInputRef(...n),["stop","prevent"]),["space"]))},[d(e.$slots,"default")],40,gi)],16,yi)}]]),fe="ICheckboxGroup",$i=c({name:fe,mixins:[R],provide(){return{formGroup:this}},inheritAttrs:!1,props:{color:{type:String,default:u(fe,"color")},disabled:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},modelValue:{default:()=>[]},name:{type:[String,Number],default:()=>S("checkbox-group")},readonly:{type:Boolean,default:!1},size:{type:String,default:u(fe,"size"),validator:v}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-inline":this.inline}},checked(){return this.schema?this.schema.value:this.modelValue}},methods:{onChange(e){var a,s;const t=[...this.modelValue],i=t.findIndex(r=>r===e);i!==-1?t.splice(i,1):t.push(e),(s=(a=this.parent).onInput)==null||s.call(a,this.name,t),this.$emit("update:modelValue",t)}}}),wi=["name"],Ii=p($i,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["form-group checkbox-group",e.classes],name:e.name,role:"checkboxgroup"},e.$attrs),[d(e.$slots,"default",{},void 0,!0)],16,wi)}],["__scopeId","data-v-4043b2ce"]]),be="ICollapsible",xi=c({name:be,provide(){return{collapsible:this}},inheritAttrs:!1,props:{accordion:{type:Boolean,default:!1},color:{type:String,default:u(be,"color")},size:{type:String,default:u(be,"size"),validator:v},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{activeItems:[].concat(this.modelValue)}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}},watch:{modelValue(e){this.activeItems=[].concat(e)}},methods:{onItemClick(e){if(this.accordion)return this.activeItems=this.activeItems.indexOf(e.name)>-1?[]:[e.name],this.activeItems;const t=this.activeItems.indexOf(e.name);t>-1?this.activeItems.splice(t,1):this.activeItems.push(e.name),this.$emit("update:modelValue",this.activeItems)}}}),Ci=p(xi,[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:["collapsible",e.classes],role:"tablist","aria-multiselectable":"true"},e.$attrs),[d(e.$slots,"default")],16)}]]),gt=p(c({name:"IExpandTransition",methods:{onEnter(e){const t=q(e,"width");e.style.width=t,e.style.position="absolute",e.style.visibility="hidden",e.style.height="auto";const i=q(e,"height");e.style.width=null,e.style.position=null,e.style.visibility=null,e.style.height=0,q(e,"height"),setTimeout(()=>{e.style.height=i})},onAfterEnter(e){e.style.height="auto"},onLeave(e){e.style.height=q(e,"height"),q(e,"height"),setTimeout(()=>{e.style.height=0})}}}),[["render",function(e,t,i,a,s,r){return l(),V(L,{name:"expand",onEnter:e.onEnter,onAfterEnter:e.onAfterEnter,onLeave:e.onLeave},{default:y(()=>[d(e.$slots,"default",{},void 0,!0)]),_:3},8,["onEnter","onAfterEnter","onLeave"])}],["__scopeId","data-v-1e395af5"]]),Si=c({name:"ICollapsibleItem",components:{IExpandTransition:gt},inject:{collapsible:{default:()=>({activeItems:[]})}},inheritAttrs:!1,props:{name:{type:String,default:()=>S("collapsible-item")},title:{type:String,default:""}},computed:{active(){return this.collapsible.activeItems.indexOf(this.name)>-1},classes(){return{"-active":this.active}}},methods:{onClick(){this.collapsible.onItemClick(this)}}}),Bi=["name"],zi=["id","aria-expanded","aria-controls","aria-describedby"],Ai=["id","aria-hidden","aria-labelledby"],Vi={class:"content"},Oi=p(Si,[["render",function(e,t,i,a,s,r){const n=A("i-expand-transition");return l(),o("div",h({class:["collapsible-item",e.classes],name:e.name},e.$attrs),[m("a",{class:"collapsible-header",role:"tab",id:`collapsible-item-heading-${e.name}`,"aria-expanded":e.active?"true":"false","aria-controls":`collapsible-item-content-${e.name}`,"aria-describedby":`collapsible-item-content-${e.name}`,tabindex:"0",onClick:t[0]||(t[0]=(...b)=>e.onClick&&e.onClick(...b)),onKeydown:[t[1]||(t[1]=E(Q((...b)=>e.onClick&&e.onClick(...b),["prevent"]),["space"])),t[2]||(t[2]=E(Q((...b)=>e.onClick&&e.onClick(...b),["prevent"]),["enter"]))]},[d(e.$slots,"header",{},()=>[P(_(e.title),1)]),t[3]||(t[3]=m("i",{class:"icon"},null,-1))],40,zi),I(n,null,{default:y(()=>[$(m("div",{class:"collapsible-body",role:"tabpanel",id:`collapsible-item-content-${e.name}`,"aria-hidden":e.active?"false":"true","aria-labelledby":`collapsible-item-heading-${e.name}`},[m("div",Vi,[d(e.$slots,"default")])],8,Ai),[[x,e.active]])]),_:3})],16,Bi)}]]),Li=(e,t)=>i=>{(function(a){return!!a&&!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)})(e)&&i.target&&(e===i.target||e.contains(i.target)||t.value(i))},K={beforeMount(e,t){typeof window<"u"&&O(window.document,"mousedown",Li(e,t))}},ye="IDropdown",Di=c({name:ye,directives:{ClickOutside:K},mixins:[ee,Ge],provide(){return{dropdown:this}},inject:{navbar:{default:()=>({onItemClick:()=>{}})},sidebar:{default:()=>({onItemClick:()=>{}})}},inheritAttrs:!1,props:{animationDuration:{type:Number,default:300},color:{type:String,default:u(ye,"color")},disabled:{type:Boolean,default:!1},hideOnItemClick:{type:Boolean,default:!0},keydownTrigger:{type:Array,default:()=>["up","down","enter","space","tab","esc"]},keydownItem:{type:Array,default:()=>["up","down","enter","space","tab","esc"]},modelValue:{type:Boolean,default:!1},arrow:{type:Boolean,default:!0},placement:{type:String,default:"bottom"},trigger:{type:[String,Array],default:()=>["click"]},offset:{type:Number,default:6},interactable:{type:Boolean,default:!0},popperOptions:{type:Object,default:()=>({})},size:{type:String,default:u(ye,"size"),validator:v}},emits:["click-outside","update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}},mounted(){for(const e of this.$refs.trigger.children)O(e,"keydown",this.onTriggerKeyDown);O(this.$refs.popup,"keydown",this.onItemKeyDown)},beforeUnmount(){for(const e of this.$refs.trigger.children)T(e,"keydown",this.onTriggerKeyDown);T(this.$refs.popup,"keydown",this.onItemKeyDown)},methods:{onEscape(){this.visible=!1,this.$emit("update:modelValue",!1)},handleClickOutside(e){this.visible=!1,this.$emit("update:modelValue",!1),this.onClickOutside(e)},getFocusableItems(){const e=[];for(const t of this.$refs.body.children)Fe(t)&&e.push(t);return e},onTriggerKeyDown(e){if(this.keydownTrigger.length===0)return;const t=this.getFocusableItems(),i=t.findIndex(s=>s.active),a=t[i>-1?i:0];switch(!0){case(k("up",e)&&this.keydownTrigger.includes("up")):case(k("down",e)&&this.keydownTrigger.includes("down")):this.show(),setTimeout(()=>{a.focus()},this.visible?0:this.animationDuration),e.preventDefault(),e.stopPropagation();break;case(k("enter",e)&&this.keydownTrigger.includes("enter")):case(k("space",e)&&this.keydownTrigger.includes("space")):this.onClick(),this.visible||setTimeout(()=>{a.focus()},this.animationDuration),e.preventDefault();break;case(k("tab",e)&&this.keydownTrigger.includes("tab")):case(k("esc",e)&&this.keydownTrigger.includes("esc")):this.hide()}},onItemKeyDown(e){if(this.keydownItem.length!==0)switch(!0){case(k("up",e)&&this.keydownItem.includes("up")):case(k("down",e)&&this.keydownItem.includes("down")):const t=this.getFocusableItems(),i=t.findIndex(r=>r===e.target),a=t.length-1;let s;s=k("up",e)?i>0?i-1:0:i{e.onItemClick()})}}}),Ni={class:"dropdown-trigger",ref:"trigger"},Ti=["aria-hidden"],Pi={key:0,"data-popper-arrow":""},Ri={key:1,class:"dropdown-header"},Ei={key:2,class:"dropdown-body",ref:"body"},Mi={key:3,class:"dropdown-footer"},_i=p(Di,[["render",function(e,t,i,a,s,r){const n=G("click-outside");return $((l(),o("div",h({class:"dropdown-wrapper",ref:"wrapper","aria-haspopup":"true",onKeyup:t[0]||(t[0]=E((...b)=>e.onEscape&&e.onEscape(...b),["esc"]))},e.$attrs),[m("div",Ni,[d(e.$slots,"default")],512),I(L,{name:"zoom-in-top-transition",onAfterLeave:e.destroyPopper},{default:y(()=>[$(m("div",{class:z(["dropdown",e.classes]),role:"menu",ref:"popup","aria-hidden":e.visible?"false":"true"},[e.arrow?(l(),o("span",Pi)):f("",!0),e.$slots.header?(l(),o("div",Ri,[d(e.$slots,"header")])):f("",!0),e.$slots.body?(l(),o("div",Ei,[d(e.$slots,"body")],512)):f("",!0),e.$slots.footer?(l(),o("div",Mi,[d(e.$slots,"footer")])):f("",!0)],10,Ti),[[x,e.visible]])]),_:3},8,["onAfterLeave"])],16)),[[n,e.onClickOutside]])}]]),Fi=p(c({name:"IDropdownDivider",inheritAttrs:!1}),[["render",function(e,t,i,a,s,r){return l(),o("div",h({class:"dropdown-divider",role:"separator"},e.$attrs),null,16)}]]),ji=p(c({name:"IDropdownItem",mixins:[Z],inject:{dropdown:{default:()=>({})}},inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},plaintext:{type:Boolean,default:!1},tag:{type:String,default:"div"},tabindex:{type:[Number,String],default:0}},computed:{classes(){return{"-active":this.active,"-disabled":this.disabled,"-plaintext":this.plaintext}},role(){return this.$attrs.to||this.$attrs.href?"link":"menuitem"},tabIndex(){return this.disabled?-1:this.tabindex}},methods:{onClick(e){var t,i;(i=(t=this.dropdown).onItemClick)==null||i.call(t,this,e)}}}),[["render",function(e,t,i,a,s,r){return l(),V(Y(e.isTag),h(e.$attrs,{class:["dropdown-item",e.classes],role:e.role,tag:e.tag,tabindex:e.tabIndex,disabled:e.disabled,"aria-disabled":e.disabled,"aria-pressed":e.active,onClick:e.onClick}),{default:y(()=>[d(e.$slots,"default")]),_:3},16,["class","role","tag","tabindex","disabled","aria-disabled","aria-pressed","onClick"])}]]),Xe="IForm",Gi=c({name:Xe,mixins:[R],provide(){return{form:this}},inheritAttrs:!1,props:{color:{type:String,default:""},disabled:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},name:{type:String,default:()=>S("form")},modelValue:{type:Object,default:()=>null},readonly:{type:Boolean,default:!1},size:{type:String,default:u(Xe,"size"),validator:v}},emits:["update:modelValue","submit"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-inline":this.inline}},schema(){return this.modelValue?this.modelValue:M(this.formGroup.schema||this.form.schema||{},this.name)}},methods:{onBlur(e,t){var i,a;if((a=(i=this.parent).onBlur)==null||a.call(i,this.name?`${this.name}.${e}`:e,t),this.modelValue){let s=U(this.modelValue);s=ne(s,e,{untouched:!1,touched:!0}),this.shouldValidate(e,"blur")&&(s=le(s)),this.$emit("update:modelValue",s)}},onInput(e,t){var i,a;if((a=(i=this.parent).onInput)==null||a.call(i,this.name?`${this.name}.${e}`:e,t),this.modelValue){let s=U(this.modelValue);s=function(r,n,b,B){return M(r,n)[b]=B,r}(s,e,"value",t),s=ne(s,e,{pristine:!1,dirty:!0}),this.shouldValidate(e,"input")&&(s=le(s)),this.$emit("update:modelValue",s)}},onSubmit(e){if(e.preventDefault(),this.modelValue){let t=U(this.modelValue);if(t=ne(le(t),"",{untouched:!1,touched:!0}),this.$emit("update:modelValue",t),t.invalid)return}this.$emit("submit",e)},shouldValidate(e,t){const i=M(this.modelValue,e);return(i.validateOn?[].concat(i.validateOn):this.$inkline.options.validateOn).includes(t)}}}),Zi=["name","readonly","disabled"],Ki=p(Gi,[["render",function(e,t,i,a,s,r){return l(),o("form",h(e.$attrs,{class:["form",e.classes],role:"form",name:e.name,readonly:e.isReadonly,disabled:e.isDisabled,onSubmit:t[0]||(t[0]=(...n)=>e.onSubmit&&e.onSubmit(...n))}),[d(e.$slots,"default",{},void 0,!0)],16,Zi)}],["__scopeId","data-v-575ccba7"]]),ve="IFormGroup",qi=c({name:ve,mixins:[R],provide(){return{formGroup:this}},props:{color:{type:String,default:u(ve,"color")},disabled:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},name:{type:String,default:""},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},size:{type:String,default:u(ve,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-inline":this.inline,"-required":this.required}}},methods:{onBlur(e,t){var i,a;(a=(i=this.parent)==null?void 0:i.onBlur)==null||a.call(i,this.name?`${this.name}.${e}`:e,t)},onInput(e,t){var i,a;(a=(i=this.parent)==null?void 0:i.onInput)==null||a.call(i,this.name?`${this.name}.${e}`:e,t)}}}),Wi=["name"],Ui=p(qi,[["render",function(e,t,i,a,s,r){return l(),o("fieldset",{class:z(["form-group",e.classes]),name:e.name,role:"group"},[d(e.$slots,"default")],10,Wi)}]]),Hi=c({name:"IFormError",inject:{formGroup:{default:()=>({})},form:{default:()=>({})}},props:{for:{type:String,default:""},visible:{type:[Array,String],default:()=>["touched","dirty","invalid"]}},computed:{parent(){return this.formGroup.$?this.formGroup:this.form},schema(){return this.for!==""?M(this.parent.schema||{},`${this.for}`):this.parent.schema||{}},errors(){return this.schema.errors||[]},isVisible(){let e=!0;return this.schema&&this.visible&&[].concat(this.visible).forEach(t=>{e=e&&this.schema[t]}),e}}}),Qi={key:0,class:"form-error","aria-live":"polite"},Yi=p(Hi,[["render",function(e,t,i,a,s,r){return e.schema?$((l(),V(L,{key:0,name:"fade-in-transition"},{default:y(()=>[e.errors.length>0?(l(),o("ul",Qi,[(l(!0),o(j,null,X(e.errors,n=>(l(),o("li",null,_(n.message),1))),256))])):f("",!0)]),_:1},512)),[[x,e.isVisible]]):f("",!0)}]]),et="IFormLabel",Ji=c({name:et,mixins:[R],props:{for:{type:String,default:""},placement:{type:String,default:""},size:{type:String,default:u(et,"size"),validator:v}},computed:{classes(){return{[`-${this.size}`]:!!this.size,[`-${this.placement}`]:!!this.placement}},forAttr(){return this.for}},methods:{getNextSibling(){return this.$el.nextSibling.querySelector("input, textarea")},onClick(){var e;this.for||((e=this.getNextSibling())==null||e.focus())}}}),Xi=["for"],ea=p(Ji,[["render",function(e,t,i,a,s,r){return l(),o("label",h(e.$attrs,{class:["form-label",e.classes],for:e.forAttr,onClick:t[0]||(t[0]=(...n)=>e.onClick&&e.onClick(...n))}),[d(e.$slots,"default")],16,Xi)}]]),tt="IHamburgerMenu",kt=p(c({name:tt,inheritAttrs:!1,props:{animation:{type:String,default:"close"},color:{type:String,default:u(tt,"color")},modelValue:{type:Boolean,default:!1}},emits:["update:modelValue"],computed:{classes(){return{...g(this),"-active":this.modelValue,[`-${this.animation}`]:!0}}},methods:{onClick(){this.$emit("update:modelValue",!this.modelValue)}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["hamburger-menu",e.classes],onClick:t[0]||(t[0]=(...n)=>e.onClick&&e.onClick(...n))}),t[1]||(t[1]=[m("span",{class:"hamburger-menu-bars"},null,-1)]),16)}]]),Me={};for(const e of je)for(const t of["start","center","end","top","middle","bottom","around","between","reverse"])Me[`${t}${Re(e)}`]={type:Boolean,default:!1};const qe=p(c({name:"IRow",inheritAttrs:!1,props:{noGutter:{type:Boolean,default:!1},noCollapse:{type:Boolean,default:!1},...Me},computed:{classes(){const e=Object.keys(Me).reduce((t,i)=>(this[i]&&(t[rt(`-${i}`,this[i])]=!0),t),{});return{"-no-gutter":this.noGutter,"-no-collapse":this.noCollapse,...e}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["row",e.classes]}),[d(e.$slots,"default")],16)}]]),ge="IHeader",ta=p(c({name:ge,components:{IContainer:Ke,IRow:qe,IColumn:Ze},inheritAttrs:!1,props:{color:{type:String,default:u(ge,"color")},cover:{type:Boolean,default:!1},fluid:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},size:{type:String,default:u(ge,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-cover":this.cover,"-fullscreen":this.fullscreen}}}}),[["render",function(e,t,i,a,s,r){const n=A("i-column"),b=A("i-row"),B=A("i-container");return l(),o("header",h(e.$attrs,{class:["header",e.classes]}),[I(B,{fluid:e.fluid},{default:y(()=>[I(b,null,{default:y(()=>[I(n,null,{default:y(()=>[d(e.$slots,"default")]),_:3})]),_:3})]),_:3},8,["fluid"])],16)}]]),it="IIcon",$t=p(c({name:it,inheritAttrs:!1,props:{name:{type:String,default:""},size:{type:String,default:u(it,"size"),validator:v}},setup(e){const t=Ot("inklineIcons"),i=se(()=>function(r,n="dash"){const b=n==="dash"?/-([a-z0-9])/g:/_([a-z0-9])/g;return r.replace(b,(B,F)=>F.toUpperCase())}(e.name)),a=se(()=>t[i.value]),s=se(()=>({"inkline-icon":!0,[`-${e.size}`]:!!e.size}));return Vt(()=>{i.value&&t[i.value]}),()=>{var r,n;return nt("svg",{class:s.value,...(r=a.value)==null?void 0:r.attributes},ct(((n=a.value)==null?void 0:n.children)||[]))}}}),[["render",function(e,t,i,a,s,r){const n=A("icon");return l(),V(n,h(e.$attrs,{size:e.size}),null,16,["size"])}]]),ke="IInput",ia=c({name:ke,mixins:[R],inheritAttrs:!1,props:{color:{type:String,default:u(ke,"color")},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},error:{type:[Array,Boolean],default:()=>["touched","dirty","invalid"]},id:{type:String,default:void 0},modelValue:{type:[String,Number],default:""},name:{type:[String,Number],default:()=>S("input")},plaintext:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},size:{type:String,default:u(ke,"size"),validator:v},tabindex:{type:[Number,String],default:0},type:{type:String,default:"text"},clearAriaLabel:{type:String,default:"Clear"}},emits:["update:modelValue","clear"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-error":this.hasError,"-readonly":this.isReadonly,"-prefixed":!!this.$slots.prefix,"-suffixed":!!this.$slots.suffix,"-prepended":!!this.$slots.prepend,"-appended":!!this.$slots.append}},hasError(){if(typeof this.error=="boolean")return this.error;if(this.schema&&this.error){let e=!0;return[].concat(this.error).forEach(t=>{e=e&&this.schema[t]}),e}return!1},tabIndex(){return this.isDisabled?-1:this.tabindex},isClearable(){return this.clearable&&!this.isDisabled&&!this.isReadonly&&this.value!==""},value(){return this.schema?this.schema.value:this.modelValue}},methods:{onBlur(e){var t,i;(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)},onInput(e){var t,i;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e.target.value),this.$emit("update:modelValue",e.target.value)},onClear(e){this.$emit("update:modelValue",""),this.$emit("clear",e)},focus(){this.$refs.input.focus()}}}),aa={key:0,class:"input-prepend"},sa={class:"input"},na={key:0,class:"input-prefix"},la=["value","name","id","type","tabindex","disabled","aria-disabled","readonly","aria-readonly"],ra={key:1,class:"input-suffix"},oa=["aria-label","aria-hidden"],da={key:1,class:"input-append"},te=p(ia,[["render",function(e,t,i,a,s,r){return l(),o("div",{class:z(["input-wrapper",e.classes])},[e.$slots.prepend?(l(),o("div",aa,[d(e.$slots,"prepend")])):f("",!0),m("div",sa,[e.$slots.prefix?(l(),o("span",na,[d(e.$slots,"prefix")])):f("",!0),m("input",h(e.$attrs,{value:e.value,ref:"input",name:e.name,id:e.id,type:e.type,tabindex:e.tabIndex,disabled:e.isDisabled,"aria-disabled":!!e.isDisabled&&"true",readonly:e.isReadonly||e.plaintext,"aria-readonly":!(!e.isReadonly&&!e.plaintext)&&"true",onInput:t[0]||(t[0]=(...n)=>e.onInput&&e.onInput(...n)),onBlur:t[1]||(t[1]=(...n)=>e.onBlur&&e.onBlur(...n))}),null,16,la),e.$slots.suffix||e.clearable&&e.isClearable?(l(),o("span",ra,[d(e.$slots,"clearable",{clear:e.onClear},()=>[e.clearable?$((l(),o("i",{key:0,class:"input-clear",role:"button","aria-label":e.clearAriaLabel,"aria-hidden":e.isClearable?"false":"true",onClick:t[2]||(t[2]=(...n)=>e.onClear&&e.onClear(...n))},null,8,oa)),[[x,e.isClearable]]):f("",!0)]),d(e.$slots,"suffix")])):f("",!0)]),e.$slots.append?(l(),o("div",da,[d(e.$slots,"append")])):f("",!0)],2)}]]),$e="INumberInput",ua=c({name:$e,components:{IButton:vt},extends:te,inheritAttrs:!1,props:{color:{type:String,default:u($e,"color")},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{type:String,default:""},modelValue:{type:[String,Number],default:""},name:{type:[String,Number],default:()=>S("input")},readonly:{type:Boolean,default:!1},size:{type:String,default:u($e,"size"),validator:v},tabindex:{type:[Number,String],default:0},min:{type:[Number,String],default:-1/0},max:{type:[Number,String],default:1/0},precision:{type:Number,default:0},step:{type:Number,default:1}},emits:["update:modelValue"],watch:{modelValue:{immediate:!0,handler(e){var i,a;let t=(e||"").toString().replace(/^[^0-9-]/,"").replace(/^(-)[^0-9]/,"$1").replace(new RegExp(`^(-?[0-9]+)[^0-9${this.precision>0?".":""}]`),"$1");this.precision>0&&(t=t.replace(/^(-?[0-9]+\.)[^0-9]/,"$1").replace(new RegExp(`^(-?[0-9]+\\.[0-9]{0,${this.precision}}).*`),"$1")),parseFloat(t)>=parseFloat(this.max)&&(t=this.max.toString()),parseFloat(t)<=parseFloat(this.min)&&(t=this.min.toString()),(a=(i=this.parent).onInput)==null||a.call(i,this.name,t),this.$emit("update:modelValue",t)}}},methods:{decrease(){this.$emit("update:modelValue",this.formatPrecision((Number(this.modelValue)-this.step).toString()))},increase(){this.$emit("update:modelValue",this.formatPrecision((Number(this.modelValue)+this.step).toString()))},formatPrecision(e){const t=e.split(".");let i=t[1]||"";for(let a=i.length;a0?`${t[0]}.${i}`:t[0]},onBlurFormatPrecision(e){var t,i;this.$emit("update:modelValue",this.formatPrecision(Number(this.modelValue).toString())),(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)}}}),ca={class:"input-prepend"},pa={class:"input"},ha={key:0,class:"input-prefix"},ma=["value","name","id","tabindex","disabled","aria-disabled","readonly","aria-readonly"],fa={key:1,class:"input-suffix"},ba=["aria-label","aria-hidden"],ya={class:"input-append"},va=p(ua,[["render",function(e,t,i,a,s,r){const n=A("i-button");return l(),o("div",{class:z(["input-wrapper -prepended -appended",e.classes])},[m("div",ca,[d(e.$slots,"prepend"),I(n,{type:"button",color:e.color,size:e.size,disabled:e.disabled,class:"input-button-decrease",onClick:e.decrease},{default:y(()=>t[3]||(t[3]=[P(" - ")])),_:1},8,["color","size","disabled","onClick"])]),m("div",pa,[e.$slots.prefix?(l(),o("span",ha,[d(e.$slots,"prefix")])):f("",!0),m("input",h(e.$attrs,{value:e.value,ref:"input",name:e.name,id:e.id,type:"text",tabindex:e.tabIndex,disabled:e.isDisabled,"aria-disabled":!!e.isDisabled&&"true",readonly:e.isReadonly,"aria-readonly":!!e.isReadonly&&"true",onInput:t[0]||(t[0]=(...b)=>e.onInput&&e.onInput(...b)),onBlur:t[1]||(t[1]=(...b)=>e.onBlur&&e.onBlur(...b))}),null,16,ma),e.$slots.suffix||e.clearable&&e.isClearable?(l(),o("span",fa,[d(e.$slots,"clearable",{clear:e.onClear},()=>[e.clearable?$((l(),o("i",{key:0,class:"input-clear",role:"button","aria-label":e.clearAriaLabel,"aria-hidden":e.isClearable?"false":"true",onClick:t[2]||(t[2]=(...b)=>e.onClear&&e.onClear(...b))},null,8,ba)),[[x,e.isClearable]]):f("",!0)]),d(e.$slots,"suffix")])):f("",!0)]),m("div",ya,[I(n,{type:"button",color:e.color,size:e.size,disabled:e.disabled,class:"input-button-increase",onClick:e.increase},{default:y(()=>t[4]||(t[4]=[P(" + ")])),_:1},8,["color","size","disabled","onClick"]),d(e.$slots,"append")])],2)}]]),we="ITextarea",ga=c({name:we,extends:te,inheritAttrs:!1,props:{color:{type:String,default:u(we,"color")},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{type:String,default:""},modelValue:{type:String,default:""},name:{type:[String,Number],default:()=>S("textarea")},readonly:{type:Boolean,default:!1},size:{type:String,default:u(we,"size"),validator:v},tabindex:{type:[Number,String],default:0}},emits:["update:modelValue"]}),ka={key:0,class:"input-prepend"},$a={class:"input"},wa={key:0,class:"input-prefix"},Ia=["value","name","id","tabindex","disabled","aria-disabled","readonly","aria-readonly"],xa={key:1,class:"input-suffix"},Ca={key:1,class:"input-append"},Sa=p(ga,[["render",function(e,t,i,a,s,r){return l(),o("div",{class:z(["input-wrapper",e.classes])},[e.$slots.prepend?(l(),o("div",ka,[d(e.$slots,"prepend")])):f("",!0),m("div",$a,[e.$slots.prefix?(l(),o("span",wa,[d(e.$slots,"prefix")])):f("",!0),m("textarea",h(e.$attrs,{value:e.value,ref:"input",role:"textbox",name:e.name,id:e.id,tabindex:e.tabIndex,disabled:e.isDisabled,"aria-disabled":!!e.isDisabled&&"true",readonly:e.isReadonly,"aria-readonly":!!e.isReadonly&&"true","aria-multiline":"true",onInput:t[0]||(t[0]=(...n)=>e.onInput&&e.onInput(...n)),onBlur:t[1]||(t[1]=(...n)=>e.onBlur&&e.onBlur(...n))}),null,16,Ia),e.$slots.suffix||e.clearable&&e.isClearable?(l(),o("span",xa,[d(e.$slots,"clearable",{clear:e.onClear},()=>[$(m("i",{class:"input-clear","aria-label":"Clear",onClick:t[2]||(t[2]=(...n)=>e.onClear&&e.onClear(...n))},null,512),[[x,e.isClearable]])]),d(e.$slots,"suffix")])):f("",!0)]),e.$slots.append?(l(),o("div",Ca,[d(e.$slots,"append")])):f("",!0)],2)}]]),Ba=p(c({name:"ILayout",inheritAttrs:!1,props:{vertical:{type:Boolean,default:!1}},computed:{classes(){return{"-vertical":this.vertical}}}}),[["render",function(e,t,i,a,s,r){return l(),o("main",h(e.$attrs,{class:["layout",e.classes]}),[d(e.$slots,"default",{},void 0,!0)],16)}],["__scopeId","data-v-9a9f03c1"]]),za=c({name:"ILayoutAside",inheritAttrs:!1}),Aa={class:"layout-aside-children"},Va=p(za,[["render",function(e,t,i,a,s,r){return l(),o("aside",h(e.$attrs,{class:"layout-aside"}),[m("div",Aa,[d(e.$slots,"default",{},void 0,!0)])],16)}],["__scopeId","data-v-6e13c28d"]]),Oa=p(c({name:"ILayoutContent",inheritAttrs:!1}),[["render",function(e,t,i,a,s,r){return l(),o("section",h(e.$attrs,{class:"layout-content"}),[d(e.$slots,"default",{},void 0,!0)],16)}],["__scopeId","data-v-5b197a5d"]]),La=p(c({name:"ILayoutFooter",inheritAttrs:!1}),[["render",function(e,t,i,a,s,r){return l(),o("footer",h(e.$attrs,{class:"layout-footer"}),[d(e.$slots,"default",{},void 0,!0)],16)}],["__scopeId","data-v-31bd8dbc"]]),Da=p(c({name:"ILayoutHeader",inheritAttrs:!1}),[["render",function(e,t,i,a,s,r){return l(),o("header",h(e.$attrs,{class:"layout-header"}),[d(e.$slots,"default",{},void 0,!0)],16)}],["__scopeId","data-v-ece9ef9b"]]),Ie="IListGroup",Na=p(c({name:Ie,inheritAttrs:!1,props:{border:{type:Boolean,default:!0},color:{type:String,default:u(Ie,"color")},size:{type:String,default:u(Ie,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-border":this.border}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["list-group",e.classes],role:"list"}),[d(e.$slots,"default")],16)}]]),Ta=p(c({name:"IListGroupItem",mixins:[Z],inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},tag:{type:String,default:"div"},tabindex:{type:[Number,String],default:0}},computed:{ariaDisabled(){return this.role==="link"?null:this.disabled?"true":"false"},classes(){return{"-active":this.active,"-disabled":this.disabled}},role(){return this.$attrs.to||this.$attrs.href?"link":"listitem"},tabIndex(){return this.disabled?-1:this.tabindex}}}),[["render",function(e,t,i,a,s,r){return l(),V(Y(e.isTag),h(e.$attrs,{class:["list-group-item",e.classes],tag:e.tag,role:e.role,tabindex:e.tabIndex,disabled:e.disabled,"aria-disabled":e.ariaDisabled}),{default:y(()=>[d(e.$slots,"default")]),_:3},16,["tag","role","tabindex","class","disabled","aria-disabled"])}]]),Pa=function(e){const t={};return(...i)=>{const a=JSON.stringify(i);return a in t||(t[a]=e(...i)),t[a]}}(function(e,t){if(!t)return[{text:e}];const i=[],a=e.toLowerCase(),s=t.toLowerCase();let r=0,n=0;for(;n=0;n=B?b:e.length,n&&(i.push({text:e.substring(r,n)}),r=n),B&&(n+=t.length,i.push({text:e.substring(r,n),marked:!0}),r=n)}return i}),Ra=c({name:"IMark",inheritAttrs:!1,props:{text:{type:String,default:""},query:{type:String,default:""}},computed:{parts(){return Pa(this.text,this.query)}}}),Ea={key:0},wt=p(Ra,[["render",function(e,t,i,a,s,r){return l(),o("span",Lt(Dt(e.$attrs)),[(l(!0),o(j,null,X(e.parts,({text:n,marked:b})=>(l(),o(j,null,[b?(l(),o("mark",Ea,_(n),1)):(l(),o(j,{key:1},[P(_(n),1)],64))],64))),256))],16)}]]),Ma=c({name:"IMedia",inheritAttrs:!1}),_a={class:"media-body"},Fa=p(Ma,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:"media"}),[d(e.$slots,"image"),m("div",_a,[d(e.$slots,"default")])],16)}]]),C={instances:{},stack:[],zIndex:1050,register(e){e&&e.name&&(C.instances[e.name]=e)},unregister(e){e&&e.name&&(C.instances[e.name]=null,delete C.instances[e.name])},open(e){typeof window<"u"&&(C.stack.push(e),C.instances[e].$el.style.zIndex=C.zIndex++)},close(e){typeof window<"u"&&C.stack.splice(C.stack.indexOf(e),1)},getTopOverlay(){const e=C.stack.slice(-1)[0]||"";return C.instances[e]},onPressEscape(){const e=C.getTopOverlay();e&&e.closeOnPressEscape&&e.hide()}};typeof window<"u"&&window.addEventListener("keydown",e=>{k("esc",e)&&C.onPressEscape()});const xe="IModal",ja=c({name:xe,directives:{ClickOutside:K},inheritAttrs:!1,props:{closeOnPressEscape:{type:Boolean,default:!0},closeAriaLabel:{type:String,default:"Close"},color:{type:String,default:u(xe,"color")},disabled:{type:Boolean,default:!1},hideOnClickOutside:{type:Boolean,default:!0},name:{type:String,default:()=>S("modal")},showClose:{type:Boolean,default:!0},size:{type:String,default:u(xe,"size"),validator:v},modelValue:{type:Boolean,default:!1},transition:{type:String,default:"zoom-in-center-transition"}},emits:["update:modelValue"],data(){return{visible:this.modelValue}},computed:{classes(){return{"-disabled":this.disabled,...g(this),[`-${this.size}`]:!!this.size}}},watch:{modelValue(e){e?this.show():this.hide()}},mounted(){C.register(this)},unmounted(){C.unregister(this)},methods:{show(){this.disabled||(this.visible=!0,this.$emit("update:modelValue",!0),C.open(this.name),typeof window<"u"&&_e(window.document.body,"-modal"))},hide(){this.disabled||(this.visible=!1,this.$emit("update:modelValue",!1),C.close(this.name),typeof window<"u"&&pt(window.document.body,"-modal"))},onClickOutside(){this.hideOnClickOutside&&this.hide()}}}),Ga=["aria-hidden","id","name","aria-labelledby"],Za={class:"modal"},Ka=["id"],qa=["aria-label"],Wa={key:1,class:"modal-body"},Ua={key:2,class:"modal-footer"},Ha=p(ja,[["render",function(e,t,i,a,s,r){const n=G("click-outside");return l(),V(L,{name:"fade-in-transition"},{default:y(()=>[$(m("div",h(e.$attrs,{class:["modal-wrapper",e.classes],role:"dialog","aria-modal":"true","aria-hidden":e.visible?"false":"true",id:e.name,name:e.name,"aria-labelledby":`${e.name}-header`}),[I(L,{name:e.transition},{default:y(()=>[$((l(),o("div",Za,[e.$slots.header?(l(),o("div",{key:0,class:"modal-header",id:`${e.name}-header`},[d(e.$slots,"header"),e.showClose?(l(),o("button",{key:0,class:"close","aria-hidden":"true","aria-label":e.closeAriaLabel,onClick:t[0]||(t[0]=(...b)=>e.hide&&e.hide(...b))},[d(e.$slots,"close",{},()=>[t[1]||(t[1]=m("i",{class:"icon"},null,-1))])],8,qa)):f("",!0)],8,Ka)):f("",!0),e.$slots.default?(l(),o("div",Wa,[d(e.$slots,"default")])):f("",!0),e.$slots.footer?(l(),o("div",Ua,[d(e.$slots,"footer")])):f("",!0)])),[[n,e.onClickOutside],[x,e.visible]])]),_:3},8,["name"])],16,Ga),[[x,e.visible]])]),_:3})}]]),Ce="INav",Qa=p(c({name:Ce,provide(){return{nav:this}},inject:{navbar:{default:()=>({onItemClick:()=>{}})},sidebar:{default:()=>({onItemClick:()=>{}})}},inheritAttrs:!1,props:{color:{type:String,default:u(Ce,"color")},size:{type:String,default:u(Ce,"size"),validator:v},vertical:{type:Boolean,default:!1}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-vertical":this.vertical}}},methods:{onItemClick(){[this.navbar,this.sidebar].forEach(e=>{e.onItemClick()})}}}),[["render",function(e,t,i,a,s,r){return l(),o("nav",h(e.$attrs,{class:["nav",e.classes],role:"menubar"}),[d(e.$slots,"default")],16)}]]),Ya=p(c({name:"INavItem",mixins:[Z],inject:{nav:{default:()=>({onItemClick:()=>{}})}},inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},stopPropagation:{type:Boolean,default:!1},tag:{type:String,default:"div"},tabindex:{type:[Number,String],default:0}},computed:{ariaDisabled(){return this.role==="link"?null:this.disabled?"true":"false"},classes(){return{"-active":this.active,"-disabled":this.disabled}},role(){return this.$attrs.to||this.$attrs.href?"link":"menuitem"},tabIndex(){return this.disabled?-1:this.tabindex}},methods:{onClick(e){this.stopPropagation||this.nav.onItemClick(this,e)}}}),[["render",function(e,t,i,a,s,r){return l(),V(Y(e.isTag),h(e.$attrs,{class:["nav-item",e.classes],role:e.role,tag:e.tag,tabindex:e.tabIndex,disabled:e.disabled,"aria-disabled":e.ariaDisabled,onClick:e.onClick}),{default:y(()=>[d(e.$slots,"default")]),_:3},16,["role","tag","tabindex","class","disabled","aria-disabled","onClick"])}]]),Se="INavbar",Ja=p(c({name:Se,components:{IContainer:Ke,IRow:qe,IColumn:Ze,IHamburgerMenu:kt},directives:{ClickOutside:K},mixins:[ft],provide(){return{navbar:this}},inheritAttrs:!1,props:{collapseOnItemClick:{type:Boolean,default:!0},collapseOnClickOutside:{type:Boolean,default:!0},color:{type:String,default:u(Se,"color")},fluid:{type:Boolean,default:!1},size:{type:String,default:u(Se,"size"),validator:v},menuAnimation:{type:String,default:"close"}},emits:["update:modelValue"],computed:{classes(){return{...this.collapsibleClasses,...g(this),[`-${this.size}`]:!!this.size}}},methods:{onItemClick(){this.collapseOnItemClick&&this.open&&this.setOpen(!1)},onClickOutside(){this.collapseOnClickOutside&&this.open&&this.setOpen(!1)}}}),[["render",function(e,t,i,a,s,r){const n=A("i-hamburger-menu"),b=A("i-column"),B=A("i-row"),F=A("i-container"),w=G("click-outside");return $((l(),o("nav",h(e.$attrs,{class:["navbar",e.classes]}),[I(F,{fluid:e.fluid},{default:y(()=>[I(B,null,{default:y(()=>[I(b,null,{default:y(()=>[I(n,{class:"collapse-toggle",animation:e.menuAnimation,color:e.color,modelValue:e.open,"onUpdate:modelValue":e.toggleOpen},null,8,["animation","color","modelValue","onUpdate:modelValue"]),d(e.$slots,"default")]),_:3})]),_:3})]),_:3},8,["fluid"])],16)),[[w,e.onClickOutside]])}]]),Xa=p(c({name:"INavbarBrand",mixins:[Z],inheritAttrs:!1,props:{tag:{type:String,default:"div"}}}),[["render",function(e,t,i,a,s,r){return l(),V(Y(e.isTag),h(e.$attrs,{class:"navbar-brand",tag:e.tag,translate:"no"}),{default:y(()=>[d(e.$slots,"default")]),_:3},16,["tag"])}]]),es=c({name:"INavbarCollapsible",components:{IExpandTransition:gt},inject:{navbar:{default:()=>({})}},inheritAttrs:!1,computed:{visible(){const e=typeof window>"u";return this.navbar.open||!this.navbar.collapsible||e}}}),ts=["aria-hidden","aria-expanded"],is=p(es,[["render",function(e,t,i,a,s,r){const n=A("i-expand-transition");return l(),V(n,null,{default:y(()=>[$(m("div",h(e.$attrs,{class:"navbar-collapsible","aria-hidden":e.visible?"false":"true","aria-expanded":e.visible?"true":"false"}),[d(e.$slots,"default")],16,ts),[[x,e.visible]])]),_:3})}]]),Be="IPagination",as=c({name:Be,inheritAttrs:!1,props:{ariaLabel:{type:String,default:"Pagination"},color:{type:String,default:u(Be,"color")},itemsPerPage:{type:Number,default:20},itemsTotal:{type:Number,default:0},limit:{type:[Number,Object],default:()=>({xs:3,sm:5})},quickLink:{type:Boolean,default:!1},modelValue:{type:Number,default:1},size:{type:String,default:u(Be,"size"),validator:v}},emits:["update:modelValue"],data:()=>({pageLimit:5}),computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}},pageCount(){return Math.ceil(this.itemsTotal/this.itemsPerPage)},showQuickPrevious(){return this.pageCount>this.pageLimit&&this.modelValue>this.pageLimit-(this.pageLimit-1)/2},showQuickNext(){return this.pageCount>this.pageLimit&&this.modelValuee.apply(s,a),t)}}(this.onWindowResize,250),typeof window<"u"&&(window.addEventListener("resize",this.debouncedOnWindowResize),this.onWindowResize())},unmounted(){typeof window<"u"&&window.removeEventListener("resize",this.debouncedOnWindowResize)},methods:{next(){this.modelValue!==this.pageCount&&this.onClick(this.modelValue+1)},quickNext(){if(!this.quickLink)return;const e=this.modelValue+(this.pageLimit-2);this.onClick(e>this.pageCount?this.pageCount:e)},previous(){this.modelValue!==1&&this.onClick(this.modelValue-1)},quickPrevious(){if(!this.quickLink)return;const e=this.modelValue-(this.pageLimit-2);this.onClick(e<1?1:e)},onClick(e){this.$emit("update:modelValue",e)},onWindowResize(){if(typeof this.limit=="number")return this.pageLimit=this.limit,this.pageLimit;for(const e of je.slice().reverse())if(this.limit.hasOwnProperty(e)&&typeof window<"u"&&window.innerWidth>=J[e][0])return this.pageLimit=this.limit[e],this.pageLimit}}}),ss=["aria-label"],ns={class:"pagination-items"},ls={"aria-hidden":"true"},rs=["aria-current","onClick"],os={"aria-hidden":"true"},ds=p(as,[["render",function(e,t,i,a,s,r){return l(),o("nav",h(e.$attrs,{class:["pagination",e.classes],role:"navigation","aria-label":e.ariaLabel}),[m("ul",ns,[e.pageCount>0?(l(),o("li",{key:0,class:z(["pagination-item -previous",{"-disabled":e.modelValue===1}]),onClick:t[0]||(t[0]=(...n)=>e.previous&&e.previous(...n))},[m("span",ls,[d(e.$slots,"previous",{},()=>[t[6]||(t[6]=P("<"))])])],2)):f("",!0),e.pageCount>0?(l(),o("li",{key:1,class:z(["pagination-item -first",{"-active":e.modelValue===1}]),onClick:t[1]||(t[1]=n=>e.onClick(1))}," 1 ",2)):f("",!0),e.showQuickPrevious?(l(),o("li",{key:2,class:z(["pagination-item -quick-previous",{"-disabled":!e.quickLink}]),onClick:t[2]||(t[2]=(...n)=>e.quickPrevious&&e.quickPrevious(...n))}," … ",2)):f("",!0),(l(!0),o(j,null,X(e.pages,n=>(l(),o("li",{class:z(["pagination-item",{"-active":e.modelValue===n}]),"aria-current":e.modelValue===n&&"page",onClick:b=>e.onClick(n)},_(n),11,rs))),256)),e.showQuickNext?(l(),o("li",{key:3,class:z(["pagination-item -quick-next",{"-disabled":!e.quickLink}]),onClick:t[3]||(t[3]=(...n)=>e.quickNext&&e.quickNext(...n))}," … ",2)):f("",!0),e.pageCount>1?(l(),o("li",{key:4,class:z(["pagination-item -last",{"-active":e.modelValue===e.pageCount}]),onClick:t[4]||(t[4]=n=>e.onClick(e.pageCount))},_(e.pageCount),3)):f("",!0),e.pageCount>0?(l(),o("li",{key:5,class:z(["pagination-item -next",{"-disabled":e.modelValue===e.pageCount}]),onClick:t[5]||(t[5]=(...n)=>e.next&&e.next(...n))},[m("span",os,[d(e.$slots,"next",{},()=>[t[7]||(t[7]=P(">"))])])],2)):f("",!0)])],16,ss)}]]),ze="IPopover",us=c({name:ze,directives:{ClickOutside:K},mixins:[ee,Ge],inheritAttrs:!1,props:{color:{type:String,default:u(ze,"color")},disabled:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!1},name:{type:String,default:()=>S("popover")},arrow:{type:Boolean,default:!0},placement:{type:String,default:"top"},trigger:{type:[String,Array],default:()=>["click"]},offset:{type:Number,default:6},interactable:{type:Boolean,default:!1},popperOptions:{type:Object,default:()=>({})},size:{type:String,default:u(ze,"size"),validator:v}},emits:["click-outside","update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}},methods:{onEscape(){this.visible=!1,this.$emit("update:modelValue",!1)},handleClickOutside(e){this.visible=!1,this.$emit("update:modelValue",!1),this.onClickOutside(e)}}}),cs=["id"],ps=["aria-describedby","aria-disabled","aria-expanded"],hs=["id","aria-hidden"],ms={key:0,"data-popper-arrow":""},fs={key:1,class:"popover-header"},bs={key:2,class:"popover-body"},ys={key:3,class:"popover-footer"},vs=p(us,[["render",function(e,t,i,a,s,r){const n=G("click-outside");return $((l(),o("div",h(e.$attrs,{class:["popover-wrapper",e.classes],ref:"wrapper",id:e.name,onKeyup:t[0]||(t[0]=E((...b)=>e.onEscape&&e.onEscape(...b),["esc"]))}),[m("div",{class:"popover-trigger",ref:"trigger","aria-describedby":`${e.name}-popup`,"aria-disabled":e.disabled?"true":"false","aria-expanded":e.visible?"true":"false"},[d(e.$slots,"default")],8,ps),I(L,{name:"zoom-in-top-transition",onAfterLeave:e.destroyPopper},{default:y(()=>[$(m("div",{class:"popover",ref:"popup",role:"tooltip","aria-live":"polite",id:`${e.name}-popup`,"aria-hidden":e.visible?"false":"true"},[e.arrow?(l(),o("span",ms)):f("",!0),e.$slots.header?(l(),o("div",fs,[d(e.$slots,"header")])):f("",!0),e.$slots.body?(l(),o("div",bs,[d(e.$slots,"body")])):f("",!0),e.$slots.footer?(l(),o("div",ys,[d(e.$slots,"footer")])):f("",!0)],8,hs),[[x,e.visible]])]),_:3},8,["onAfterLeave"])],16,cs)),[[n,e.onClickOutside]])}]]),Ae="IProgress",gs=p(c({name:Ae,provide(){return{progress:this}},inheritAttrs:!1,props:{color:{type:String,default:u(Ae,"color")},min:{type:[String,Number],default:0},max:{type:[String,Number],default:100},size:{type:String,default:u(Ae,"size"),validator:v}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}}}),[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["progress",e.classes]}),[d(e.$slots,"default")],16)}]]),at="IProgressBar",ks=c({name:at,inject:{progress:{default:()=>({min:0,max:100})}},inheritAttrs:!1,props:{color:{type:String,default:u(at,"color","primary")},value:{type:[String,Number],default:0}},computed:{computedValue(){const e=typeof this.min=="string"?parseFloat(this.min):this.min;return 100*((typeof this.value=="string"?parseFloat(this.value.replace("%","")):this.value)-e)/((typeof this.max=="string"?parseFloat(this.max):this.max)-e)},min(){return this.progress.min},max(){return this.progress.max},style(){return{width:`${this.computedValue}%`}},classes(){return{...g(this)}}}}),$s=["aria-valuemin","aria-valuemax","aria-valuenow"],ws=p(ks,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["progress-bar",e.classes],style:e.style,role:"progressbar","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":e.computedValue}),[d(e.$slots,"default")],16,$s)}]]),Ve="IRadio",Is=c({name:Ve,mixins:[R],inheritAttrs:!1,props:{color:{type:String,default:u(Ve,"color")},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},value:{default:""},modelValue:{default:!1},name:{type:[String,Number],default:()=>S("radio")},native:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},size:{type:String,default:u(Ve,"size"),validator:v},tabindex:{type:[Number,String],default:0}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-native":this.native}},checked(){return this.formGroup.checked===this.value},tabIndex(){return this.isDisabled?-1:this.tabindex}},methods:{clickInputRef(){this.isReadonly||this.$refs.input.click()},onChange(e){var t,i,a,s;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e.target.checked),(s=(a=this.formGroup).onChange)==null||s.call(a,this.value),this.$emit("update:modelValue",e.target.checked)},onBlur(e){var t,i;(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)}}}),xs=["checked","name","disabled","readonly",".indeterminate"],Cs=["aria-checked","aria-disabled","aria-readonly","tabindex"],Ss=p(Is,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["radio",e.classes],role:"radio"}),[m("input",{checked:e.checked,ref:"input",type:"radio",tabindex:"-1",name:e.name,disabled:e.isDisabled,readonly:e.isReadonly,".indeterminate":e.indeterminate,onChange:t[0]||(t[0]=(...n)=>e.onChange&&e.onChange(...n))},null,40,xs),m("label",{class:"radio-label","aria-checked":e.checked,"aria-disabled":e.isDisabled,"aria-readonly":e.isReadonly,tabindex:e.tabIndex,onBlur:t[1]||(t[1]=(...n)=>e.onBlur&&e.onBlur(...n)),onClick:t[2]||(t[2]=(...n)=>e.clickInputRef&&e.clickInputRef(...n)),onKeydown:t[3]||(t[3]=E(Q((...n)=>e.clickInputRef&&e.clickInputRef(...n),["stop","prevent"]),["space"]))},[d(e.$slots,"default")],40,Cs)],16)}]]),Oe="IRadioGroup",Bs=c({name:Oe,mixins:[R],provide(){return{formGroup:this}},inheritAttrs:!1,props:{color:{type:String,default:u(Oe,"color")},disabled:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},modelValue:{default:""},name:{type:[String,Number],default:()=>S("radio-group")},readonly:{type:Boolean,default:!1},size:{type:String,default:u(Oe,"size"),validator:v}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly,"-inline":this.inline}},checked(){return this.schema?this.schema.value:this.modelValue}},methods:{onChange(e){var t,i;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e),this.$emit("update:modelValue",e)}}}),zs=["name"],As=p(Bs,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["form-group radio-group",e.classes],name:e.name,role:"radiogroup"}),[d(e.$slots,"default",{},void 0,!0)],16,zs)}],["__scopeId","data-v-fa4fe77a"]]),Vs=c({name:"ISelectOption",inject:{select:{default:()=>({})}},inheritAttrs:!1,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},label:{type:String,default:""},tabindex:{type:[Number,String],default:0},value:{type:[Object,String,Number],default:()=>({})}},computed:{ariaDisabled(){return this.disabled?"true":"false"},ariaSelected(){return this.active?"true":"false"},isActive(){return this.active||this.value===this.select.modelValue},classes(){return{"-active":this.isActive,"-disabled":this.disabled}},tabIndex(){return this.disabled?-1:this.tabindex}},methods:{onClick(){this.disabled||this.select.onInput(this.value,this.label)}}}),Os=["tabindex","aria-disabled","aria-selected"],It=p(Vs,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["select-option",e.classes],role:"option",tabindex:e.tabIndex,"aria-disabled":e.ariaDisabled,"aria-selected":e.ariaSelected,onClick:t[0]||(t[0]=(...n)=>e.onClick&&e.onClick(...n))}),[d(e.$slots,"default",{},()=>[P(_(e.label),1)])],16,Os)}]]),Le="ISelect",Ls=c({name:Le,directives:{ClickOutside:K},components:{IInput:te,IIcon:$t,ISelectOption:It,IMark:wt},mixins:[R,ee],provide(){return{select:this}},props:{animationDuration:{type:Number,default:300},autocomplete:{type:Boolean,default:!1},arrow:{type:Boolean,default:!0},color:{type:String,default:u(Le,"color")},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},idField:{type:String,default:"id"},keydownTrigger:{type:Array,default:()=>["up","down","enter","space","tab","esc"]},keydownItem:{type:Array,default:()=>["up","down","enter","space","tab","esc"]},label:{type:[String,Function],default:"label"},loading:{type:Boolean,default:!1},modelValue:{type:[Object,String,Number],default:null},minLength:{type:Number,default:0},name:{type:[String,Number],default:()=>S("select")},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},offset:{type:Number,default:6},placement:{type:String,default:"bottom"},popperOptions:{type:Object,default:()=>({modifiers:[...bt({offset:8}),{name:"sameWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:({state:e})=>{e.styles.popper.width=`${e.rects.reference.width}px`},effect({state:e}){e.elements.popper.style.width=`${e.elements.reference.offsetWidth}px`}}]})},readonly:{type:Boolean,default:!1},scrollTolerance:{type:Number,default:160},selectFirstOptionOnEnter:{type:Boolean,default:!0},size:{type:String,default:u(Le,"size"),validator:v},tabindex:{type:[Number,String],default:0},type:{type:String,default:"text"},total:{type:Number,default:void 0}},emits:["update:modelValue","search","pagination"],data(){return{animating:!1,visible:!1,inputValue:this.computeLabel(this.modelValue)||""}},computed:{wrapperClasses(){return{...g(this),[`-${this.size}`]:!!this.size}},popupClasses(){return{"-disabled":this.isDisabled,"-readonly":this.isReadonly}},tabIndex(){return this.isDisabled?-1:this.tabindex},isClearable(){return this.value&&this.clearable&&!this.isDisabled&&!this.isReadonly},value(){return this.schema?this.schema.value:this.modelValue},inputPlaceholder(){return this.value?this.computeLabel(this.value):this.placeholder}},watch:{value(e){this.inputValue=this.computeLabel(e)},inputValue(e){const t=this.inputMatchesLength(e),i=this.inputMatchesLabel(e);!t||i||this.animating||this.show(),this.$emit("search",this.inputValue)},options(){this.visible&&this.createPopper()}},methods:{onInput(e,t){var i,a;e.disabled||(this.hide(),t&&(this.inputValue=t),(a=(i=this.parent).onInput)==null||a.call(i,this.name,e),this.$emit("update:modelValue",e))},onClear(){this.animating=!0,this.$emit("update:modelValue",null),this.$nextTick(()=>{this.animating=!1})},onFocus(e){!this.value&&this.options.length===0||(this.autocomplete&&(this.inputValue=""),(!e.relatedTarget||!this.$refs.wrapper.contains(e.relatedTarget))&&this.inputShouldShowSelect(this.inputValue)&&this.show())},onBlur(e){var t,i;(!e.relatedTarget||!this.$refs.wrapper.contains(e.relatedTarget))&&(this.hide(),this.inputValue=this.computeLabel(this.value)),(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)},onClick(){this.autocomplete&&(this.inputValue=""),this.inputShouldShowSelect(this.inputValue)&&this.show()},onClickOutside(){this.hide()},onClickCaret(e){this.visible?this.onBlur(e):(this.focus(),this.onFocus(e)),e.preventDefault(),e.stopPropagation()},onScroll(){if(isNaN(this.total))return;const e=this.$refs.body.scrollTop+parseInt(getComputedStyle(this.$refs.body).height,10)>parseInt(getComputedStyle(this.$refs.options).height,10)-this.scrollTolerance,t=this.options.length>=this.total;e&&!t&&this.options.length>0&&!this.loading&&this.$emit("pagination")},onWindowResize(){this.onScroll(),this.visible&&this.$nextTick().then(()=>this.createPopper())},onTriggerKeyDown(e){if(this.keydownTrigger.length===0)return;const t=this.getFocusableItems(),i=t.findIndex(s=>s.active),a=t[i>-1?i:0];switch(!0){case(k("up",e)&&this.keydownTrigger.includes("up")):case(k("down",e)&&this.keydownTrigger.includes("down")):this.show(),setTimeout(()=>{a.focus()},this.visible?0:this.animationDuration),e.preventDefault(),e.stopPropagation();break;case(k("enter",e)&&this.keydownTrigger.includes("enter")):if(!this.selectFirstOptionOnEnter||this.value&&this.inputMatchesLabel(this.inputValue))this.onClick();else{const s=this.options.find(r=>!r.disabled);s&&(this.onInput(s),this.focus())}this.visible||setTimeout(()=>{a.focus()},this.animationDuration),e.preventDefault();break;case(k("tab",e)&&this.keydownTrigger.includes("tab")):case(k("esc",e)&&this.keydownTrigger.includes("esc")):this.hide()}},onItemKeyDown(e){if(this.keydownItem.length!==0)switch(!0){case(k("up",e)&&this.keydownItem.includes("up")):case(k("down",e)&&this.keydownItem.includes("down")):const t=this.getFocusableItems(),i=t.findIndex(r=>r===e.target),a=t.length-1;let s;s=k("up",e)?i>0?i-1:0:i{this.animating=!1},this.animationDuration))},focus(){this.$refs.trigger.focus()},getFocusableItems(){const e=[];for(const t of this.$refs.options.children)Fe(t)&&e.push(t);return e},getElementHeight(e){const t=getComputedStyle(e);return t.height?Math.ceil(parseFloat(t.height)):NaN},inputMatchesLabel(e){return this.value&&e===this.computeLabel(this.value)},inputMatchesLength(e){return this.minLength===0||e&&e.length>=this.minLength},inputShouldShowSelect(e){return!this.autocomplete||this.inputMatchesLength(e)&&!this.inputMatchesLabel(e)},computeLabel(e){return typeof e!="object"?this.inputValue:dt(this.label)?this.label(e):M(e,this.label)}}}),Ds=["id","name","aria-owns","aria-expanded"],Ns=["id","aria-hidden"],Ts={key:0,"data-popper-arrow":""},Ps={key:1,class:"select-header"},Rs={key:0,class:"select-no-results"},Es={class:"select-options",ref:"options"},Ms={key:2,class:"select-footer"},_s=p(Ls,[["render",function(e,t,i,a,s,r){const n=A("i-input"),b=A("i-mark"),B=A("i-select-option"),F=G("click-outside");return $((l(),o("div",h(e.$attrs,{class:["select-wrapper",e.wrapperClasses],id:e.name,name:e.name,ref:"wrapper",role:"combobox","aria-haspopup":"listbox","aria-owns":`${e.name}-options`,"aria-expanded":e.visible?"true":"false",onKeyup:t[3]||(t[3]=E((...w)=>e.onEscape&&e.onEscape(...w),["esc"]))}),[I(n,{modelValue:e.inputValue,"onUpdate:modelValue":t[1]||(t[1]=w=>e.inputValue=w),ref:"trigger",autocomplete:"off","aria-autocomplete":"both","aria-controls":`${e.name}-options`,disabled:e.isDisabled,readonly:e.isReadonly,tabindex:e.tabIndex,plaintext:!e.autocomplete,placeholder:e.inputPlaceholder,clearable:e.isClearable,color:e.color,size:e.size,name:`${e.name}-input`,onClick:e.onClick,onFocus:e.onFocus,onBlur:e.onBlur,onClear:e.onClear,onKeydown:e.onTriggerKeyDown},Nt({suffix:y(()=>[d(e.$slots,"suffix"),m("button",{class:"select-caret","aria-hidden":"true",role:"button",onClick:t[0]||(t[0]=(...w)=>e.onClickCaret&&e.onClickCaret(...w))})]),_:2},[e.$slots.prepend?{name:"prepend",fn:y(()=>[d(e.$slots,"prepend")]),key:"0"}:void 0,e.$slots.prefix?{name:"prefix",fn:y(()=>[d(e.$slots,"prefix")]),key:"1"}:void 0,e.$slots.append?{name:"append",fn:y(()=>[d(e.$slots,"append")]),key:"2"}:void 0]),1032,["modelValue","aria-controls","disabled","readonly","tabindex","plaintext","placeholder","clearable","color","size","name","onClick","onFocus","onBlur","onClear","onKeydown"]),I(L,{name:"zoom-in-top-transition",onAfterLeave:e.destroyPopper},{default:y(()=>[$(m("div",{class:z(["select",e.popupClasses]),id:`${e.name}-options`,role:"listbox",ref:"popup","aria-hidden":e.visible?"false":"true"},[e.arrow?(l(),o("span",Ts)):f("",!0),e.$slots.header?(l(),o("div",Ps,[d(e.$slots,"header")])):f("",!0),m("div",{class:"select-body",ref:"body",onScroll:t[2]||(t[2]=(...w)=>e.onScroll&&e.onScroll(...w))},[e.$slots.default||e.options.length!==0?f("",!0):(l(),o("div",Rs,[d(e.$slots,"no-results",{},()=>[t[4]||(t[4]=P(" There are no results for your query. "))])])),m("div",Es,[d(e.$slots,"default"),(l(!0),o(j,null,X(e.options,w=>(l(),V(B,{key:w[e.idField],active:e.value&&e.value[e.idField]===w[e.idField],disabled:w.disabled,value:w,onKeydown:e.onItemKeyDown},{default:y(()=>[d(e.$slots,"option",{option:w},()=>[e.autocomplete&&e.inputValue!==e.computeLabel(w)?(l(),V(b,{key:0,text:e.computeLabel(w),query:e.inputValue},null,8,["text","query"])):(l(),o(j,{key:1},[P(_(e.computeLabel(w)),1)],64))])]),_:2},1032,["active","disabled","value","onKeydown"]))),128))],512)],544),e.$slots.footer?(l(),o("div",Ms,[d(e.$slots,"footer")])):f("",!0)],10,Ns),[[x,e.visible]])]),_:3},8,["onAfterLeave"])],16,Ds)),[[F,e.onClickOutside]])}]]),De="ISidebar",Fs=c({name:De,mixins:[ft],provide(){return{sidebar:this}},inheritAttrs:!1,props:{ariaLabel:{type:String,default:"Sidebar"},collapseOnItemClick:{type:Boolean,default:!0},collapseOnClickOutside:{type:Boolean,default:!0},collapsePosition:{type:String,default:"absolute"},color:{type:String,default:u(De,"color")},placement:{type:String,default:"left"},size:{type:String,default:u(De,"size"),validator:v}},emits:["update:modelValue"],computed:{classes(){return{...this.collapsibleClasses,...g(this),[`-${this.size}`]:!!this.size,[`-collapse-${this.collapsePosition}`]:!0,[`-placement-${this.placement}`]:!0}},sidebarWrapperTransition(){return this.collapsePosition!=="relative"?"sidebar-wrapper-none-transition":"sidebar-wrapper-transition"},sidebarTransition(){return this.collapsePosition!=="relative"?"sidebar-transition":"sidebar-none-transition"}},methods:{onItemClick(){this.collapseOnItemClick&&this.open&&this.setOpen(!1)},onOverlayClick(){this.collapseOnClickOutside&&this.open&&this.setOpen(!1)}}}),js=["aria-label"],Gs={class:"sidebar"},Zs={class:"sidebar-content"},Ks=p(Fs,[["render",function(e,t,i,a,s,r){return l(),V(L,{name:e.sidebarWrapperTransition},{default:y(()=>[$(m("aside",h(e.$attrs,{role:"complementary",class:["sidebar-wrapper",e.classes],"aria-label":e.ariaLabel,ref:"wrapper"}),[I(L,{name:e.sidebarTransition},{default:y(()=>[$(m("div",Gs,[m("div",Zs,[d(e.$slots,"default")])],512),[[x,e.collapsePosition==="relative"||e.open||!e.collapsible]])]),_:3},8,["name"]),I(L,{name:"sidebar-overlay-transition"},{default:y(()=>[e.collapsePosition!=="relative"?$((l(),o("div",{key:0,class:"sidebar-overlay",onClick:t[0]||(t[0]=(...n)=>e.onOverlayClick&&e.onOverlayClick(...n))},null,512)),[[x,e.open]]):f("",!0)]),_:1})],16,js),[[x,e.open||!e.collapsible]])]),_:3},8,["name"])}]]),st="ITable",qs=c({name:st,inheritAttrs:!1,props:{border:{type:Boolean,default:!1},condensed:{type:Boolean,default:!1},striped:{type:Boolean,default:!1},hover:{type:Boolean,default:!1},responsive:{type:[Boolean,String],default:!0},nowrap:{type:Boolean,default:!1},color:{type:String,default:u(st,"color")}},computed:{classes(){return{...g(this),"-border":this.border,"-condensed":this.condensed,"-striped":this.striped,"-hover":this.hover,"-nowrap":this.nowrap,["-responsive"+(typeof this.responsive=="boolean"?"":`-${this.responsive}`)]:!!this.responsive}}}}),Ws={class:"table"},Us=p(qs,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["table-wrapper",e.classes]}),[m("table",Ws,[d(e.$slots,"default")])],16)}]]),Ne="ITabs",Hs=c({name:Ne,provide(){return{tabs:this}},inheritAttrs:!1,props:{color:{type:String,default:u(Ne,"color")},modelValue:{type:String,default:""},size:{type:String,default:u(Ne,"size"),validator:v},stretch:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{active:this.modelValue,tabs:[]}},computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-stretch":this.stretch}}},watch:{modelValue(e){this.active=e}},methods:{setActive(e){this.active=e,this.$emit("update:modelValue",this.active)}}}),Qs={class:"tabs-header"},Ys=p(Hs,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["tabs",e.classes],role:"tablist","aria-multiselectable":"true"}),[m("div",Qs,[d(e.$slots,"header")]),d(e.$slots,"default")],16)}]]),Js=c({name:"ITab",inject:{tabs:{default:()=>({})}},props:{title:{type:String,default:""},name:{type:String,default:()=>S("tab")}},computed:{active(){return this.tabs.active===this.name},classes(){return{"-active":this.active}}}}),Xs=["name","aria-hidden","aria-labelledby"],en={class:"tab-body"},tn=p(Js,[["render",function(e,t,i,a,s,r){return $((l(),o("div",{class:z(["tab",e.classes]),role:"tabpanel",name:e.name,"aria-hidden":!e.active,"aria-labelledby":`tab-heading-${e.name}`},[m("div",en,[d(e.$slots,"default")])],10,Xs)),[[x,e.active]])}]]),an=c({name:"ITabTitle",inject:{tabs:{default:()=>({})}},props:{for:{type:String,default:()=>S("tab")}},computed:{active(){return this.tabs.active===this.for},classes(){return{"-active":this.active}},name(){return this.for}},methods:{onClick(){this.tabs.setActive(this.for)}}}),sn=["for","active","aria-expanded","aria-controls","aria-describedby"],nn=p(an,[["render",function(e,t,i,a,s,r){return l(),o("div",{class:z(["tab-title",e.classes]),role:"tab",for:e.name,active:e.active,"aria-expanded":e.active,"aria-controls":`tab-content-${e.name}`,"aria-describedby":`tab-content-${e.name}`,tabindex:"0",onClick:t[0]||(t[0]=(...n)=>e.onClick&&e.onClick(...n))},[d(e.$slots,"default")],10,sn)}]]),Te="IToggle",ln=c({name:Te,mixins:[R],inheritAttrs:!1,props:{color:{type:String,default:u(Te,"color")},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},value:{default:!1},modelValue:{default:!1},name:{type:[String,Number],default:()=>S("toggle")},readonly:{type:Boolean,default:!1},size:{type:String,default:u(Te,"size"),validator:v},tabindex:{type:[Number,String],default:0}},emits:["update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size,"-disabled":this.isDisabled,"-readonly":this.isReadonly}},checked(){return this.schema?this.schema.value:this.modelValue},tabIndex(){return this.isDisabled?-1:this.tabindex}},methods:{clickInputRef(){this.isReadonly||this.$refs.input.click()},onChange(e){var t,i;(i=(t=this.parent).onInput)==null||i.call(t,this.name,e.target.checked),this.$emit("update:modelValue",e.target.checked)},onBlur(e){var t,i;(i=(t=this.parent).onBlur)==null||i.call(t,this.name,e)}}}),rn=["checked","disabled","readonly","aria-checked","aria-disabled","aria-readonly","name"],on=["aria-checked","aria-disabled","aria-readonly","tabindex"],dn=p(ln,[["render",function(e,t,i,a,s,r){return l(),o("div",h(e.$attrs,{class:["toggle",e.classes]}),[m("input",{ref:"input",type:"checkbox",checked:e.checked,disabled:e.isDisabled,readonly:e.isReadonly,"aria-checked":e.checked,"aria-disabled":e.isDisabled,"aria-readonly":e.isReadonly,name:e.name,onChange:t[0]||(t[0]=(...n)=>e.onChange&&e.onChange(...n))},null,40,rn),m("label",{class:"toggle-label","aria-checked":e.checked,"aria-disabled":e.isDisabled,"aria-readonly":e.isReadonly,tabindex:e.tabIndex,onClick:t[1]||(t[1]=(...n)=>e.clickInputRef&&e.clickInputRef(...n)),onBlur:t[2]||(t[2]=(...n)=>e.onBlur&&e.onBlur(...n)),onKeydown:t[3]||(t[3]=E(Q((...n)=>e.clickInputRef&&e.clickInputRef(...n),["stop","prevent"]),["space"]))},[d(e.$slots,"default")],40,on)],16)}]]),Pe="ITooltip",un=c({name:Pe,directives:{ClickOutside:K},mixins:[ee,Ge],inheritAttrs:!1,props:{color:{type:String,default:u(Pe,"color")},disabled:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!1},name:{type:String,default:()=>S("tooltip")},arrow:{type:Boolean,default:!0},placement:{type:String,default:"top"},trigger:{type:[String,Array],default:()=>["hover","focus"]},offset:{type:Number,default:6},interactable:{type:Boolean,default:!1},popperOptions:{type:Object,default:()=>({})},size:{type:String,default:u(Pe,"size"),validator:v}},emits:["click-outside","update:modelValue"],computed:{classes(){return{...g(this),[`-${this.size}`]:!!this.size}}},methods:{onEscape(){this.visible=!1,this.$emit("update:modelValue",!1)},handleClickOutside(e){this.visible=!1,this.$emit("update:modelValue",!1),this.onClickOutside(e)}}}),cn=["id"],pn=["aria-describedby","aria-disabled","aria-expanded"],hn=["id","aria-hidden"],mn={key:0,"data-popper-arrow":""},fn=p(un,[["render",function(e,t,i,a,s,r){const n=G("click-outside");return $((l(),o("div",h(e.$attrs,{class:["tooltip-wrapper",e.classes],ref:"wrapper",id:e.name,onKeyup:t[0]||(t[0]=E((...b)=>e.onEscape&&e.onEscape(...b),["esc"]))}),[m("div",{class:"tooltip-trigger",ref:"trigger","aria-describedby":`${e.name}-popup`,"aria-disabled":e.disabled?"true":"false","aria-expanded":e.visible?"true":"false"},[d(e.$slots,"default")],8,pn),I(L,{name:"zoom-in-top-transition",onAfterLeave:e.destroyPopper},{default:y(()=>[$(m("div",{class:"tooltip",ref:"popup",role:"tooltip","aria-live":"polite",id:`${e.name}-popup`,"aria-hidden":e.visible?"false":"true"},[e.arrow?(l(),o("span",mn)):f("",!0),d(e.$slots,"body")],8,hn),[[x,e.visible]])]),_:3},8,["onAfterLeave"])],16,cn)),[[n,e.onClickOutside]])}]]),vn=Object.freeze(Object.defineProperty({__proto__:null,IAlert:Jt,IBadge:Xt,IBreadcrumb:ii,IBreadcrumbItem:ni,IButton:vt,IButtonGroup:ui,ICard:fi,ICheckbox:ki,ICheckboxGroup:Ii,ICollapsible:Ci,ICollapsibleItem:Oi,IColumn:Ze,IContainer:Ke,IDropdown:_i,IDropdownDivider:Fi,IDropdownItem:ji,IForm:Ki,IFormError:Yi,IFormGroup:Ui,IFormLabel:ea,IHamburgerMenu:kt,IHeader:ta,IIcon:$t,IInput:te,ILayout:Ba,ILayoutAside:Va,ILayoutContent:Oa,ILayoutFooter:La,ILayoutHeader:Da,IListGroup:Na,IListGroupItem:Ta,ILoader:yt,IMark:wt,IMedia:Fa,IModal:Ha,INav:Qa,INavItem:Ya,INavbar:Ja,INavbarBrand:Xa,INavbarCollapsible:is,INumberInput:va,IPagination:ds,IPopover:vs,IProgress:gs,IProgressBar:ws,IRadio:Ss,IRadioGroup:As,IRow:qe,ISelect:_s,ISelectOption:It,ISidebar:Ks,ITab:tn,ITabTitle:nn,ITable:Us,ITabs:Ys,ITextarea:Sa,IToggle:dn,ITooltip:fn},Symbol.toStringTag,{value:"Module"}));export{yn as I,p as _,vn as c}; diff --git a/packages/modules/display_themes/cards/web/index.html b/packages/modules/display_themes/cards/web/index.html index ede1277345..8815664696 100644 --- a/packages/modules/display_themes/cards/web/index.html +++ b/packages/modules/display_themes/cards/web/index.html @@ -6,10 +6,10 @@ openWB Display - Cards - - - - + + + + diff --git a/packages/modules/display_themes/colors/source/.eslintrc b/packages/modules/display_themes/colors/source/.eslintrc deleted file mode 100644 index 6c4baf91b8..0000000000 --- a/packages/modules/display_themes/colors/source/.eslintrc +++ /dev/null @@ -1,24 +0,0 @@ -{ - "root": true, - "parser": "vue-eslint-parser", - "parserOptions": { - "parser": "@typescript-eslint/parser", - "sourceType": "module" - }, - "plugins": [ - "@typescript-eslint" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:vue/vue3-recommended", - "prettier" - ], - "rules": { - // override/add rules settings here, such as: - // 'vue/no-unused-vars': 'error' - "no-unused-vars": "off", - "@typescript-eslint/no-unused-vars": "error" - } -} \ No newline at end of file diff --git a/packages/modules/display_themes/colors/source/README.md b/packages/modules/display_themes/colors/source/README.md deleted file mode 100644 index 6f67795a8d..0000000000 --- a/packages/modules/display_themes/colors/source/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# source - -This template should help get you started developing with Vue 3 in Vite. - -## Recommended IDE Setup - -[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). - -## Type Support for `.vue` Imports in TS - -TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types. - -## Customize configuration - -See [Vite Configuration Reference](https://vitejs.dev/config/). - -## Project Setup - -```sh -npm install -``` - -### Compile and Hot-Reload for Development - -```sh -npm run dev -``` - -### Type-Check, Compile and Minify for Production - -```sh -npm run build -``` - -### Lint with [ESLint](https://eslint.org/) - -```sh -npm run lint -``` diff --git a/packages/modules/display_themes/colors/source/eslint.config.js b/packages/modules/display_themes/colors/source/eslint.config.js new file mode 100644 index 0000000000..1201a84996 --- /dev/null +++ b/packages/modules/display_themes/colors/source/eslint.config.js @@ -0,0 +1,47 @@ +import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import parser from "vue-eslint-parser"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; +import { includeIgnoreFile } from "@eslint/compat"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const gitignorePath = path.resolve(__dirname, ".gitignore"); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [...compat.extends( + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:vue/vue3-recommended", + "prettier", +), { + plugins: { + "@typescript-eslint": typescriptEslint, + }, + + languageOptions: { + parser: parser, + ecmaVersion: 5, + sourceType: "module", + + parserOptions: { + parser: "@typescript-eslint/parser", + }, + }, + + rules: { + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": "error", + }, + files: ['**/*.vue', '**/*.js', '**/*.ts'], + }, + includeIgnoreFile(gitignorePath), + {}, +]; \ No newline at end of file diff --git a/packages/modules/display_themes/colors/source/index.html b/packages/modules/display_themes/colors/source/index.html index 94b6cc3ee9..d08e43190d 100644 --- a/packages/modules/display_themes/colors/source/index.html +++ b/packages/modules/display_themes/colors/source/index.html @@ -1,5 +1,5 @@ - + diff --git a/packages/modules/display_themes/colors/source/package-lock.json b/packages/modules/display_themes/colors/source/package-lock.json index fbd236b5d8..c1571b9440 100644 --- a/packages/modules/display_themes/colors/source/package-lock.json +++ b/packages/modules/display_themes/colors/source/package-lock.json @@ -1,69 +1,72 @@ { "name": "colordisplaytheme2", - "version": "0.9.0", + "version": "2.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "colordisplaytheme2", - "version": "0.9.0", + "version": "2.1.0", "license": "MIT", "dependencies": { "bootstrap": "^5.3.3", "d3": "^7.9.0", - "mqtt": "^5.10.0", + "mqtt": "^5.10.3", "rollup-plugin-polyfill-node": "^0.13.0", - "vue": "^3.4.21" + "vue": "^3.5.10" }, "devDependencies": { - "@babel/types": "^7.25.4", + "@babel/types": "^7.26.8", "@esbuild-plugins/node-globals-polyfill": "^0.2.3", "@esbuild-plugins/node-modules-polyfill": "^0.2.2", - "@rushstack/eslint-patch": "^1.10.4", - "@tsconfig/node20": "^20.1.4", + "@eslint/compat": "^1.2.6", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.18.0", + "@rushstack/eslint-patch": "^1.10.5", + "@tsconfig/node22": "^22.0.0", "@types/bootstrap": "^5.2.10", "@types/d3": "^7.4.3", - "@types/node": "^20.16.1", - "@vitejs/plugin-vue": "^5.1.2", - "@vue/eslint-config-prettier": "^8.0.0", - "@vue/eslint-config-typescript": "^12.0.0", - "@vue/tsconfig": "^0.5.1", - "esbuild": "^0.20.2", - "eslint": "^8.57.0", - "eslint-plugin-vue": "^9.27.0", - "npm-run-all2": "^6.2.2", - "prettier": "^3.3.3", - "rollup": "^4.21.0", - "typescript": "~5.4.0", - "vite": "^5.4.2", - "vue-tsc": "^2.0.29" + "@types/node": "^22.13.1", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-typescript": "^14.3.0", + "@vue/tsconfig": "^0.7.0", + "esbuild": "^0.24.2", + "eslint": "^9.20.0", + "eslint-plugin-vue": "^9.32.0", + "npm-run-all2": "^7.0.2", + "prettier": "^3.4.2", + "rollup": "^4.34.6", + "typescript": "^5.7.3", + "vite": "^6.1.0", + "vue-tsc": "^2.2.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.8.tgz", + "integrity": "sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.26.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -73,9 +76,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", + "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -85,14 +88,13 @@ } }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.8.tgz", + "integrity": "sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -123,9 +125,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], @@ -136,13 +138,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], @@ -153,13 +155,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], @@ -170,13 +172,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], @@ -187,13 +189,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], @@ -204,13 +206,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], @@ -221,13 +223,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], @@ -238,13 +240,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], @@ -255,13 +257,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], @@ -272,13 +274,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], @@ -289,13 +291,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], @@ -306,13 +308,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], @@ -323,13 +325,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], @@ -340,13 +342,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], @@ -357,13 +359,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], @@ -374,13 +376,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], @@ -391,13 +393,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], @@ -408,13 +410,30 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], @@ -425,13 +444,30 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], @@ -442,13 +478,13 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], @@ -459,13 +495,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], @@ -476,13 +512,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], @@ -493,13 +529,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], @@ -510,46 +546,95 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/compat": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.6.tgz", + "integrity": "sha512-k7HNCqApoDHM6XzT30zGoETj+D+uUcZUb+IVAJmar3u6bvHf7hhHJcWx09QHj4/a2qrKZMWU0E16tvkiAdv06Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^9.10.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz", + "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -557,84 +642,95 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@eslint/js": { + "version": "9.20.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz", + "integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "Apache-2.0", "engines": { - "node": "*" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.10.0", + "levn": "^0.4.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@types/json-schema": "^7.0.15" }, "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "brace-expansion": "^1.1.7" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": "*" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -651,13 +747,19 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, - "license": "BSD-3-Clause" + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", @@ -755,23 +857,23 @@ "license": "MIT" }, "node_modules/@rollup/plugin-inject/node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz", - "integrity": "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -791,10 +893,22 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "license": "MIT" }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.6.tgz", + "integrity": "sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==", "cpu": [ "arm" ], @@ -805,9 +919,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.6.tgz", + "integrity": "sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==", "cpu": [ "arm64" ], @@ -818,9 +932,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.6.tgz", + "integrity": "sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==", "cpu": [ "arm64" ], @@ -831,9 +945,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.6.tgz", + "integrity": "sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==", "cpu": [ "x64" ], @@ -843,10 +957,36 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.6.tgz", + "integrity": "sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.6.tgz", + "integrity": "sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.6.tgz", + "integrity": "sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==", "cpu": [ "arm" ], @@ -857,9 +997,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.6.tgz", + "integrity": "sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==", "cpu": [ "arm" ], @@ -870,9 +1010,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.6.tgz", + "integrity": "sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==", "cpu": [ "arm64" ], @@ -883,9 +1023,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.6.tgz", + "integrity": "sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==", "cpu": [ "arm64" ], @@ -895,10 +1035,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.6.tgz", + "integrity": "sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.6.tgz", + "integrity": "sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==", "cpu": [ "ppc64" ], @@ -909,9 +1062,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.6.tgz", + "integrity": "sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==", "cpu": [ "riscv64" ], @@ -922,9 +1075,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.6.tgz", + "integrity": "sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==", "cpu": [ "s390x" ], @@ -935,9 +1088,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.6.tgz", + "integrity": "sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==", "cpu": [ "x64" ], @@ -948,9 +1101,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.6.tgz", + "integrity": "sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==", "cpu": [ "x64" ], @@ -961,9 +1114,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.6.tgz", + "integrity": "sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==", "cpu": [ "arm64" ], @@ -974,9 +1127,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.6.tgz", + "integrity": "sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==", "cpu": [ "ia32" ], @@ -987,9 +1140,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.6.tgz", + "integrity": "sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==", "cpu": [ "x64" ], @@ -1000,16 +1153,16 @@ ] }, "node_modules/@rushstack/eslint-patch": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", - "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.5.tgz", + "integrity": "sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==", "dev": true, "license": "MIT" }, - "node_modules/@tsconfig/node20": { - "version": "20.1.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", - "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", + "node_modules/@tsconfig/node22": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.0.tgz", + "integrity": "sha512-twLQ77zevtxobBOD4ToAtVmuYrpeYUh3qh+TEp+08IWhpsrIflVHqQ1F1CiPxQGL7doCdBIOOCF+1Tm833faNg==", "dev": true, "license": "MIT" }, @@ -1204,9 +1357,9 @@ } }, "node_modules/@types/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", "dev": true, "license": "MIT" }, @@ -1232,9 +1385,9 @@ "license": "MIT" }, "node_modules/@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", "dev": true, "license": "MIT", "dependencies": { @@ -1242,23 +1395,23 @@ } }, "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", - "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-selection": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", - "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-shape": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", - "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", "dev": true, "license": "MIT", "dependencies": { @@ -1266,9 +1419,9 @@ } }, "node_modules/@types/d3-time": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", - "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", "dev": true, "license": "MIT" }, @@ -1287,9 +1440,9 @@ "license": "MIT" }, "node_modules/@types/d3-transition": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz", - "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", "dev": true, "license": "MIT", "dependencies": { @@ -1314,9 +1467,9 @@ "license": "MIT" }, "node_modules/@types/geojson": { - "version": "7946.0.14", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", - "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", "dev": true, "license": "MIT" }, @@ -1328,117 +1481,100 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.16.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz", - "integrity": "sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", + "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.20.0" } }, "node_modules/@types/readable-stream": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.15.tgz", - "integrity": "sha512-oAZ3kw+kJFkEqyh7xORZOku1YAKvsFTogRY8kVl4vHpEKiDkfnSA/My8haRE7fvmix5Zyy+1pwzOi7yycGLBJw==", + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.18.tgz", + "integrity": "sha512-21jK/1j+Wg+7jVw1xnSwy/2Q1VgVjWuFssbYGTREPUBeZ+rqVFl2udq0IkxzPC0ZhOzVceUbyIACFZKLqKEBlA==", "license": "MIT", "dependencies": { "@types/node": "*", "safe-buffer": "~5.1.1" } }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/ws": { - "version": "8.5.12", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", - "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", + "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz", + "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/type-utils": "8.23.0", + "@typescript-eslint/utils": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz", + "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/typescript-estree": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", + "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1446,41 +1582,37 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz", + "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/typescript-estree": "8.23.0", + "@typescript-eslint/utils": "8.23.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", + "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", "dev": true, "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1488,136 +1620,164 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", + "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", + "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/typescript-estree": "8.23.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", + "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "8.23.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "ISC" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/@vitejs/plugin-vue": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz", - "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", + "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==", "dev": true, "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^5.0.0", + "vite": "^5.0.0 || ^6.0.0", "vue": "^3.2.25" } }, "node_modules/@volar/language-core": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.5.tgz", - "integrity": "sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.11.tgz", + "integrity": "sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.5" + "@volar/source-map": "2.4.11" } }, "node_modules/@volar/source-map": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.5.tgz", - "integrity": "sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.11.tgz", + "integrity": "sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==", "dev": true, "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.5.tgz", - "integrity": "sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.11.tgz", + "integrity": "sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.5", + "@volar/language-core": "2.4.11", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } }, "node_modules/@vue/compiler-core": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.10.tgz", - "integrity": "sha512-iXWlk+Cg/ag7gLvY0SfVucU8Kh2CjysYZjhhP70w9qI4MvSox4frrP+vDGvtQuzIcgD8+sxM6lZvCtdxGunTAA==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.10", + "@vue/shared": "3.5.13", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" @@ -1630,29 +1790,29 @@ "license": "MIT" }, "node_modules/@vue/compiler-dom": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.10.tgz", - "integrity": "sha512-DyxHC6qPcktwYGKOIy3XqnHRrrXyWR2u91AjP+nLkADko380srsC2DC3s7Y1Rk6YfOlxOlvEQKa9XXmLI+W4ZA==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.10", - "@vue/shared": "3.5.10" + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.10.tgz", - "integrity": "sha512-to8E1BgpakV7224ZCm8gz1ZRSyjNCAWEplwFMWKlzCdP9DkMKhRRwt0WkCjY7jkzi/Vz3xgbpeig5Pnbly4Tow==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.10", - "@vue/compiler-dom": "3.5.10", - "@vue/compiler-ssr": "3.5.10", - "@vue/shared": "3.5.10", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", "estree-walker": "^2.0.2", "magic-string": "^0.30.11", - "postcss": "^8.4.47", + "postcss": "^8.4.48", "source-map-js": "^1.2.0" } }, @@ -1663,22 +1823,22 @@ "license": "MIT" }, "node_modules/@vue/compiler-sfc/node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.10.tgz", - "integrity": "sha512-hxP4Y3KImqdtyUKXDRSxKSRkSm1H9fCvhojEYrnaoWhE4w/y8vwWhnosJoPPe2AXm5sU7CSbYYAgkt2ZPhDz+A==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.10", - "@vue/shared": "3.5.10" + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/compiler-vue2": { @@ -1693,38 +1853,39 @@ } }, "node_modules/@vue/eslint-config-prettier": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz", - "integrity": "sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-10.2.0.tgz", + "integrity": "sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==", "dev": true, "license": "MIT", "dependencies": { - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-prettier": "^5.0.0" + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.2" }, "peerDependencies": { - "eslint": ">= 8.0.0", + "eslint": ">= 8.21.0", "prettier": ">= 3.0.0" } }, "node_modules/@vue/eslint-config-typescript": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz", - "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==", + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.3.0.tgz", + "integrity": "sha512-bOreIxlSC/xsUdhDdKIHb1grwJah+IokNeJ50LqA1StdOHeSPUxSIPNxyKgRx4YdjhyzC6TKtrCf6yYK99x3Uw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "^6.7.0", - "@typescript-eslint/parser": "^6.7.0", - "vue-eslint-parser": "^9.3.1" + "@typescript-eslint/utils": "^8.20.0", + "fast-glob": "^3.3.3", + "typescript-eslint": "^8.20.0", + "vue-eslint-parser": "^9.4.3" }, "engines": { - "node": "^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0", - "eslint-plugin-vue": "^9.0.0", - "typescript": "*" + "eslint": "^9.10.0", + "eslint-plugin-vue": "^9.28.0", + "typescript": ">=4.8.4" }, "peerDependenciesMeta": { "typescript": { @@ -1733,17 +1894,17 @@ } }, "node_modules/@vue/language-core": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz", - "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.0.tgz", + "integrity": "sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "~2.4.1", - "@vue/compiler-dom": "^3.4.0", + "@volar/language-core": "~2.4.11", + "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", + "@vue/shared": "^3.5.0", + "alien-signals": "^0.4.9", "minimatch": "^9.0.3", "muggle-string": "^0.4.1", "path-browserify": "^1.0.1" @@ -1757,62 +1918,100 @@ } } }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@vue/reactivity": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.10.tgz", - "integrity": "sha512-kW08v06F6xPSHhid9DJ9YjOGmwNDOsJJQk0ax21wKaUYzzuJGEuoKNU2Ujux8FLMrP7CFJJKsHhXN9l2WOVi2g==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.10" + "@vue/shared": "3.5.13" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.10.tgz", - "integrity": "sha512-9Q86I5Qq3swSkFfzrZ+iqEy7Vla325M7S7xc1NwKnRm/qoi1Dauz0rT6mTMmscqx4qz0EDJ1wjB+A36k7rl8mA==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.10", - "@vue/shared": "3.5.10" + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.10.tgz", - "integrity": "sha512-t3x7ht5qF8ZRi1H4fZqFzyY2j+GTMTDxRheT+i8M9Ph0oepUxoadmbwlFwMoW7RYCpNQLpP2Yx3feKs+fyBdpA==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.10", - "@vue/runtime-core": "3.5.10", - "@vue/shared": "3.5.10", + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.10.tgz", - "integrity": "sha512-IVE97tt2kGKwHNq9yVO0xdh1IvYfZCShvDSy46JIh5OQxP1/EXSpoDqetVmyIzL7CYOWnnmMkVqd7YK2QSWkdw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.10", - "@vue/shared": "3.5.10" + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" }, "peerDependencies": { - "vue": "3.5.10" + "vue": "3.5.13" } }, "node_modules/@vue/shared": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.10.tgz", - "integrity": "sha512-VkkBhU97Ki+XJ0xvl4C9YJsIZ2uIlQ7HqPpZOS3m9VCvmROPaChZU6DexdMJqvz9tbgG+4EtFVrSuailUq5KGQ==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", "license": "MIT" }, "node_modules/@vue/tsconfig": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.5.1.tgz", - "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.7.0.tgz", + "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peerDependencies": { + "typescript": "5.x", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue": { + "optional": true + } + } }, "node_modules/abort-controller": { "version": "3.0.0", @@ -1827,9 +2026,9 @@ } }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -1866,15 +2065,12 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/alien-signals": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.4.14.tgz", + "integrity": "sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/ansi-styles": { "version": "4.3.0", @@ -1899,16 +2095,6 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1937,9 +2123,9 @@ "license": "MIT" }, "node_modules/bl": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.16.tgz", - "integrity": "sha512-V/kz+z2Mx5/6qDfRCilmrukUXcXuCoXKg3/3hDvzKKoSUx8CJKudfIoT29XZc3UE9xBvxs5qictiHdprwtteEg==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.19.tgz", + "integrity": "sha512-4Ay3A3oDfGg3GGirhl4s62ebtnk0pJZA5mLp672MPKOQXsWvXjEF4dqdXySjJIs7b9OVr/O8aOo0Lm+xdjo2JA==", "license": "MIT", "dependencies": { "@types/readable-stream": "^4.0.0", @@ -1975,13 +2161,14 @@ } }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -2089,13 +2276,6 @@ "integrity": "sha512-4PIMoPniho+LqXmpS5d3NuGYncG6XWlkBSVGiWycL22dd42OYdUGil2CWuzklaJoNxyxUSpO4MKIBU94viWNAw==", "license": "MIT" }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", - "dev": true, - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2133,9 +2313,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -2575,9 +2755,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2607,32 +2787,6 @@ "robust-predicates": "^3.0.2" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -2646,9 +2800,9 @@ } }, "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2656,32 +2810,34 @@ "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escape-string-regexp": { @@ -2698,78 +2854,82 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "version": "9.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.0.tgz", + "integrity": "sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.11.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.20.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", + "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", "dev": true, "license": "MIT", "bin": { - "eslint-config-prettier": "bin/cli.js" + "eslint-config-prettier": "build/bin/cli.js" }, "peerDependencies": { "eslint": ">=7.0.0" } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", + "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", "dev": true, "license": "MIT", "dependencies": { @@ -2798,9 +2958,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.28.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.28.0.tgz", - "integrity": "sha512-ShrihdjIhOTxs+MfWun6oJWuk+g/LAhN+CiuOl/jjkG3l0F2AuK5NMTaWqyvBgkFtpYmyks6P4603mLmhNJW8g==", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz", + "integrity": "sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==", "dev": true, "license": "MIT", "dependencies": { @@ -2820,10 +2980,26 @@ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" } }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2831,7 +3007,7 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2850,43 +3026,45 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "Apache-2.0", "engines": { - "node": "*" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2978,9 +3156,9 @@ "license": "Apache-2.0" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -2988,7 +3166,7 @@ "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -3035,9 +3213,9 @@ } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", "dev": true, "license": "ISC", "dependencies": { @@ -3045,16 +3223,16 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -3088,31 +3266,23 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, @@ -3130,28 +3300,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3165,62 +3313,14 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3302,9 +3402,9 @@ } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3328,18 +3428,6 @@ "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -3388,16 +3476,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -3436,13 +3514,13 @@ "license": "MIT" }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "dev": true, "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/json-schema-traverse": { @@ -3563,19 +3641,16 @@ } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, "node_modules/minimist": { @@ -3588,9 +3663,9 @@ } }, "node_modules/mqtt": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.10.1.tgz", - "integrity": "sha512-hXCOki8sANoQ7w+2OzJzg6qMBxTtrH9RlnVNV8panLZgnl+Gh0J/t4k6r8Az8+C7y3KAcyXtn0mmLixyUom8Sw==", + "version": "5.10.3", + "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.10.3.tgz", + "integrity": "sha512-hA/6YrUS4fywhBGCjH/XXUuLeueJiPqruVVWjK2A24Ma4KcWfZ/x8x07aoesBV+HXDWBC08tbT4IWfSXNW0Jtw==", "license": "MIT", "dependencies": { "@types/readable-stream": "^4.0.5", @@ -3601,7 +3676,7 @@ "help-me": "^5.0.0", "lru-cache": "^10.0.1", "minimist": "^1.2.8", - "mqtt-packet": "^9.0.0", + "mqtt-packet": "^9.0.1", "number-allocator": "^1.0.14", "readable-stream": "^4.4.2", "reinterval": "^1.1.0", @@ -3620,9 +3695,9 @@ } }, "node_modules/mqtt-packet": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-9.0.0.tgz", - "integrity": "sha512-8v+HkX+fwbodsWAZIZTI074XIoxVBOmPeggQuDFCGg1SqNcC+uoRMWu7J6QlJPqIUIJXmjNYYHxBBLr1Y/Df4w==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-9.0.1.tgz", + "integrity": "sha512-koZF1V/X2RZUI6uD9wN5OK1JxxcG1ofAR4H3LjCw1FkeKzruZQ26aAA6v2m1lZyWONZIR5wMMJFrZJDRNzbiQw==", "license": "MIT", "dependencies": { "bl": "^6.0.8", @@ -3644,9 +3719,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -3669,29 +3744,30 @@ "license": "MIT" }, "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-run-all2": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.2.3.tgz", - "integrity": "sha512-5RsxC7jEc/RjxOYBVdEfrJf5FsJ0pHA7jr2/OxrThXknajETCTYjigOCG3iaGjdYIKEQlDuCG0ir0T1HTva8pg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-7.0.2.tgz", + "integrity": "sha512-7tXR+r9hzRNOPNTvXegM+QzCuMjzUIIq66VDunL6j60O4RrExx32XUhlrS7UK4VcdGw5/Wxzb3kfNcFix9JKDA==", "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", - "cross-spawn": "^7.0.3", + "cross-spawn": "^7.0.6", "memorystream": "^0.3.1", "minimatch": "^9.0.0", "pidtree": "^0.6.0", - "read-package-json-fast": "^3.0.2", - "shell-quote": "^1.7.3" + "read-package-json-fast": "^4.0.0", + "shell-quote": "^1.7.3", + "which": "^5.0.0" }, "bin": { "npm-run-all": "bin/npm-run-all/index.js", @@ -3700,8 +3776,8 @@ "run-s": "bin/run-s/index.js" }, "engines": { - "node": "^14.18.0 || ^16.13.0 || >=18.0.0", - "npm": ">= 8" + "node": "^18.17.0 || >=20.5.0", + "npm": ">= 9" } }, "node_modules/npm-run-all2/node_modules/ansi-styles": { @@ -3717,6 +3793,58 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/npm-run-all2/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm-run-all2/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm-run-all2/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-run-all2/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -3740,16 +3868,6 @@ "js-sdsl": "4.3.0" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -3830,16 +3948,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -3850,26 +3958,17 @@ "node": ">=8" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -3892,9 +3991,9 @@ } }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "funding": [ { "type": "opencollective", @@ -3911,8 +4010,8 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { @@ -3944,9 +4043,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "license": "MIT", "bin": { @@ -4019,23 +4118,23 @@ "license": "MIT" }, "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", + "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", "dev": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -4087,23 +4186,6 @@ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "license": "MIT" }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", @@ -4111,9 +4193,9 @@ "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.6.tgz", + "integrity": "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==", "license": "MIT", "dependencies": { "@types/estree": "1.0.6" @@ -4126,22 +4208,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@rollup/rollup-android-arm-eabi": "4.34.6", + "@rollup/rollup-android-arm64": "4.34.6", + "@rollup/rollup-darwin-arm64": "4.34.6", + "@rollup/rollup-darwin-x64": "4.34.6", + "@rollup/rollup-freebsd-arm64": "4.34.6", + "@rollup/rollup-freebsd-x64": "4.34.6", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.6", + "@rollup/rollup-linux-arm-musleabihf": "4.34.6", + "@rollup/rollup-linux-arm64-gnu": "4.34.6", + "@rollup/rollup-linux-arm64-musl": "4.34.6", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.6", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.6", + "@rollup/rollup-linux-riscv64-gnu": "4.34.6", + "@rollup/rollup-linux-s390x-gnu": "4.34.6", + "@rollup/rollup-linux-x64-gnu": "4.34.6", + "@rollup/rollup-linux-x64-musl": "4.34.6", + "@rollup/rollup-win32-arm64-msvc": "4.34.6", + "@rollup/rollup-win32-ia32-msvc": "4.34.6", + "@rollup/rollup-win32-x64-msvc": "4.34.6", "fsevents": "~2.3.2" } }, @@ -4233,9 +4318,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "license": "ISC", "bin": { @@ -4269,25 +4354,18 @@ } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -4343,19 +4421,6 @@ ], "license": "MIT" }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -4383,9 +4448,9 @@ } }, "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "dev": true, "license": "MIT", "dependencies": { @@ -4399,22 +4464,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -4429,22 +4478,22 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/type-check": { @@ -4480,9 +4529,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -4493,10 +4542,33 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.23.0.tgz", + "integrity": "sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.23.0", + "@typescript-eslint/parser": "8.23.0", + "@typescript-eslint/utils": "8.23.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "license": "MIT" }, "node_modules/uri-js": { @@ -4516,21 +4588,21 @@ "license": "MIT" }, "node_modules/vite": { - "version": "5.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", - "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.0.tgz", + "integrity": "sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.24.2", + "postcss": "^8.5.1", + "rollup": "^4.30.1" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -4539,19 +4611,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -4572,457 +4650,33 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, "node_modules/vscode-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", - "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", "dev": true, "license": "MIT" }, "node_modules/vue": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.10.tgz", - "integrity": "sha512-Vy2kmJwHPlouC/tSnIgXVg03SG+9wSqT1xu1Vehc+ChsXsRd7jLkKgMltVEFOzUdBr3uFwBCG+41LJtfAcBRng==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.10", - "@vue/compiler-sfc": "3.5.10", - "@vue/runtime-dom": "3.5.10", - "@vue/server-renderer": "3.5.10", - "@vue/shared": "3.5.10" + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" }, "peerDependencies": { "typescript": "*" @@ -5058,16 +4712,50 @@ "eslint": ">=6.0.0" } }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/vue-tsc": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.6.tgz", - "integrity": "sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.0.tgz", + "integrity": "sha512-gtmM1sUuJ8aSb0KoAFmK9yMxb8TxjewmxqTJ1aKphD5Cbu0rULFY6+UQT51zW7SpUcenfPUuflKyVwyx9Qdnxg==", "dev": true, "license": "MIT", "dependencies": { - "@volar/typescript": "~2.4.1", - "@vue/language-core": "2.1.6", - "semver": "^7.5.4" + "@volar/typescript": "~2.4.11", + "@vue/language-core": "2.2.0" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -5136,13 +4824,6 @@ "tslib": "^2.6.2" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, "node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", diff --git a/packages/modules/display_themes/colors/source/package.json b/packages/modules/display_themes/colors/source/package.json index 9d4f1f172d..2dd83bb0e1 100644 --- a/packages/modules/display_themes/colors/source/package.json +++ b/packages/modules/display_themes/colors/source/package.json @@ -1,6 +1,6 @@ { "name": "colordisplaytheme2", - "version": "0.9.0", + "version": "2.1.0", "license": "MIT", "type": "module", "scripts": { @@ -9,37 +9,40 @@ "preview": "vite preview", "build-only": "vite build", "type-check": "vue-tsc --build --force", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", + "lint": "eslint . --fix ", "format": "prettier --write src/" }, "dependencies": { "bootstrap": "^5.3.3", "d3": "^7.9.0", - "mqtt": "^5.10.1", + "mqtt": "^5.10.3", "rollup-plugin-polyfill-node": "^0.13.0", "vue": "^3.5.10" }, "devDependencies": { - "@babel/types": "^7.25.8", + "@babel/types": "^7.26.8", "@esbuild-plugins/node-globals-polyfill": "^0.2.3", "@esbuild-plugins/node-modules-polyfill": "^0.2.2", - "@rushstack/eslint-patch": "^1.10.4", - "@tsconfig/node20": "^20.1.4", + "@eslint/compat": "^1.2.6", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.18.0", + "@rushstack/eslint-patch": "^1.10.5", + "@tsconfig/node22": "^22.0.0", "@types/bootstrap": "^5.2.10", "@types/d3": "^7.4.3", - "@types/node": "^20.16.13", - "@vitejs/plugin-vue": "^5.1.4", - "@vue/eslint-config-prettier": "^8.0.0", - "@vue/eslint-config-typescript": "^12.0.0", - "@vue/tsconfig": "^0.5.1", - "esbuild": "^0.20.2", - "eslint": "^8.57.1", - "eslint-plugin-vue": "^9.29.1", - "npm-run-all2": "^6.2.4", - "prettier": "^3.3.3", - "rollup": "^4.24.0", - "typescript": "~5.4.5", - "vite": "^5.4.9", - "vue-tsc": "^2.1.6" + "@types/node": "^22.13.1", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-typescript": "^14.3.0", + "@vue/tsconfig": "^0.7.0", + "esbuild": "^0.24.2", + "eslint": "^9.20.0", + "eslint-plugin-vue": "^9.32.0", + "npm-run-all2": "^7.0.2", + "prettier": "^3.4.2", + "rollup": "^4.34.6", + "typescript": "^5.7.3", + "vite": "^6.1.0", + "vue-tsc": "^2.2.0" } } diff --git a/packages/modules/display_themes/colors/source/src/App.vue b/packages/modules/display_themes/colors/source/src/App.vue index 978e3c13ea..598bac0d6d 100644 --- a/packages/modules/display_themes/colors/source/src/App.vue +++ b/packages/modules/display_themes/colors/source/src/App.vue @@ -6,12 +6,30 @@ diff --git a/packages/modules/display_themes/colors/source/src/components/chargePointList/CPConfigTimed.vue b/packages/modules/display_themes/colors/source/src/components/chargePointList/CPConfigTimed.vue index 2869b080e3..875457bb02 100755 --- a/packages/modules/display_themes/colors/source/src/components/chargePointList/CPConfigTimed.vue +++ b/packages/modules/display_themes/colors/source/src/components/chargePointList/CPConfigTimed.vue @@ -1,36 +1,37 @@ @@ -80,25 +81,15 @@ function cellStyle(key: number) { font-size: var(--font-large); font-weight: bold; } -.tableheader { - color: var(--color-menu); - background-color: var(--color-bg); - text-align: center; - font-style: normal; - font-size: var(--font-settings); - font-weight: bold; -} -.tableline { - color: var(--color-fg); - background-color: var(--color-bg); - text-align: center; - font-size: var(--font-settings); - margin-top: 0px; - align-items: center; -} .warning { font-size: var(--font-large); font-weight: bold; color: var(--color-evu); } +td { + background-color: var(--color-bg) !important; +} +th { + background-color: var(--color-bg) !important; +} diff --git a/packages/modules/display_themes/colors/source/src/components/chargePointList/CPVehicle.vue b/packages/modules/display_themes/colors/source/src/components/chargePointList/CPVehicle.vue index 7e662f3a14..b3419b1404 100644 --- a/packages/modules/display_themes/colors/source/src/components/chargePointList/CPVehicle.vue +++ b/packages/modules/display_themes/colors/source/src/components/chargePointList/CPVehicle.vue @@ -1,6 +1,6 @@ diff --git a/packages/modules/display_themes/colors/source/src/components/shared/WBWidget.vue b/packages/modules/display_themes/colors/source/src/components/shared/WBWidget.vue index 0f1d32d5ad..9196a4ae2f 100755 --- a/packages/modules/display_themes/colors/source/src/components/shared/WBWidget.vue +++ b/packages/modules/display_themes/colors/source/src/components/shared/WBWidget.vue @@ -1,6 +1,6 @@ diff --git a/packages/modules/web_themes/colors/source/src/components/energyMeter2/EnergyBar.vue b/packages/modules/web_themes/colors/source/src/components/energyMeter2/EnergyBar.vue index b31e88b8a4..d0419f6acd 100755 --- a/packages/modules/web_themes/colors/source/src/components/energyMeter2/EnergyBar.vue +++ b/packages/modules/web_themes/colors/source/src/components/energyMeter2/EnergyBar.vue @@ -1,29 +1,24 @@
- + - - - 0 + Object.values(vehicles).filter((v) => v.visible).length > 0 " :width="width - margin.left - 2 * margin.right" :height="(height - margin.top - margin.bottom) / 2" @@ -64,7 +71,7 @@ (graphData.graphMode == 'day' || graphData.graphMode == 'today' || graphData.graphMode == 'live') && - Object.values(chargePoints).length > 1 + Object.values(vehicles).filter((v) => v.visible).length > 1 " :width="width - margin.left - 2 * margin.right" :height="(height - margin.top - margin.bottom) / 2" @@ -101,7 +108,7 @@ :margin="margin" :data="graphData.data" > - + import WBWidget from '../shared/WBWidget.vue' -import PGSourceGraph from './PGSourceGraph.vue' -import PGUsageGraph from './PGUsageGraph.vue' -import PGXAxis from './PGXAxis.vue' +import PgSourceGraph from './PgSourceGraph.vue' +import PgUsageGraph from './PgUsageGraph.vue' +import PgXAxis from './PgXAxis.vue' import { globalData } from '@/assets/js/model' import { graphData, @@ -139,7 +146,7 @@ import { import { globalConfig, widescreen } from '@/assets/js/themeConfig' import PgSoc from './PgSoc.vue' import PgSocAxis from './PgSocAxis.vue' -import { chargePoints } from '../chargePointList/model' +import { vehicles } from '../chargePointList/model' import PgSelector from './PgSelector.vue' import { zoom, type D3ZoomEvent, type Selection, select } from 'd3' import { onMounted } from 'vue' @@ -186,6 +193,7 @@ function filter(event: PointerEvent | WheelEvent) { } function zoomGraph() { + globalConfig.zoomedWidget = 1 globalConfig.zoomGraph = !globalConfig.zoomGraph } diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/processMonthYearGraphData.ts b/packages/modules/web_themes/colors/source/src/components/powerGraph/processMonthYearGraphData.ts index 71d4124a5f..25eb59fc1f 100755 --- a/packages/modules/web_themes/colors/source/src/components/powerGraph/processMonthYearGraphData.ts +++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/processMonthYearGraphData.ts @@ -9,7 +9,6 @@ import { } from './model' import { historicSummary, resetHistoricSummary } from '@/assets/js/model' import { itemNames } from './model' -import { chargePoints } from '../chargePointList/model' let columnValues: { [key: string]: number } = {} const consumerCategories = ['charging', 'house', 'batIn', 'devices'] @@ -159,7 +158,7 @@ function transformRow(inputRow: RawDayGraphDataItem): GraphDataItem { Object.entries(inputRow.cp).forEach(([id, values]) => { if (id != 'all') { if (!historicSummary.keys().includes(id)) { - historicSummary.addItem(id, chargePoints[+id.slice(2)].color) + historicSummary.addItem(id) } outputRow[id] = values.energy_imported } else { diff --git a/packages/modules/web_themes/colors/source/src/components/powerMeter/PowerMeter.vue b/packages/modules/web_themes/colors/source/src/components/powerMeter/PowerMeter.vue index 1002c0a234..f1ddb70d3f 100755 --- a/packages/modules/web_themes/colors/source/src/components/powerMeter/PowerMeter.vue +++ b/packages/modules/web_themes/colors/source/src/components/powerMeter/PowerMeter.vue @@ -69,22 +69,36 @@ +
+ + +